Endkontrolle
Computersysteme protokollieren eine Vielzahl von Ereignissen - teils Routineangelegenheiten, teils außergewöhnliche Vorkommnisse, auf die der Administrator umgehend reagieren sollte. Wer den Überblick behalten will, kommt nicht ohne Hilfsmittel aus.
- Michael Riepe
Unter Unix nimmt der System-Daemon syslogd Meldungen entgegen, sortiert sie nach Quelle oder Dringlichkeit und schreibt sie in eine oder mehrere Protokolldateien, meist im Verzeichnis /var/log. Außerdem kann er Nachrichten an andere Rechner weiterleiten, auf die Konsole schreiben oder auf den Terminals der eingeloggten Benutzer anzeigen. Von der Weiterleitung können auch viele Sekundärsysteme wie Router, Switches oder externe Massenspeicher Gebrauch machen.
Allerdings verwenden nicht alle Dienste den Syslog-Mechanismus. Samba-Server etwa schreiben ihre eigenen Protokolldateien, ebenso diverse Webserver. Es gilt daher, eine Vielzahl von Quellen im Auge zu behalten, ohne ein wichtiges Ereignis zu ĂĽbersehen - Anforderungen, die sich eigentlich gegenseitig ausschlieĂźen.
Meist ist nur das Ende einer Protokolldatei interessant, weil es die aktuellen Ereignisse enthält. Die letzten zehn Zeilen kann man sich zum Beispiel mit tail anzeigen lassen. Wer weniger oder mehr sehen will, kann mit -n den Umfang der Ausgabe einstellen. Allerdings liefert das Programm nur eine Momentaufnahme. Sollen künftige Änderungen der Datei ebenfalls auf dem Schirm erscheinen, muss der Nutzer tail -f aufrufen. Wer mehrere Dateien überwachen will, sollte die Gnu-Variante des Programms aus dem Paket coreutils verwenden (siehe Kasten „Onlineressourcen“). Die klassische Version von tail kann nur mit einer Datei umgehen.
Onlinequellen
Gewöhnlich lässt man Logdateien in regelmäßigen Abständen „rotieren“, damit sie nicht übermäßig wachsen: Ein Skript schiebt die alte Datei beiseite und ersetzt sie durch eine neue, leere. Davon bekommt tail -f jedoch nichts mit - es hält immer noch die alte Version der Datei geöffnet, die sich nicht mehr ändert. Ruft man Gnu-tail jedoch mit den Optionen --follow=name --retry oder kurz als tail -F auf, versucht es in regelmäßigen Abständen, die Eingabedateien zu schließen und neu zu öffnen.
In der Ausgabe zurückblättern oder suchen kann der Administrator zum Beispiel mit less. Nach dem Tastenkommando F wartet das Programm ähnlich wie tail -f auf neue Daten, Strg-C bringt es zurück in den normalen Modus. Gilt es, mehrere Dateien zu überwachen, kann man mit tail -F /var/log/* | less die Programme kombinieren.
Erheblich mehr Funktionen bietet das Kommandozeilenprogramm multitail. Der Nutzer kann zur Laufzeit Dateien hinzufügen oder entfernen. Steht auf dem Terminal genug Platz zur Verfügung, lässt sich die Ausgabe sowohl horizontal als auch vertikal unterteilen. Jedes Fenster kann den Inhalt einer oder mehrerer Dateien anzeigen.
Neben Logdateien ĂĽberwacht multitail auch die Ausgabe von Programmen. So kann der Administrator sich zum Beispiel in einem Fenster das Ergebnis eines Compilerlaufs und in einem zweiten mit df periodisch den verfĂĽgbaren Plattenplatz anzeigen lassen.
Mit Regular Expressions kann der Nutzer die Ausgabe wahlweise filtern oder nach Belieben kolorieren, etwa um dringliche Meldungen zu kennzeichnen. Zusätzlich lassen sich mit den Tastenkommandos / und ? in allen Fenstern gleichzeitig Zeilen suchen und hervorheben, die bestimmte Begriffe enthalten.
Auf Wunsch alarmiert das Programm den Administrator mit einem Piepton, sobald eine einstellbare Anzahl neuer Meldungen eingetroffen ist. Außerdem kann der Nutzer in jedem Fenster ein Lesezeichen setzen, das bereits gelesene Meldungen von neuen trennt, oder die abgearbeiteten Zeilen vom Schirm wischen. Benötigt er sie später doch noch, lassen sie sich per Tastendruck aus dem eingebauten Puffer zurückholen.
Leider kennt multitail eine kaum übersehbare Zahl von Optionen. Einsteiger sollten das Programm daher zunächst ohne Argumente aufrufen und über das integrierte Menü konfigurieren. Mit den Tasten a und d lassen sich Dateien, Programme oder Fenster hinzufügen und entfernen, F1 oder Strg-H bringen die Onlinehilfe auf den Schirm, mit Strg-G gelangt man zurück zur normalen Ansicht. Tippt der Nutzer w, speichert das Programm ein kurzes Shell-Skript, das multitail mit allen aktuellen Einstellungen neu startet.
Wer lieber eine Zusammenfassung des aktuellen Geschehens hätte, sollte einen Blick auf das Perl-Programm logwatch werfen. Es durchforstet die Protokolle für einen bestimmten Zeitraum - voreingestellt ist ein Tag - und stellt das Resultat in übersichtlicher Form dar, geordnet nach Diensten. Mit --range lässt sich der Beobachtungszeitraum festlegen, mit --detail der Umfang des Berichts. Fügt man die Option --archives hinzu, durchsucht das Programm auch archivierte Logfiles, etwa /var/log/messages.*.gz.
Normalerweise zeigt logwatch das Ergebnis auf dem Terminal an. Der Administrator kann sich den Bericht jedoch mit --mailto auch mailen oder mit --save in eine beliebige Datei schreiben lassen.
Welche Dateien logwatch untersucht, lässt sich im Konfigurationsverzeichnis /etc/logwatch einstellen. Außerdem kann der Adminstrator dort eigene Skripte installieren, die dem Programm noch unbekannte Dateien oder Dateiformate auswerten. (mr)