Überblick in den Protokolldateien behalten mit lnav

Die Syslog-Datei enthält viele Status- und Fehlerinformationen; allerdings verliert man in der Textwüste schnell den Durchblick und die Übersicht. Wenn man nicht genau weiß wonach man sucht, springen einem die wichtigen Daten nicht direkt ins Auge. Hier sorgt lnav durch eine optische Aufbereitung und umfangreiche Auswertungsmöglichkeiten für mehr Übersicht. Auf der Projektseite kann man sich die Binärdatei für ein 64-Bit-System herunterladen.

Wer über ein 32-Bit-System verfügt, compiliert sich das Werkzeug am besten selbst.

Dazu wird auf der Kommandozeile ein Verzeichnis angelegt und der Quellcode aus der Versionsverwaltung git geholt.

1
2
3
mkdir gitrepos
cd gitrepos
git clone https://github.com/tstack/lnav.git

Folgende Pakete werden benötigt: libpcre, sqlite, ncurses, readline, zlib, bz2, openssl

Zum Compilieren werden eventuell noch die Developer-Libraries einiger Pakete gebraucht. Beispielsweise die von sqlite, da man mit dem Werkzeug später zur Auswertung auch SQL-Kommandos absetzen kann. Mit folgenden Kommando erhält man die benötigte Library:

1
sudo apt-get install libsqlite3-dev

Eventuelle müssen weitere Libraries installiert werden. Das configure Kommando gibt darüber Auskunft. Wenn es problemlos durchläuft kann man danach den make Prozess starten.

1
2
3
4
cd ~/gitrepos/lnav
./configure
make
sudo make install

Danach kann man lnav auf der Kommandozeile starten und sieht wahrscheinlich nur wenige unbedeutende Zeilen, da im Defaultmodus ohne Parameter nur die letzten Einträge der Syslog-Datei angezeigt werden.

Deswegen zum Ausprobieren einmal lnav mit dem Parameter -r starten, der für „Load older rotated log files as well.“ steht.

1
lnav -r
Anzeige von lnav ...

Man sieht deutlich rot markiert, dass eine Festplatte beim einhängen in das System Probleme bereitet hat.

Mit den Cursor-Tasten kann man sich etwas in der Syslog-Datei umschauen. Warnungen werden gelb und Fehler rot dargestellt. Mit dem ? erhält man eine Übersicht über sämtliche möglichen Tastaturkommandos und Auswertungsmöglichkeiten. Eine Textsuche führt man mit dem Schrägstrich / durch. Die Entwickler von lnav haben sich bei den Tastenkommandos an die gängigen Standards gehalten.

Auswertung der Protokolldateien mit SQL-Kommandos

Mit dem Semikolon ; kann man SQL-Kommandos absetzen. Mit dem folgenden Kommando bekommt man alle Meldungen angezeigt, die sich mit dem Netzwerk beschäftigen und wo es sich um Fehler oder Warnungen handelt.

1
SELECT * FROM syslog_log WHERE log_procname LIKE "NetworkManager" AND (log_level LIKE "warning" OR log_level LIKE "error")

Mit einem q kommt man in die vorherige Ansicht zurück und ein weiteres q beendet das Programm.

Wenn man wissen möchte wie viele Fehler das Netzwerk bereits produziert hat, kann man folgendes SQL-Kommando absetzen:

1
SELECT COUNT(*) FROM syslog_log WHERE log_procname LIKE "NetworkManager" AND log_level LIKE "error"

Die Anzeige und Auswertung ist natürlich nicht auf die Syslog-Datei beschränkt. Man kann lnav per Parameter belibiege Protokolldateien übergeben und anzeigen lassen. Unter anderem die access.log Datei, wenn man Apache installiert hat.