LNAV také známý jako Lateral Navigation je bezplatný a open source rozšířený prohlížeč souborů protokolu, který lze použít k vyhledání informací o prohlížených souborech spolu s časovými značkami a úrovněmi protokolů. LNAV je prohlížeč souborů protokolu příkazového řádku vytvořený pro řešení malého rozsahu. Je jednoduchý, snadno použitelný a přizpůsobitelný. LNAV je zcela freewarová aplikace, která běží na operačních systémech Linux a Mac. Umožňuje uživateli zobrazit protokoly z více souborů v jednom okně a můžete také vidět živou aktualizaci těchto protokolů.
LNAV přichází s mnoha funkcemi, některé z nich jsou uvedeny níže:
- Umožňuje vám protokolovat dotazy prostřednictvím SQL.
- Schopnost detekovat a číst protokoly z více formátů protokolů.
- Má funkce zesvětlení barev, které uživatelům pomáhají snadno identifikovat rozdíly mezi informacemi, varováními a chybami.
- Automaticky extrahovat data z komprimovaných souborů, jako jsou gzip a bzip2.
- Možnost prohledávat protokoly během psaní. Nové řádky protokolu se automaticky načítají a prohledávají při přidávání.
V tomto tutoriálu vysvětlíme, jak nainstalovat a používat lnav na serveru Ubuntu 16.04.
Požadavky
- Server se systémem Ubuntu 16.04.
- Uživatel bez oprávnění root s právy sudo.
Instalovat Lnav
Ve výchozím nastavení je lnav k dispozici ve výchozím úložišti Ubuntu 16.04. Můžete jej tedy nainstalovat pouhým spuštěním následujícího příkazu:
sudo apt-get install lnav -y
Po instalaci lnav můžete zobrazit verzi lnav spuštěním následujícího příkazu:
lnav -V
Měli byste vidět následující výstup:
lnav 0.6.2
Práce s Lnav
Všechny možnosti lnav můžete zobrazit pomocí následujícího příkazu:
lnav -h
Měli byste vidět následující výstup:
usage: lnav [-hVsar] [logfile1 logfile2 ...] A curses-based log file viewer that indexes log messages by type and time to make it easier to navigate through files quickly. Key bindings: ? View/leave the online help text. q Quit the program. Options: -h Print this message, then exit. -C Check configuration and then exit. -d file Write debug messages to the given file. -V Print version information. -s Load the most recent syslog messages file. -a Load all of the most recent log file types. -r Load older rotated log files as well. -t Prepend timestamps to the lines of data being read in on the standard input. -w file Write the contents of the standard input to this file. Optional arguments: logfile1 The log files or directories to view. If a directory is given, all of the files in the directory will be loaded. Examples: To load and follow the syslog file: $ lnav -s To load all of the files in /var/log: $ lnav /var/log To watch the output of make with timestamps prepended: $ make 2>&1 | lnav -t Version: lnav 0.6.2
Nyní začněme spouštět příkaz lnav, abychom viděli informace v reálném čase na základě nejnovějších časových razítek ze všech souborů protokolu. Tento příkaz shromáždí protokol ze všech souborů v adresáři /var/log.
sudo lnav
Měli byste vidět následující výstup:
Jan 28 16:56:01 icingaclient wpa_supplicant[926]: wlan0: CTRL-EVENT-SCAN-STARTED Jan 28 16:59:46 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 16:59:46 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 16:59:46 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 273 seconds. Jan 28 16:59:46 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed reboot -> renew Jan 28 16:59:46 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 16:59:46 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 16:59:46 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 16:59:46 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 16:59:46 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 16:59:46 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 16:59:46 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:04:19 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:04:19 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds. Jan 28 17:04:20 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:04:20 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:04:20 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:04:20 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:04:20 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:04:20 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Pokud chcete vidět protokol z adresáře /var/log/apache2, spusťte následující příkaz:
sudo lnav /var/log/apache2
Někdy nejsou nejnovější informace k dispozici v nejnovějších souborech. Takže můžete zobrazit informace ze starých souborů protokolu pomocí -r možnost:
sudo lnav -r
Měli byste vidět následující výstup:
Jan 28 17:04:20 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 226 seconds. Jan 28 17:04:20 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed renew -> renew Jan 28 17:04:20 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:04:20 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:04:20 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:04:20 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:04:20 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:04:20 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:04:20 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:05:01 icingaclient CRON[3964]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Jan 28 17:08:06 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds.
Můžete také zobrazit soubor protokolu s možnostmi časových razítek pomocí -t
možnost:
sudo lnav -t
Měli byste vidět následující výstup:
Jan 28 17:08:06 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:08:06 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 297 seconds. Jan 28 17:08:06 icingaclient NetworkManager[865]:(wlan0): DHCPv4 state changed renew -> renew Jan 28 17:08:06 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:08:06 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:08:06 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:08:06 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:08:06 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:08:06 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:08:06 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Jan 28 17:12:47 icingaclient dnsmasq[1174]: nameserver 192.168.137.1 refused to do a recursive query Jan 28 17:13:03 icingaclient dhclient: DHCPREQUEST of 192.168.137.101 on wlan0 to 192.168.137.1 port 67 (xid=0xcd468e) Jan 28 17:13:03 icingaclient dhclient: DHCPACK of 192.168.137.101 from 192.168.137.1 Jan 28 17:13:03 icingaclient dhclient: bound to 192.168.137.101 -- renewal in 291 seconds. Jan 28 17:13:03 icingaclient NetworkManager[865]: (wlan0): DHCPv4 state changed renew -> renew Jan 28 17:13:03 icingaclient NetworkManager[865]: address 192.168.137.101 Jan 28 17:13:03 icingaclient NetworkManager[865]: prefix 24 (255.255.255.0) Jan 28 17:13:03 icingaclient NetworkManager[865]: gateway 192.168.137.1 Jan 28 17:13:03 icingaclient NetworkManager[865]: nameserver '192.168.137.1' Jan 28 17:13:03 icingaclient NetworkManager[865]: domain name 'mshome.net' Jan 28 17:13:03 icingaclient dbus[779]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper) Jan 28 17:13:03 icingaclient dbus[779]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Chcete-li načíst všechny nejnovější typy souborů protokolu, spusťte následující příkaz:
sudo lnav -a
Použití klávesové zkratky s Lnav
Můžete také procházet výstupem příkazu lnav pomocí různých klávesových zkratek.
Nejprve spusťte příkaz lnav:
sudo lnav
Měli byste vidět následující výstup:
Nyní použijte i
klávesou na klávesnici přepnete výstup lnav do zobrazení histogramu, jak je uvedeno níže:
Dále použijte p
pro zobrazení výsledku analyzátoru protokolu, jak je uvedeno níže:
Dále použijte m
klíč pro označení nejvyšších souborů protokolu, jak je znázorněno níže:
Závěr
Doufám, že nyní můžete snadno identifikovat problémy pomocí lnav. Můžete se také podívat na jeho oficiální stránky, kde najdete další podrobnosti. Pokud máte nějaké dotazy, neváhejte je komentovat.