[[Vorlage(Getestet, bionic, focal, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] [:Logdateien:Logdateien - Übersicht] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, align=left, alt="Linux Terminal", 48)]] {{{#!vorlage Infobox "The Log File Navigator (lnav)", "lnav mit Apache Fehler-Logfile", "lnav-sc-apache.png", "[:Pakete_installieren:Paketquellen] (universe)" Anwendungsbereich [:Logdateien:] verwalten +++ Aktuelle Version 0.8.5 (April 2019) +++ Programmiersprache [:Programmiersprache/#C-2:C++] +++ Lizenz [github:tstack/lnav/blob/master/LICENSE:BSD-Lizenz] {en}[[BR]](Open Source) +++ Projektseite [https://lnav.org/ lnav.org] {en} }}} [https://lnav.org/ The Log File Navigator] {en}, kurz lnav, ist ein Programm für die Konsole,[2] um fast alle Logdateien [4] eines Linuxrechners -oder Servers in Echtzeit zu überwachen. Da es auf der Konsole ausgeführt wird, ist das Programm ideal für Systeme, die ohne [:Desktop:Desktopumgebung] betrieben werden oder nur per [:SSH:] erreichbar sind. Nutzer, zum Beispiel Einsteiger, die mit nativen Konsolenwerkzeugen, wie [:grep:], [:awk:] oder [:sed:], nicht so recht klarkommen, sind mit lnav gut bedient. Es bietet zahlreiche Funktionen, um die von Haus aus teilweise unübersichtlichen Protokolldateien (Logfiles) zu verwalten und zu analysieren: * Unterstützung gängiger Logformate, einschließlich dem automatischen Entpacken von komprimierten Protokolldateien -oder Verzeichnissen * Farbige Formatierungen, um zum Beispiel Info-, Warnungs und Fehlermeldungen auf einem Blick zu unterscheiden * Automatische Anzeige von neuen Einträgen in Echtzeit * Mehrere Logdateien auf einmal überwachen * Filter -und Suchfunktionen * SQL-Abfragen starten = Installation = lnav kann direkt aus den Quellen installiert werden. [1] {{{#!vorlage Paketinstallation lnav, universe }}} = Bedienung = Eine lnav-Sitzung wird im Terminal [2] mit folgenden Befehl gestartet: {{{#!vorlage Befehl lnav }}} Wird lnav ohne weitere Parameter gestartet, so wird in Ubuntu automatisch die Protokolldatei '''/var/log/syslog''' angezeigt. === Eine bestimmte Datei anzeigen === Dazu einfach den Pfad der Datei als Parameter mit angeben, zum Beispiel: {{{#!vorlage Befehl lnav ~/.xsession-errors }}} Das funktioniert auch mit [:gzip:] oder [:bzip2:] komprimierten Dateien oder Verzeichnissen. {{{#!vorlage Hinweis Die Datei '''~/.xsession-errors''' ist ein Beispiel für eine Datei, deren Format nicht vollständig von lnav unterstützt wird. Einige Funktionen, wie zum Beispiel der [#Hotkeys Hotkey] [[Vorlage(Tasten, p)]] zur Detailanzeige, sind nicht verfügbar. Da aber lnav theoretisch jede Textdatei öffnen kann, kann auch diese Datei angezeigt, durchsucht und [#Filtern gefiltert] werden. }}} ===Mehrere Dateien anzeigen=== Um mehrere Dateien auf ein mal anzuzeigen, entweder die Dateinamen einzeln mit angeben, zum Beispiel `lnav /var/log/apache2/access.log /var/log/syslog`. Wird ein Ordner als Parameter mit übergeben, so werden alle sich darin befindliche Logdateien gesammelt angezeigt (ohne Unterverzeichnisse), zum Beispiel `lnav /var/log/apache2/`. Standardmäßig werden dabei ältere Logdateien ignoriert. == Anwendungsbeispiele== * Das [:systemd/journalctl:Journal] des System- und Sitzungs-Manager [:systemd:(systemd)] auslesen: {{{#!vorlage Befehl journalctl | lnav -q }}} * Über lnav kann man sich alle Fehlermeldungen beim [:Programme_kompilieren/#Kompilieren:Kompilieren] eines Programmes in Echtzeit ausgeben lassen und analysieren. Die Option `-t` fügt pro Meldung noch einen Zeitstempel hinzu: {{{#!vorlage Befehl make 2>&1 | lnav -t }}} == Parameter beim Programmstart == Eine Auswahl der Parameter, mit denen man lnav starten kann: {{{#!vorlage Tabelle Option Bedeutung +++ `-r` Auch ältere Logdateien im angegebenen Verzeichnis mit ausgeben („rekursiv“) +++ `-V` Installierte Version anzeigen +++ `-h` Hilfe anzeigen +++ `-H` Ausführliche Hilfe direkt in lnav anzeigen }}} * [https://lnav.readthedocs.io/en/latest/cli.html Ausführliche Liste aller Programmoptionen] {en} == Hotkeys == Folgende Tastenkürzel (Hotkeys) dienen der Bedienung von lnav, während das Programm ausgeführt wird (Auswahl): {{{#!vorlage Tabelle lnav bedienen +++ Tastenkürzel Bedeutung +++ Allgemein +++ [[Vorlage(Tasten, q)]] lnav beenden bzw. eine besondere Ansicht (z. B. Hilfeseite) schließen +++ [[Vorlage(Tasten, ctrl+c)]] lnav beenden +++ [[Vorlage(Tasten, ctrl+w)]] Zeilenumbruch ein/ausschalten +++ [[Vorlage(Tasten, /)]] Sucheingabe öffnen +++ [[Vorlage(Tasten, :)]] Einen [#Filtern internen Befehl] ausführen +++ [[Vorlage(Tasten, ;)]] Eine SQL-Abfrage ausführen +++ [[Vorlage(Tasten, ctrl+r)]] Die aktuelle lnav-Sitzung zurücksetzen. Alle gesetzten Filter, etc. werden gelöscht. +++ Ansicht (Zurücksetzen mit der selben Taste) +++ [[Vorlage(Tasten, i)]] [wikipedia:Histogramm:] anzeigen +++ [[Vorlage(Tasten, p)]] Detailansicht für aktuellen Eintrag anzeigen, Navigieren (s. u.) weiter möglich +++ [[Vorlage(Tasten, ?)]] Hilfe anzeigen }}} {{{#!vorlage Tabelle Im Logfile Navigieren +++ Schritt Vor Zurück +++ Zeile [[Vorlage(Tasten, down)]] oder [[Vorlage(Tasten, enter)]] [[Vorlage(Tasten, up)]] oder [[Vorlage(Tasten, k)]] +++ Seite [[Vorlage(Tasten, space)]] oder [[Vorlage(Tasten, bild-ab)]] [[Vorlage(Tasten, backspace)]] oder [[Vorlage(Tasten, bild-auf)]] +++ Zur nächsten Warnmeldung [[Vorlage(Tasten, w)]] [[Vorlage(Tasten, shift+w)]] +++ Zur nächsten Fehlermeldung [[Vorlage(Tasten, e)]] [[Vorlage(Tasten, shift+e)]] +++ Zum ersten Eintrag des nächsten Tag [[Vorlage(Tasten, 0)]] [[Vorlage(Tasten, shift+0)]] +++ 24h [[Vorlage(Tasten, d)]] [[Vorlage(Tasten, shift+d)]] +++ 1 Minute [[Vorlage(Tasten, 7)]] [[Vorlage(Tasten, 8)]] +++ 10 Minuten [[Vorlage(Tasten, 1)]] [[Vorlage(Tasten, shift+1)]] +++ 20 Minuten [[Vorlage(Tasten, 2)]] [[Vorlage(Tasten, shift+2)]] +++ 30 Minuten [[Vorlage(Tasten, 3)]] [[Vorlage(Tasten, shift+3)]] +++ 40 Minuten [[Vorlage(Tasten, 4)]] [[Vorlage(Tasten, shift+4)]] +++ 50 Minuten [[Vorlage(Tasten, 5)]] [[Vorlage(Tasten, shift+5)]] +++ 60 Minuten [[Vorlage(Tasten, 6)]] [[Vorlage(Tasten, shift+6)]] +++ Ende/Anfang der Datei [[Vorlage(Tasten, end)]] [[Vorlage(Tasten, home)]] }}} * [https://lnav.readthedocs.io/en/latest/hotkeys.html Komplette Liste aller Hotkeys] {en} == Filtern == Mit der Eingabe von [[Vorlage(Tasten, :)]] wird innerhalb von lnav eine Programm-eigene Befehlseingabe geöffneten (unterste Zeile), in der man verschiedene interne Befehle ausführen kann, zum Beispiel zum Filtern der Ausgabe. lnav unterstützt beim Eingeben von Befehlen eine Autovervollständigung. Nach der Eingabe von [[Vorlage(Tasten, :)]] stehen folgende Befehle, sogenannte „Commands“, oder Tastenkürzel zur Verfügung (Auswahl): {{{#!vorlage Tabelle Befehl/Taste Bedeutung +++ 2x [[Vorlage(Tasten, tab)]] Liste aller verfügbaren Befehle +++ [[Vorlage(Tasten, tab)]] Vervollständigt eine Befehlseingabe bei vorangegangener Eingabe von mind. 1 Anfangsbuchstaben +++ `set-min-log-level LEVEL` Zeigt nur Einträge ab der Mindest-Stufe `LEVEL` an[[BR]]`set-min-log-level` + 2x [[Vorlage(Tasten, tab)]] zeigt alle verfügbaren Info -und Warnstufen an +++ `filter-in REGEX` Nur Zeilen anzeigen, die `REGEX` entsprechen +++ `filter-out REGEX` Zeilen __nicht__ anzeigen, die `REGEX` entsprechen }}} Möchte man zum Beispiel in der Zugriffslogdatei von Apache ('''/var/log/apache2/access.log''') die eigenen Zugriffe ausblenden, so kann man diese mit der Eingabe von `filter-out 127.0.0.1 - ` und [[Vorlage(Tasten, enter)]] ausblenden. Möchte man alle gesetzten Befehle innerhalb einer Sitzung rückgängig machen, so kann man die Sitzung mit [[Vorlage(Tasten, ctrl+r)]] vollständig zu­rück­set­zen. * [https://lnav.readthedocs.io/en/latest/commands.html#commands Erläuterung aller Befehle] {en} = Links = == Intern == * [:Shell/Anwendungen: Liste von Konsolenprogrammen] == Extern == * [https://lnav.org/ Projektseite] {en} * [https://lnav.readthedocs.io/en/latest/formats.html Liste aller unterstützten Log-Formate] {en} * [https://lnav.readthedocs.io/en/latest/index.html Dokumentation] {en} * [https://lnav.org/blog Blog] {en} * [https://groups.google.com/forum/#!forum/lnav Forum bei Google Groups] {en} * [twitter:lnavapp:lnav Twitter-Account] {en} * [https://itrig.de/index.php?/archives/2364-Logfile-Navigator-lnav-Ein-Lichtblick-bei-der-grauen-Logsuche.html Tutorial auf itrig.de] {de} * [https://linux.fr33bas3.net/2013/11/ueberblick-in-den-protokolldateien-behalten-mit-lnav/ Beispiele für SQL-Abfragen innerhalb von lnav] {de} * [https://www.howtoforge.com/tutorial/ubuntu-lnav-log-viewer/ Tutorial für Ubuntu] {en} #tag: System, Server, Logdateien, Terminal, Shell, Sicherheit