Skip to content

Logfile Navigator (lnav) - Ein Lichtblick bei der grauen Logsuche

Zu den häufigen Aufgaben eines Sysadmins gehört sicherlich die Suche nach der Nadel im Heuhaufen besser bekannt als Logfiles.
Seien es System Logs, Mail Logs oder Firewall Logs, meist gilt es eine Fehlermeldung zu finden oder andere Unstimmigkeiten zu entdecken.
Standardwerkzeuge sind da meist tail -f oder tailf, grep, cat, less und wie sie alle heißen. 

Logfile Navigator (lnav)

Einen weitaus einfacheren Umgang bietet lnav. Dank des Tools kann schnell mit Hilfe von Syntax Highlighting durch Massen an Log Files navigiert werden.
Tastaturbefehle ermöglichen zusätzlichen Komfort, aber zunächst muss das Tool installiert werden, da es nicht zu den vorinstallierten Paketen eines Servers gehört.

#Debian
sudo apt install lnav


#CentOS
sudo yum install lnav


#SuSE
sudo zypper install lnav

The_Log_File_Navigator

Nach der Installation lässt sich das Logfile Navigator einfach öffnen.

lnav

oder

journalctl -f | lnav

Der lnav Befehl öffnen standardmäßig Syslog (/var/log/syslog) .

Wer archivierte Logs einbinden möchte, der setzt hinter den gewünschten Pfad noch einen Stern.

lnav /var/log/mail.log*

Der Navigator unterstützt nahezu jedes Logformat und erlaubt nebenbei die Einbindung eigener Formate. Wie dies funktioniert ist hier beschrieben.

Natürlich lassen sich Logfiles auch kombinieren.

lnav /var/log/mail.log /var/log/syslog

Die Log Navigation

Neben der Einbindung der Log Archive hat lnav den großen Vorteil, dass es Hotkeys unterstützt.

Hiervon gibt es ebenfalls eine schöne Übersicht, allerdings möchte ich die "besten" hier sofort aufzeigen:

24 Stunden vor oder zurück

d oder Shift + d

Suche und Navigation

/gesuchter Begriff

Nächster Suchtreffer

n oder Shift + n 

Warnungen suchen

w oder Shift + w

Fehlermeldungen suchen

e oder Shift + e

(rot hervorgehoben)

lnav-history

Logzusammenfassung (Histogramm anzeigen)

Diese bietet einen guten Überblick über mögliche Fehlermeldungen und deren Häufigkeit.

i oder verlassen mit Shift + i

Innerhalb der Zusammenfassung kann ebenfalls zwischen den Zeiteinheiten navigiert werden

z oder Shift + z

Pretty Print View

Sollte der Überblick fehlen und eine etwas andere Aufteilung notwendig sein, bietet sich dieser Modus an.

p  oder Shift + p

Beenden

q

lnav-pretty


Fazit

Um die Suche nach Warnings und Errors zu verbessern setzt lnav an den richtigen Stellen die richtigen Funktionen und verkürzt damit den Weg zum Ziel ungemein.
Lediglich das Syntax Highlighting (blau auf schwarz) ist manchmal etwas unglücklich.

Download

Ubuntu 18.04 - Command not found - Unterschied zwischen tailf und tail -f

Unter Ubuntu gab es bis zur Version 16.04 LTS die Möglichkeit tailf und tail -f zu verwenden. Dies ist mit der neuesten LTS Version nicht mehr der Fall. Nur noch die zweite Möglichkeit wird erkannt, ansonsten wird eine Fehler geworfen.

Wo liegen die Unterschiede dieser zwei Kommandos und warum gibt es eines nicht mehr?

Unterschied tailf und tail -f

tailf

Laut Befehlsdefinition verfolgt tailf das Wachstum einer Logdatei. tailf gibt die letzten 10 Zeilen der angegebenen Datei aus und wartet dann darauf, dass diese Datei wächst. Es ist ähnlich wie tail -f, greift aber nicht auf die Datei zu, wenn sie nicht wächst.

Dies hat den Nebeneffekt, dass die Zugriffszeit für die Datei nicht aktualisiert wird, so dass ein Flush des Dateisystems nicht periodisch stattfindet, wenn keine Protokollaktivität stattfindet.

tailf ist äußerst nützlich für die Überwachung von Protokolldateien auf einem Laptop, wenn die Protokollierung selten ist und der Benutzer möchte, dass sich die Festplatte herunterdreht, um die Akkulaufzeit zu verlängern. (Übersetzt mit www.DeepL.com/Translator)

tail

Für tail lautet die Definition wie folgt:

Das Tail-Utility muss seine Eingabedatei in die Standardausgabe kopieren, beginnend mit einem festgelegtem Ortes.

Das Kopieren beginnt an der Stelle in der Datei, die durch die -c-Nummer oder -n-Nummer gekennzeichnet ist.

Optionen: Die Nummer des Optionsarguments wird in Zeilen- oder Byteseinheiten gezählt, entsprechend der zu den Optionen -n und -c.  Sowohl die Zeilen- als auch die Byteanzahl beginnen bei 1.

Tails in Bezug auf das Ende der Datei können in einem internen Puffer gespeichert werden und sind somit möglich.

Der Originaltext ist hier zu finden.

Tail ist auf allen Ubuntu Varianten installiert, was sich auch überprüfen lässt

dpkg -S $(which tail)

oder

dpkg -L coreutils | grep tail

tail-f

tailf wurde nicht mit den coreutils ausgeliefert, sondern mit util-linux und genau dieses Paket ist seit Version 18.04 nicht mehr dabei.

dpkg -L util-linux |grep tail

Bei 16.04 LTS ist es allerdings noch verfügbar

tailf

Doch wie lässt sich ein alter Befehl weiterhin nutzen?

Tailf unter Ubuntu 18.04 einsetzen


Ein Workaround wäre der Einsatz von alias, damit könnte das alte nicht mehr verfügbare Kommando auf das neue gelegt werden, der Befehl ist einfach gesetzt:

sudo nano ~/.bashrc

alias tailf='tail -f'


Meist wird der tail Befehl für Dateien verwendet, welche erhöhte Rechte benötigen, darum kann es sinnvoll sein, den Alias auch beim root Benutzer zu hinterlegen.

sudo nano /root/.bashrc

alias tailf='tail -f'

Alternativ kann natürlich zusätzlich less eingesetzt werden. tailf selbst ist deprecated und sollte nicht mehr eingesetzt werden..