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