Skip to main content

lnav (Log File Navigator) – ist ein hochperformantes Open-Source (BSDv2) Logfile-Analyse-Programm, mit dem einzelne oder mehrere Logfiles geschickt durchforstet werden können. Das Programm aktualisiert automatisch das zu untersuchende Logfile, unterstützt Syntax Highlighting, Tab-Autovervollständigung, SQL-Ähnliche Query-Abfragen, Such-/Filter-Funktionen, GZIP/BZIP-On-The-Fly Dekomprimierung und einiges feines mehr. Das Logfile-Analyse-Programm ist ein MUSS für jeden Linux-/Unix-Admin/Pro.

Die Dokumentation ist nicht von schlechten Eltern, hält aber leider sehr wenige Beispiel-Anwendungen inne.

Lnav Eigenschaften:

  • Headless Mode
  • Syntax Highlighting
  • Tab-Vervollständigung
  • SQL Query Log Abfragen
  • Such-/ Filter-Funktionen
  • Speichert letzte Sessions-Location
  • Automatische Logformat Detection
  • Automatische Datenextraktion (Key/Value)
  • GZIP/BZIP-On-The-Fly Dekomprimierung
  • Live-, Timeline-, Single-Log-, Pretty-Print-View

Einige Anwendungsbeispiele:

# Anzeige der Hilfe
lnav -h

# Einfacher Aufruf des Syslog-Logfiles
lnav /var/log/syslog

# Einfacher Aufruf mehrerer Logfiles
lnav /var/log/syslog /var/log/auth.log

# Aufruf mit Timestamp-Funktion
lnav -t /var/log/syslog

# Anzeige ab Level warning und höher
lnav -l warning /var/log/syslog

# Aufruf auch von älterer Logfiles
lnav -r /var/log/syslog.*

# Journal an lnav durchpipen
journalctl | lnav

# Filtere Zeilen, die das Wort "warning" enthalten und zeige die Anzahl der gefilterten Zeilen
lnav -n -c ':filter-in /warning/i' -c ':echo-lines' /var/log/syslog

# Headless Mode. Anzeige von Meldungen mit dem Regex "error, warn, fail, panic"
lnav -n -c ':filter-in (error|warn|fail|panic)' /var/log/syslog

# Headless Mode. Nur Meldungen zwischen 06:00 und 18:00 (Time-Range) anzeigen
lnav -n -c ':hide-lines-before 6am' -c ':hide-lines-after 6pm' /var/log/syslog

# Zeige die 10 am häufigsten angeforderten URLs in der Apache-Zugriffslogdatei an
lnav -n -c ':top-query url' /var/log/apache2/access.log

# Headless Mode. Angezeige der 10 meisten, im Apache access.log vorkommenden IP-Adressen
lnav -n -c ';SELECT c_ip, count(*) AS total FROM access_log GROUP BY c_ip ORDER BY total DESC LIMIT 10' /var/log/apache2/access.log

# Headless Mode. Die 10 meisten, im Apache access.log vorkommenden IP-Adressen werden angezeigt und zusätzlich abgespeichert
lnav -n  -c ';SELECT c_ip, count(*) AS total FROM access_log GROUP BY c_ip ORDER BY total DESC LIMIT 10' -c ':write-csv-to /root/ip.log' /var/log/apache2/access.log

# Filtere Zeilen, die das Wort "error" enthalten, und exportiere sie als CSV-Datei
lnav -n -c ':filter-in /error/i' -c ':write-to -f csv /path/to/output.csv' /var/log/syslog