Rsyslog
Allgemein
Daemon zur Verarbeitung von System- und Kernelnachrichten. Rsyslog ist eine quelloffene Implementierung des syslog-Protokolls für Unix und Unix-ähnliche Systeme. Es erweitert das ursprüngliche syslogd-Modell mit inhaltsbasierender Filterung, umfassenden Einsatzmöglichkeiten für Filter, flexible Konfigurationsoptionen und fügt wichtige Merkmale, wie TCP als Übermittlungsprotokoll, hinzu.
Protokoll
Die wichtigsten Ableger des ursprünglichen Protokolls die von rsyslog unterstützt werden sind:
- ISO-8601-Zeitstempel mit Unterscheidung von Millisekunden und Zeitzoneninformationen
- Die Beigabe des Namens einer Relaystation im Host-Feld, um es möglich zu machen den Weg der Nachricht zurückzuverfolgen
- Verlässlicher Transport über TCP
- Unterstützung der GSSAPI und TLS
- Direkte Protokollierung mit Hilfe verschiedener Datenbankanbindungen
- Unterstützung für die neue syslog-RFC-Serie der IETF
- Unterstützung für gepufferte Funktionsweisen, bei denen Nachrichten lokal gepuffert werden, falls der Empfänger noch nicht bereit ist
Seine wichtigsten System-Dateien sind
- /etc/default/rsyslog
- /etc/init.d/rsyslog - Symlink zum Upstart-Initskript (siehe nächster Punkt)
- /etc/init/rsyslog.conf
- /etc/rsyslog.conf
- /etc/rsyslog.d/50-default.conf - die zentrale Konfigurationsdatei
- /usr/sbin/rsyslogd - die Programmdatei
Konfigdateien
- /etc/rsyslog.conf
module(load="imuxsock") # provides support for local system logging module(load="imklog") # provides kernel logging support $KLogPermitNonKernelFacility on $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $RepeatedMsgReduction on $FileOwner syslog $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $PrivDropToUser syslog $PrivDropToGroup syslog $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf
/etc/rsyslog.d/50-default.conf
Die Datei 50-default.conf ist kompatible mit der syslog.conf
auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog kern.* -/var/log/kern.log mail.* -/var/log/mail.log mail.err /var/log/mail.err news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice *.emerg :omusrmsg:* daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole
systemctl status rsyslog.service
● rsyslog.service - System Logging Service
Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
Active: active (running) since Mo 2016-09-05 09:47:26 CEST; 2h 23min ago
Docs: man:rsyslogd(8)
http://www.rsyslog.com/doc/
Main PID: 3193 (rsyslogd)
Tasks: 4 (limit: 512)
CGroup: /system.slice/rsyslog.service
└─3193 /usr/sbin/rsyslogd -n
Sep 05 09:47:25 bajor.xinux.org systemd[1]: Starting System Logging Service...
Sep 05 09:47:26 bajor.xinux.org systemd[1]: Started System Logging Service.
Udp Port in rsyslog.conf öffnen
#provides UDP syslog reception module(load="imudp") input(type="imudp" port="514")
Tcp Port in rsyslog.conf öffnen
#provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
Logger
- echo "Dies ist eine Meldung" | logger -p local3.warn
- tail -f -n 1 /var/log/syslog
Sep 5 13:19:03 bajor root: Dies ist eine Meldung
Eigene Regeln
Einfache Regeln
Programname
- Logfile for tftpd
if $programname == 'in.tftpd' then /var/log/tftpd.log
facility-text
- 60-meinlog.conf
if $syslogfacility-text == 'local3' then /var/log/meinelog
- systemctl restart rsyslog.service
- echo "Hallo Welt" | logger -p local3.warn
- tail -n 1 -f /var/log/meinelog
Sep 5 14:21:04 bajor root: Hallo Welt
contains
- 60-meinlog.conf
if $msg contains '-iptables-' then /var/log/firewall
expressions in parenthesis
- not, unary minus
- *, /, % (modulus, as in C)
- +, -, & (string concatenation)
- ==, !=, <>, <, >, <=, >=, contains (strings!), startswith (strings!)
- and
- or
legacy rsyslog
Beginnen mit einem $-Zeichen. Zum Setzen von Konfigurationsparametern.
$FileOwner syslog
RainerScript
Neues Format.
Generator für eine Konfigurationsdatei: http://www.rsyslog.com/rsyslog-configuration-builder/
Templates - Anpassen des Ausgabeformates
$template MyOwnFormat,"Debug line with all properties:\nFROMHOST: '%FROMHOST%', HOSTNAME: '%HOSTNAME%', PRI: %PRI%,\nsyslogtag '%syslogtag%', programname: '%programname%', APP-NAME: '%APP-NAME%', PROCID: '%PROCID%', MSGID: '%MSGID%',\nTIMESTAMP: '%TIMESTAMP%', STRUCTURED-DATA: '%STRUCTURED-DATA%', \nmsg: '%msg%'\nescaped msg: '%msg:::drop-cc%'\nrawmsg: '%rawmsg%'\n\n" *.*;auth,authpriv.none /var/log/syslog;MyOwnFormat