704770

Linux: So nutzen Sie Logdateien richtig

Auf Ihrem Linux-System haben sich im Verzeichnis /var/log mittlerweile etliche mehrere Megabyte große Logdateien angesammelt. Doch was befindet sich darin? Und können Sie diese ungestraft entfernen?

Läuft auf Ihrem Linux-System wirklich alles wie gewünscht? Die Logs von System- und Serverdiensten geben darüber Auskunft. Aber wo steht was? Es gibt zahlreiche Hilfen, die wertvolle Infos aus den Datenmengen heraussieben.

Ein regelmässiger Blick in die Logdateien ist bei der Fehlersuche auf Linux-Desktopsystemen nützlich, bei Linux-Servern eine Pflichtübung, selbst wenn alles in bester Ordnung scheint. Linux-Systeme sind ja durchaus gesprächig: Der Kernel hat ein Logbuch, Mailserver und Webserver sowieso. Aber wo genau steht was? Der Rsyslog-Dämon auf Ihrem System legt alle Logdateien unterhalb des Ordners „/var/log an“ und die meisten Dateien liegen im Textformat vor, die sich mit root-Privilegien über einem Betrachter wie less öffnen und mit dem Tool grep durchsuchen lassen.

Ein Sonderfall ist Fedora, das die Protokollierung von Systemereignissen aller Art dem Init-Dämon Systemd überlässt und sich damit vom klassischen Logformat verabschiedet hat (siehe Kasten „Journald: Das neue Logging von Systemd“ auf der rechten Seite).

Tipp: Darum ist Linux ein sicheres Betriebssystem

Mit Logrotate die Datenflut eindämmen

Jede Linux-Distribution bietet Werkzeuge, die im Laufe der Zeit ausufernden Datenberge der Logdateien zu meistern und über ungewöhnliche Ereignisse zu informieren. Bevor es um die Inhalte der Logdateien geht, sollten diese in handliche Portionen aufgeteilt werden. Ein Webserver, der über Monate seine Arbeit verrichtet, produziert auf öffentlichen Servern schnell Hunderte MB an Logdaten. Der Dienst „Logrotate“, der über das Paket „logrotate“ zu installieren ist (in den meisten Linux-Distributionen ist Logrotate verfügbar), kümmert sich um den Wildwuchs. Hat eine Logdatei ein bestimmtes Alter erreicht, wird sie von Logrotate umbenannt, meist noch komprimiert und mit einer Zahl am Dateiende versehen. Die neuen Meldungen kommen in eine neue Logdatei. Als Archiv hält Logrotate eine bestimmte Anzahl alter Logdateien mit fortlaufenden Nummern vor. Bei jeder Rotation, die üblicherweise täglich erfolgt, wird die älteste Datei überschrieben. Das spart Speicherplatz und sorgt für kleinere, chronologisch sortierte Dateien.

Überblick: Grundlegende Werkzeuge

Mehrere Logs im Blick: Der Befehl multitail zeigt und aktualisiert Logdateien in einem Terminalfenster auf dem Bildschirm. Ideal ist das Tool zur Fehlersuche beispielsweise auf Webservern mit einer Vielzahl von Logs.
Vergrößern Mehrere Logs im Blick: Der Befehl multitail zeigt und aktualisiert Logdateien in einem Terminalfenster auf dem Bildschirm. Ideal ist das Tool zur Fehlersuche beispielsweise auf Webservern mit einer Vielzahl von Logs.

Einsteiger auf der Suche nach Informationen innerhalb von Logdateien machen sich am besten unter Verwendung des vielseitigen Dateimanagers Midnight Commander (Paket „mc“) mit den Logdateien vertraut:

sudo mc /var/log  

In Midnight Commander öffnet die Taste F3 eine Logdatei im internen Textbetrachter. Einträge in Logdateien werden stets mit Zeitstempel ans Ende der Datei geschrieben. Die neuen Infos sind also immer am Ende der Datei zu finden. Ein wichtiges Werkzeug in der Shell ist daher der Befehl tail, der die zehn letzten Einträge einer Logdatei ausgibt. Genügt das nicht, so kann das Kommando

sudo tail -n 20 [Logdatei]  

auch zwanzig Zeilen ausgeben. Um den laufenden Betrieb zu überwachen, hilft die Kombination mit watch, das einen Befehl in einem Intervall von zwei Sekunden ausführt und mit

sudo watch tail [Logdatei]  

fortlaufende Änderungen einer Logdatei anzeigt. Geht es um die Fehlersuche speziell bei Webservern mit Access- und Errorlog, so gibt es mit multitail ein Tool für Fortgeschrittene:

sudo multitail [Logdatei1] [Log datei2]  

Multitail zeigt und aktualisiert gleichzeitig mehrere Logdateien auf dem Bildschirm an.

Tipp: Die 10 wichtigsten Linux-Befehle für Einsteiger

Der Spezialist Log File Navigator

Nicht nur bunt, sondern auch informativ: Der Log File Navigator versteht die Syntax der meisten Logdateien auf Linux- Systemen, bietet Filter und springt bei Bedarf direkt zu Warnungen und Fehlern.
Vergrößern Nicht nur bunt, sondern auch informativ: Der Log File Navigator versteht die Syntax der meisten Logdateien auf Linux- Systemen, bietet Filter und springt bei Bedarf direkt zu Warnungen und Fehlern.

Die genauesten Informationen nützen nichts, wenn sie im Rauschen der Masse untergehen. Bei einem Blick in umfangreiche Logdateien mit einem universellen Textbetrachter wie less oder mcview passiert das aber schnell. Für eine Recherche in Logs ist das Kommandozeilenprogramm Log File Navigator besser geeignet. Es ist mit

sudo apt-get install lnav 

in Debian und Ubuntu schnell nachinstalliert. Der Aufruf sudo lnav ohne Parameter öffnet das allgemeine Syslog mit den Meldungen aller Sysloginstanzen. Die Einträge macht der Log File Navigator durch Farben übersichtlicher. Der folgende Befehl

sudo lnav [Logdatei]  

öffnet eine bestimmte Logdatei und die Pfeiltasten oder das Mausrad scrollen durch die Zeilen. Entscheidend ist aber die syntaktische Kenntnis des Programms zum Format der verbreiteten Logdateien und damit die Unterscheidung von Hinweisen, Warnungen und Fehlern. So springt die Taste E beziehungsweise Umschalt-E zwischen Fehlermeldungen vor und zurück. Die Tasten W und Umschalt-W interessieren sich nur für Warnungen.

Durch Drücken der Taste I wechseln Sie zwischen der Listenansicht und einer Übersicht, wann und wo Fehler aufgetreten sind.

Mit Logwatch Infos frei Haus

Für gezielte Fehlersuche ist die manuelle Auswertung von Logdateien hilfreich. Um aber ein System längere Zeit zu überwachen, gibt es das Programm Logwatch, das sich als täglicher Cronjob installiert. Es erstellt einen jederzeit abrufbaren Bericht als Zusammenfassung. Auf Servern mit einem Mailserver wie Postfix/ Sendmail/Exim2 kann es den Bericht auch per Mail senden. Soll ein Benutzer wie root auf dem System die Zusammenfassung im lokalen Postfach erhalten, so genügt auch ein lokaler Mailserver ohne Verbindung nach außen zu einem SMTP-Server im Internet.

Debian, Raspbian, Ubuntu, Fedora, Open Suse und Arch bieten das Paket „logwatch“ in ihren Paketquellen. In seinen Standardeinstellungen trägt sich Logwatch unter „/etc/cron.daily ein. Der Befehl

sudo logwatch 

präsentiert im Terminalfenster eine Übersicht zu ungewöhnlichen Ereignissen. Möchte man die per Mail erhalten, ist die Konfigurationsdatei „/usr/share/logwatch/default.conf/logwatch.conf“ anzupassen.

Öffnen Sie die Datei mit sudo in einem Texteditor Ihrer Wahl, gehen Sie zur Zeile „MailTo = root“ und tragen Sie statt „root“ die gewünschte Mailadresse ein – oder bei einem lokalen Mailserver den Benutzernamen des jeweiligen Administrators.

Journald: Das neue Logging von Systemd

Mit dem Wechsel zu Systemd als Init-System schlagen Distributionen wie Fedora ein neues Kapitel in puncto Logbuch-Funktionen auf. Um die Protokollierung kümmert sich jetzt nicht mehr das klassische Syslog/Rsyslog, sondern Systemd selbst beziehungsweise dessen Modul Journald als zentrale Loginstanz. Allerdings verabschiedet sich Journald vom allgemein gebräuchlichen Textformat für die Logs. Diese werden bei Systemd, ähnlich einer Datenbank, in einem binären Format unter „/var/log/ journal“ gespeichert. Zur Betrachtung der protokollierten Angaben genügt folglich ein Texteditor nicht mehr. Stattdessen ist ein Spezialtool wie journalctl nötig, das mit

sudo journalctl -xb  

beispielsweise das gesamte Syslog anzeigt, aber auch Filterfunktionen bietet. Genau das ist auch bei der Diskussion während der Umstellung von Debian und Ubuntu zu Systemd einer der Hauptkritikpunkte der Systemd-Gegner gewesen. Unter Debian, Raspbian, Ubuntu ist deshalb weiterhin Rsyslog aktiv, obwohl alle zu Systemd umgestiegen sind.

0 Kommentare zu diesem Artikel
704770