12    Syslog

Dieses Kapitel stellt Ihnen die drei bewährten Syslog-Server »SyslogD«, »Syslogng«, »Rsyslog« und deren Konfiguration vor. Aber auch der »systemd« mit dem »journalctl« wird in diesem Kapitel behandelt.

Das Syslog-Protokoll und seine erste Implementation stammen aus der BSD-Welt. Eric Allmann entwickelte sie als Logging-Instanz für Sendmail. Syslog wurde erst 2001, viele Jahre nach seiner Entstehung, in den RFCs 3164 und 3195 dokumentiert, und auch diese Standarddokumente lassen noch reichlich Spielraum für die Kreativität der Entwickler. Aus diesem Grund gibt es heute mehrere Syslog-Implementationen, die in ihrer grundlegenden Funktionalität miteinander kompatibel sind, aber auch Besonderheiten und oft nützliche Erweiterungen enthalten.

Das Syslog-Protokoll benutzt im Netzwerk UDP auf Port 514. Aktuellere Syslog-Implementationen, die im weiteren Verlauf dieses Kapitels beschrieben werden, beherrschen auch den Transport per TCP.

Neu in der Runde der System-Logs ist der systemd mit dem Kommando journalctl. Auf diesen Logging-Mechanismus werden wir in dieser Auflage zum ersten Mal genauer eingehen. Da alle von uns hier eingesetzten Distributionen diesen Dienste nutzen, ist es gut, wenn Sie sich auch mit ihm auseinandersetzen. Bei SUSE Leap ist es sogar so, dass der systemd bereits als Standard eingesetzt wird, eine Datei /var/log/message finden Sie dort gar nicht mehr. Nur wenn Sie einen der klassischen Log-Dienste zusätzlich installieren und aktivieren, werden Sie diese Datei wiederfinden und auswerten können.

Auf die Dauer werden alle Distributionen ganz oder zumindest zum größten Teil auf den systemd umstellen. Dann wird dieses Wissen noch wichtiger.

12.1    Aufbau von Syslog-Nachrichten

Alle Prozesse generieren mehr oder weniger Meldungen zu ihrem Zustand, bestimmten Aktionen oder aufgetretenen Fehlern. Jede Nachricht wird dann, abhängig von dem verwendeten Log-System, in eine Datei oder wie im Falle von systemd in eine Binärdatei geschrieben. Eine Syslog-Nachricht besteht dabei aus drei Teilen. Dies sind:

In Tabelle 12.1 sehen Sie die wichtigsten Syslog-Quellen und deren Bedeutung.

Facility Bedeutung
LOG_KERN Kernelmeldungen
LOG_USER Meldungen von Userspace-Programmen  
LOG_MAIL Mail-Subsystem
LOG_DAEMON Serverdienste
LOG_SYSLOG Syslog-interne Meldungen
LOG_LPR Druckersubsystem
LOG_NEWS Usenet-Server
LOG_CRON Meldungen des Cron-Daemons
LOG_AUTHPRIV Login- und Autorisierungsmeldungen
LOG_LOCAL0 – LOG_LOCAL7 reserviert für lokale Nutzung

Tabelle 12.1    Die wichtigsten Syslog-Quellen (Facilitys)

In Tabelle 12.2 sind die acht Log-Level des Syslog und deren Bedeutung aufgeführt.

Level Bedeutung
LOG_EMERG Das System ist unbenutzbar.
LOG_ALERT Alarm, schnelles Handeln erforderlich
LOG_CRIT kritischer Fehler
LOG_ERR normaler Fehler
LOG_WARNING Warnung
LOG_NOTICE wichtige Benachrichtigung
LOG_INFO Benachrichtigung
LOG_DEBUG Informationen für Entwickler, Hilfe bei der Fehlersuche

Tabelle 12.2    Log-Level

In Tabelle 12.3 sehen Sie, welcher Syslog-Dienst von welcher Distribution standardmäßig verwendet wird.

Distribution Syslog-Dienst
Debian systemd und rsyslogd
Ubuntu Alarm, systemd und rsyslogd
CentOS systemd und rsyslogd
SUSE Leap systemd

Tabelle 12.3    Log-Level

Wie Sie hier sehen, verwenden alle Systeme bereits den systemd zusammen mit dem journalctl. Wollen Sie eines der anderen hier im Buch beschriebenen Log-Systeme verwenden, müssen Sie den Dienst immer installieren.