Als Multitasking- und Serverbetriebssystem muß Unix eine Möglichkeit haben, die laufenden Meldungen und Vorkommnisse im Systembetrieb zu protokollieren und eventuell selbstständig auf bestimmte Dinge zu reagieren. Dazu läuft auf nahezu jedem Unix-System ein spezieller Daemonprozess, der ein Systemlogbuch schreibt, der syslogd.

Linux Syslog – sammelt alle Infos

Dieser Daemon empfängt Meldungen von anderen Prozessen und reagiert auf diese in unterschiedlicher Art und Weise. Das grundlegende Prinzip ist das, dass jedes Programm in der Lage ist, Meldungen bestimmter Prioritäten an den syslogd zu schicken. Das muß natürlich der Programmierer des jeweiligen Programms so festgelegt haben.

Der syslogd empfängt diese verschiedenen Meldungen und reagiert in unterschiedlicher Weise darauf, je nachdem, welche Herkunft und Priorität eine solche Meldung hat.

Wie der Daemon auf welche Meldungen reagieren soll ist selbstverständlich einstellbar, es ist die Aufgabe des Systeverwalters, eine vernünftige Einstellung vorzunehmen. Alle Anweisungen, was der Daemon tun soll, werden in der Datei /etc/syslog.conf vorgenommen.

Die Datei /etc/syslog.conf

Die Datei /etc/syslog.conf hat ein einfaches Format. Jede Zeile, die nicht mit einem Doppelkreuz (#) beginnt, beschreibt eine Regel, was mit einer Meldung geschehen soll. Das grundsätzliche Format jeder Zeile ist dabei:

Herkunft.Priorität         Aktion

Dabei können in einer Zeile sowohl mehrere Herkunftskategorien (durch Kommas getrennt) angegeben werden, als auch mehrere Herkunft.Prioritäts Paare (durch Strichpunkt getrennt). Beide Angaben können durch ein Sternchen (*) als Wildcard ersetzt werden. In diesem Fall sind dann alle Herkunftsarten bzw. alle Prioritäten gemeint.

Für Herkunft, Priorität und Aktion sind die folgenden Werte gültig:

Herkunftskategorien

kernSystemmeldungen direkt vom Kernel
authMeldungen vom Sicherheitsdienst des Systems (login, …)
authprivVertrauliche Meldungen der internen Sicherheitsdienste
mailMeldungen des Mail-Systems
newsMeldungen des News-Systems
uucpMeldungen des UUCP-Systems
lprMeldungen des Druckerdaemons
cronMeldungen des Cron-Daemons
syslogMeldungen des syslog-Daemons selbst
daemonMeldungen aller anderer Daemon-Prozesse
userMeldungen aus normalen Anwenderprogrammen
local0-local7    frei verwendbar

Prioritäten in absteigender Reihenfolge

emergDer letzte Spruch vor dem Absturz
alertAlarmierende Nachricht, die sofortiges Eingreifen erforderlich macht
critMeldung über eine kritische Situation, die gerade nochmal gut gegangen ist
errFehlermeldungen aller Art aus dem laufenden Betrieb
warn      Warnungen aller Art aus dem laufenden Betrieb
noticeDokumentation besonders bemerkenswerter Situationen im Rahmen des normalen Betriebs
infoProtokollierung des normalen Betriebsablaufes
debugMitteilungen interner Programmzustände bei der Fehlersuche
noneIst keine Priorität im eigentlichen Sinn, sondern dient zum Ausschluß einzelner Herkünfte

Eine angegebene Priorität meint immer die genannte oder eine höhere. Wenn jedoch vor der Priorität ein Gleichheitszeichen (=) steht, so ist nur die genannte Priorität gemeint.

Aktionen

Eine Aktion ist immer eine Weiterleitung einer Nachricht. Es gibt vier verschiedene Arten, wie solche Nachrichten weitergeleitet werden können:

  1. Ausgabe der Nachricht in eine Datei.
    Dazu muß als Aktion der Dateiname mit absolutem Pfad (mit führendem Slash) angegeben werden. Normalerweise wird nach jedem Schreibvorgang des Syslog-Daemons eine Synchronisation des Dateisystems durchgeführt, weil sonst evt. Nachrichten bei einem Absturz nicht mehr physikalisch in die Datei geschrieben werden. Das ist allerdings eine sehr zeitaufwendige Aktion, daher gibt es die Möglichkeit, diese Synchronisation zu übergehen. Dazu wird dem absoluten Pfadnamen ein Bindestrich (-) vorangestellt.
  2. Weiterleitung der Nachricht an einen Syslog-Daemon eines anderen Rechners im Netz.
    Dazu muß als Aktion der Rechnername des Rechners angegeben werden, an dessen Syslog-Daemon die Messages geschickt werden sollen. Dem Rechnernamen muß ein Klammeraffe (@) vorangestellt werden. Damit der angesprochene Syslog-Daemon auf dem anderen Rechner auch die Meldungen annimmt, muß er mit der Kommandozeilenoption -r (remote) gestartet worden sein.
  3. Ausgabe der Nachricht auf den Bildschirm von bestimmten Usern
    Durch die Nennung des Usernamens (oder einer durch Kommas getrennten Liste von Usernamen) wird die Nachricht auf dem Bildschirm dieser User angezeigt, sofern sie eingeloggt sind.
  4. Ausgabe der Nachricht auf den Bildschirm aller eingeloggten User
    In diesem Fall steht einfach ein Sternchen (*) im Aktionsfeld.

Beispieldatei

Im Folgenden wird eine einfache /etc/syslog.conf Datei dargestellt und die einzelnen Zeilen werden kommentiert:


# Die folgende Zeile schreibt alle Meldungen der Herkunft Kernel und der
# Priorität größer gleich Warnung (kern.warn), sowie alle Meldungen der 
# Priorität größer gleich Error (*.err) außer den Meldungen der Herkunft 
# authpriv (authpriv.none) in die Datei /dev/tty10 - das ist die Gerätedatei 
# für das Terminal, das mit Alt-F10 aktiviert wird. 

kern.warn;*.err;authpriv.none   /dev/tty10

# Alle Meldungen der Priorität emerg und höher werden allen Usern auf den Bildschirm
# geschrieben.

*.emerg                         *

# Alle Meldungen der Kategorie alert und höher werden den Usern root und efka - sofern
# sie eingeloggt sind - auf den Bildschirm geschrieben.

*.alert				root,efka

# Die nächste Zeile schreibt alle Meldungen, die vom Mail-System kommen,
# egal welcher Priorität, in die Datei /var/log/mail. Damit nicht zuoft eine
# Synchronisation des Dateisystems vorkommt, ist dem Dateinamen ein
# Bindestrich vorangestellt.

mail.*                          -/var/log/mail

# Die nächsten drei Zeilen schreiben
#  - die kritischen Meldungen des News-Systems in die Datei
#    /var/log/news/news.crit
#  - die Fehlermeldungen des Newssystems in die Datei /var/log/news/news.err
#  - die bemerkenswerten Meldungen des News Systems in die Datei
#    /var/log/news/news.notice
# Alle Dateien werden nicht sofort synchronisiert (-)

news.=crit                      -/var/log/news/news.crit
news.=err                       -/var/log/news/news.err
news.=notice                    -/var/log/news/news.notice

# Alle Warnungen, egal woher sie kommen werden in die Datei 
# /var/log/warn geschrieben. Weil es Warnungen sind wird diese Datei nach
# jedem Schreibzugriff synchronisiert, der führende Bindestrich vor dem
# Dateinamen fehlt.

*.=warn                          /var/log/warn

# Alles, außer Meldungen des Mail- und Newssystems, wird in die Datei
# /var/log/messages geschrieben.

*.*;mail.none;news.none         /var/log/messages



Dieser Beitrag hat 2 Kommentare

  1. Ubuntuli

    Hallo Ubuntu-User.
    Wenn ich beim Booten von Ubuntu oder im Laufenden System Fehler Feststelle möchte ich wissen wer oder was diesen Fehler verursacht und warum.
    Ich öffne das Terminal mit root Rechten.

    su
    Passwort

    Danach gehe ich in diesen Ordner mit cd /var/log/
    Dann öffne ich die Datei syslog mit einem Editor. Die Datei Lebt und ändert sich in Minuten im Laufendem System.
    Ich Speicher diese Datei mit Speichern Unter als syslog-Da.tu.m.txt

    Nach dem Kopieren in den Home Ordner öffne ich die Datei.
    Dort Suche ich nach error, failed und Lese die Informationen die dahinter stehen.

    Beispiel:
    Aug 23 00:26:08 administrator-OEM gsd-sharing[1621]: Failed to StopUnit service: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
    Aug 23 00:26:08 administrator-OEM gsd-sharing[1621]: message repeated 3 times: [ Failed to StopUnit service: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1]

  2. Ubuntuli

    Beispiel System-Logbuch 24.08.23-Ubuntu 22.04.1 DVD Live
    /var/log/syslog-24.08.23.txt
    Failed to start
    Ich möchte nicht alle Fehler Zeigen. Wichtig ist der vierte.
    Es ist nur der Desktop Bildschirm zu sehen Englisch ohne Abfrage der Sprache Deutsch.

    .
    Aug 24 05:54:14 ubuntu systemd[1]: Failed to start Network Manager.
    .
    Aug 24 05:54:20 ubuntu systemd[1]: Failed to start Snap Daemon.
    .
    Aug 24 05:54:27 ubuntu systemd[1]: Failed to start Dispatcher daemon for systemd-networkd.
    .
    Aug 24 05:59:51 ubuntu systemd[1]: Failed to start Ubuntu live CD installer.
    .

Schreibe einen Kommentar