Betriebssystem Linux
Das Systemlogbuch
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.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
kern Systemmeldungen direkt vom Kernel auth Meldungen vom Sicherheitsdienst des Systems (login, ...) authpriv Vertrauliche Meldungen der internen Sicherheitsdienste Meldungen des Mail-Systems news Meldungen des News-Systems uucp Meldungen des UUCP-Systems lpr Meldungen des Druckerdaemons cron Meldungen des Cron-Daemons syslog Meldungen des syslog-Daemons selbst daemon Meldungen aller anderer Daemon-Prozesse user Meldungen aus normalen Anwenderprogrammen local0-local7 frei verwendbar
Prioritäten in absteigender Reihenfolge
emerg Der letzte Spruch vor dem Absturz alert Alarmierende Nachricht, die sofortiges Eingreifen erforderlich macht crit Meldung über eine kritische Situation, die gerade nochmal gut gegangen ist err Fehlermeldungen aller Art aus dem laufenden Betrieb warn Warnungen aller Art aus dem laufenden Betrieb notice Dokumentation besonders bemerkenswerter Situationen im Rahmen des normalen Betriebs info Protokollierung des normalen Betriebsablaufes debug Mitteilungen interner Programmzustände bei der Fehlersuche none Ist 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:
- 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.- 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.- 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.- 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
[ Kurs Hauptseite ] [ Linux-Kurse ] [ Startseite Linux-Praxis ] © 1999, 2000, 2001 by F. Kalhammer