lnav visualizzatore di file log per terminale Linux e Unix

10 lug 2024 3 min di lettura
lnav visualizzatore di file log per terminale Linux e Unix
Indice dei contenuti

Introduzione

Chi lavora come sviluppatore o amministratore di sistema sa bene quanto sia importante utilizzare i file di log per individuare e risolvere errori sui sistemi Linux e Unix. Strumenti come grep, tail, cat o journalctl sono spesso utilizzati per visualizzare questi file, ma con l’aumentare del numero di log, gestirli può diventare complicato. Ecco dove entra in gioco lnav, un avanzato visualizzatore di file di log che va oltre le funzionalità di base. Questo strumento non solo riconosce i log, ma identifica anche timestamp, livelli di log e altri dettagli cruciali. Inoltre, consente di eseguire query SQL sui file di log standard e creare report personalizzati. Vediamo come installare e utilizzare lnav.

Caratteristiche distintive di lnav

  • Decompressione dei file di log in tempo reale, similmente alle utilità z* su Linux e Unix.
  • Riconoscimento del formato dei file di log.
  • Unione dei file di log in una vista unica ordinata per tempo.
  • Supporto ai colori nel terminale per evidenziare errori e avvisi.
  • Supporto SSH (SFTP) per visualizzare file di log su macchine Linux e Unix remote.
  • Seguire i file durante la rinomina e trovare nuovi file in directory specificate.
  • Creazione di un indice di errori e avvisi.
  • Stampa formattata di JSON.
  • Navigazione rapida tra errori e avvisi.
  • Ricerca con espressioni regolari.
  • Evidenziazione e filtraggio di messaggi utilizzando espressioni regolari o SQLite.
  • Visualizzazione di un istogramma dei messaggi nel tempo.
  • Query dei messaggi usando SQLite.

Installazione

Ecco come installare lnav sulle diverse distribuzioni Linux e Unix:

Debian/Ubuntu Linux:

sudo apt install lnav

CentOS/RHEL/Fedora/Rocky/Alma/Oracle Linux Prima, abilita il repository EPEL, poi:

sudo dnf install lnav

Arch Linux:

sudo pacman -S lnav

Alpine Linux:

apk add lnav

OpenSUSE / SUSE Linux

sudo zypper install lnav

macOS Prima, abilita e installa Homebrew, poi:

brew install lnav

Oppure usa:

sudo port install lnav

FreeBSD Unix:

pkg install lnav

Utilizzo di lnav

La sintassi per usare lnav è semplice:

# File di log
lnav /percorso/del/file.log
lnav /percorso/del/file1.log /percorso/del/file2.log

# Directory
lnav /percorso/della/app/log/dir1/
lnav /percorso/della/app/log/dir1/ /var/log/

# Wildcard
lnav /var/log/nginx/app_*_error*log
lnav /var/log/nginx/app_*_error*log /var/log/*.err

Utilizzo di SSH per host remoti

lnav utente@nome-server:/var/log/file.log
lnav utente@server1:/var/log/
lnav utente@server1:/var/log/*.err

Uso con systemd-journald su sistemi Linux

journalctl | lnav
journalctl -f | lnav
journalctl -u ssh.service | lnav

Per trovare errori, premi e per andare al prossimo errore o Shift+E per tornare al precedente. Usa w e Shift+W per passare ai successivi o precedenti avvisi. Premi q o CTRL+c per uscire. Per cercare testo nei file, premi / per aprire il prompt di ricerca e TAB per completare automaticamente la stringa di ricerca.

Visualizzazione dei log dei container Docker

docker logs container-id | lnav
docker logs -f container-id | lnav

Se l'ID del container è 611ac85cc97d o si chiama "app":

docker logs 611ac85cc97d | lnav
docker logs -f app | lnav

Puoi anche usare:

lnav docker://{container_id_or_name}/path/to/log/file
lnav docker://{container_id_or_name}/var/dir1
lnav docker://app/var/log/
lnav docker://app/var/log/nginx/nginx.app.log

Monitoraggio dell'output di qualsiasi comando

Molti comandi generano output e log durante l'esecuzione. Ad esempio, per monitorare l'output del comando make durante la compilazione:

lnav -e 'make -j8'

Interfaccia SQLite

lnav permette di eseguire analisi dei log tramite SQLite, una funzionalità molto potente. Ogni formato di log è accessibile tramite tabelle virtuali, permettendo di eseguire query SQL sui log. Ad esempio:

lnav /var/log/nginx/www.example.com_https_access.log

Puoi attivare il prompt SQL premendo il tasto ; e scrivere una query semplice come:

SELECT * FROM logline LIMIT 10;

Otterrai i risultati direttamente nel terminale.

Conclusione

lnav è uno strumento avanzato per visualizzare i file di log, con funzionalità che permettono di eseguire query SQL, creare report e molto altro. Offre un'interfaccia utente semplice e intuitiva e supporta numerosi formati di log, container Linux e visualizzazione remota tramite SSH. Questo strumento è altamente raccomandato per sysadmin e sviluppatori Linux/Unix. Puoi iniziare a usare lnav con questi semplici comandi o visitare la pagina del progetto per ulteriori informazioni.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.