Grafvision - Fotolia

Log-Dateien unter Linux mit Kommandozeilen-Tools auslesen

Unter Linux gibt es Log-Dateien, die sich auslesen und durchsuchen lassen. Mit welchen Tools Sie das tun können, hängt ein bisschen von der eingesetzten Linux-Distribtution ab.

In der Anfangszeit von Linux hat der Syslog-Prozess die Log-Files als ASCII-Textdateien in das Verzeichnis /var/log geschrieben. Wollten Sie sie lesen, brauchten Sie Tools wie den Befehl less. Sie können unter Linux die Log-Dateien immer noch auf diese Art und Weise auslesen. Es gibt aber nun auch Alternativen wie zum Beispiel systemd-journald.

Systemd-journald ist ein Log-Service, der Teil des Service-Managers systemd ist. Der Dienst schreibt Nachrichten in das In-Memory Journal. Wollen Sie die Nachrichten auslesen, brauchen Sie das Kommandozeilenwerkzeug journalctl.

Starten Sie den Befehl ohne Optionen, dann bekommen Sie alle Inhalte des Journals angezeigt. Sie können die Ausgabe mit dem Kommandozeilen-Tool aber auch filtern. Führen Sie zum Beispiel systemctl -u sshd aus, sehen Sie die Log-Nachrichten des SSHD-Services.

Weitere Tools, um eine Log-Datei unter Linux auszulesen

Neben systemd-journald finden Sie in Linux-Distributionen außerdem rsyslog. Der Service funktioniert mit Modulen, die Log-Nachrichten in Datenbankdateien anstelle von Textdateien schreiben. Werden unter Linux Nachrichten auf diese Weise in Log-Dateien geschrieben, ist eine Verarbeitung effizienter, weil sich Datenbanken gezielter abfragen lassen. Mit dieser Methode bestimmen Sie, wie die Nachrichten in die Datenbank geschrieben werden. Demnach gibt es keine Standardmöglichkeit, die Nachrichten zu empfangen.

Benutzen Sie rsyslog und systemd-journald, werden Nachrichten im folgenden Host-Service-Format mit einem Zeitstempel gespeichert:

May 22 03:37:02 server1 su: (to root) user on pts/1

Der Zeitstempel der Nachricht steht auf 22. Mai, 2:37:02 und wurde vom Prozess su auf server1 generiert. Die Nachricht an sich ist (to root) user on pts/1. Der Standard, um Log-Nachrichten zu schreiben, benutzt ebenfalls systemd-journald. Sobald Sie wissen, wo Sie eine Log-Datei unter Linux finden, können Sie sie unabhängig von der Distribution auslesen.

Die Benutzung von systemd und rsyslog kann sowohl den Zugriff auf die Log-Dateien als auch das Suchen darin vereinfachen.
Abbildung 1: Die Benutzung von systemd und rsyslog kann sowohl den Zugriff auf die Log-Dateien als auch das Suchen darin vereinfachen.

Vorteile von systemd-journald und rsyslog

Systemd-journald ist die normale Methode, eine Log-Datei unter Linux auszulesen, im Speziellen mithilfe des Befehls journalctl. Damit lassen Sie sich alle Nachrichten anzeigen, die Ihr System schreibt. Mit den Pfeiltasten blättern Sie in der Ausgabe.

In vielen Fällen ist es bequemer, die mit journactl generierten Logs mit der Option -f zu lesen. Sie hängen die Option wie folgt an den Befehl an: journalctl -f. Somit wird das Ende einer Log-Datei unter Linux angezeigt sowie neue Nachrichten, sollten welche hinzukommen.

Werden Log-Dateien unter Linux mit rsyslog geschrieben, lässt sich einfacher darauf zugreifen. Das liegt daran, dass sie als Textdateien im Ordner /var/log abgelegt werden. Bei rsyslog-Dateien gibt es aber keinen Standard, was die Namen angeht. Wollen Sie kürzlich geschriebene Log-Dateien finden, helfen Befehle wie zum Beispiel ls -ltrh. Damit sortieren Sie die Dateien nach Datum, wann sie zuletzt modifiziert wurden. Haben Sie unter Linux eine Log-Datei auf diese Weise gefunden, können Sie sie mit einem Tool wie less öffnen und darin blättern. Mit tail würden Sie sich die letzten paar Einträge in der Datei auf dem Bildschirm ausgeben lassen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Grundlegende Linux-Befehle mit System V und systemd

Wichtige Linux-Befehle für Server-Administratoren

Linux-Befehle zum Checken der Netzwerkverbindung

Erfahren Sie mehr über Serverbetriebssysteme