Fehler bei der Verwendung der neuen rsyslog-Vorlagensyntax unter RHEL6

8

Ich migriere unsere rsyslog-Konfiguration von einem alten Server auf einen neuen und dachte, ich würde die Gelegenheit nutzen, um unsere Konfiguration aufzuräumen. In der alten Konfiguration wurden "Legacy" -Vorlagendefinitionen verwendet, und im rsyslog-Dokument zu Vorlagen wird empfohlen, solche Definitionen durch die neue Vorlagensyntax zu ersetzen. Deshalb habe ich versucht, dies zu tun.

Ich kann es einfach nicht zum Laufen bringen, und die Fehler, die ich beim Versuch bekomme, rsyslog zu starten, machen keinen Sinn. Es scheint also, als hätte ich die rsyslog-Dokumente grundlegend falsch verstanden, oder das in RHEL6 enthaltene rsyslog-Paket hat etwas Komisches.

Dies ist die Legacy-Vorlage, die ich aktualisieren möchte:

$template secureTemplate,"INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) VALUES ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')",STDSQL

Dies ist mein Versuch, dieselbe Vorlage in der neuen Syntax zu verwenden, nachdem ich die rsyslog-Dokumente gelesen habe:

template(name="secureTemplate" type="string" option.stdsql="on"
  string="INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) values ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')"
)

Dies sind die Fehler, die ich beim Start von rsyslog erhalte:

rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="4491" x-info="http://www.rsyslog.com"] start
 rsyslogd-3000:unknown priority name "stdsql="on"" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 49:"template(name="secureTemplate" type="string" option.stdsql="on""
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3000:unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 50:"  string="INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) values ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')""
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3000:unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 51:")"
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3003: Could not find template 'secureTemplate' - action disabled
 [try http://www.rsyslog.com/e/3003 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 55:"then    :ompgsql:127.0.0.1,rsyslog,rsyslog,+Without-Goodbye-22+;secureTemplate"
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-2124:CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2124 ]
 rsyslogd:EMERGENCY CONFIGURATION ACTIVATED - fix rsyslog config file!
Bart B.
quelle

Antworten:

8

Nun, die Antwort ist ziemlich einfach (und wahrscheinlich unbefriedigend). Die neue Syntax wird in dieser alten Version nicht unterstützt. Sie benötigen mindestens Version 6, aber um alle Funktionen nutzen zu können, ist Version 7 erforderlich. Bisher liefert Red Hat diese nicht für RHEL. Alternativ können Sie die rsyslog rpm-Pakete verwenden: http://www.rsyslog.com/rhelcentos-rpms/

Bitte beachten Sie auch, dass das Dokument auf http://www.rsyslog.com/doc immer für die aktuellste Version ist. Jede Version verfügt jedoch über einen eigenen Dokumentensatz. Es ist natürlich besser, sich auf das Dokumentenset zu beziehen, das Ihrer Version beiliegt. Die meisten Distributionen installieren es nicht standardmäßig, aber normalerweise gibt es ein Paket, das nach dem Vorbild von rsyslog-doc benannt ist.

user168825
quelle
7

Ab September 2015 sind in RHEL6 rsyslog7-Pakete verfügbar. Die aktuelle Version von rsyslog ist 8.11, aber diese ist zumindest näher an der aktuellen.

Um zu installieren, müssen Sie zuerst Ihr rsyslog-Paket entfernen:

# rpm -e --nodeps rsyslog
# yum -y install rsyslog7
Dan Pritts
quelle
0

Sie können das rsyslog yum repo hinzufügen und dann rsyslog direkt aktualisieren, damit Sie es nicht deinstallieren müssen.

cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum update rsyslog

...

Updating:
rsyslog                                    x86_64                               8.35.0-2.el6   

Repo-Datei als Referenz:

cat rsyslog.repo 
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1

Credits:

http://osengineer.blogspot.com/2014/01/install-rsyslog7-to-centos6.html https://www.rsyslog.com/rhelcentos-rpms/

Storm_m2138
quelle