Ricerca nel sito web

Come utilizzare Journalctl per leggere i registri di sistema Linux


Per molti anni i log di sistema e del kernel sono stati gestiti da un'utilità chiamata syslogd. La maggior parte dei sistemi operativi basati su Linux sono migrati su systemd, che viene fornito con un demone di registro diverso, journald. Per interagire con questi log, si utilizza l'utilità journalctl.

Concedere all'utente l'autorizzazione per leggere i registri di sistema

Solo gli utenti appartenenti ai gruppi "adm" o "systemd-journal" possono leggere i log di systemd. Distribuzioni come Ubuntu ti aggiungono già come utente al gruppo adm.

Apri un emulatore di terminale e digita il seguente comando:

groups

Se vedi "adm" o "systemd-journal" nell'output, puoi saltare il resto dei passaggi in questa sezione. Altrimenti aggiungiti al gruppo "adm".

sudo adduser $USER adm

Dovresti riavviare la sessione di accesso affinché questa modifica abbia effetto (disconnettersi e accedere). Se non puoi farlo per vari motivi, usa questo comando per accedere al nuovo gruppo senza riavviare la sessione grafica.

newgrp adm

Non chiudere la finestra del terminale. Ora fai parte del gruppo adm: nella sessione del terminale, ma non nella sessione grafica. Se apri un nuovo terminale in questo momento, il tuo utente non potrà più accedere al gruppo adm.

Controlla se il diario è persistente

I log di systemd possono essere persistenti o volatili. Su Ubuntu e altre distribuzioni sono persistenti per impostazione predefinita. Su Debian 9 sono volatili, nel senso che vengono mantenuti solo in memoria (non su disco) e scompaiono allo spegnimento o al riavvio. Immettere il comando seguente.

journalctl --list-boots

Se qui sono presenti più voci, non devi fare altro. Significa che i diari sono conservati su disco (persistenti). Se ottieni solo una voce, il diario è volatile. Cambialo in persistente.

sudo sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.conf

Seleziona quale diario delle voci di avvio visualizzare

Di solito, vorrai vedere il registro per l'avvio corrente. In rare occasioni vorrai vedere l'avvio precedente, quando qualcosa è andato storto, ad esempio dopo un arresto anomalo del sistema.

Per visualizzare il registro per l'avvio corrente:

journalctl -b 0

Per l'avvio precedente, utilizzare "-1" invece di "0" e per due avviamenti fa, "-2" e così via.

journalctl -b -1

Naviga e cerca nel diario di sistema

Dopo aver aperto il registro con journalctl, puoi navigare nel testo con i tasti freccia e i tasti PAGINA SU o PAGINA GIÙ. Altri tasti utili sono:

  • > per andare alla fine dell'output.
  • < per andare all'inizio dell'output.
  • / per cercare una stringa di testo. Dopo aver premuto il tasto barra, inserisci la stringa che desideri trovare, seguita da Invio. La stringa fa distinzione tra maiuscole e minuscole, quindi "rete" non troverà le stringhe "Rete". La ricerca inizia dalla posizione di visualizzazione corrente, verso il basso. Per cercare verso l'alto, usa ?.
  • n trova la corrispondenza successiva nella ricerca corrente. N trova il precedente.
  • q esce dall'utilità journalctl.

Filtra le voci di registro per priorità

A volte vuoi solo cercare errori, ignorando avvisi e messaggi di stato. Ogni voce in un registro ha una priorità: emergenza, avviso, critico, errore, avviso, avviso, informazioni. Questi sono elencati in ordine di importanza, l'emergenza è riservata agli scenari peggiori (sistema inutilizzabile). I messaggi informativi sono solo testo informativo, che riporta lo stato dei programmi che funzionano normalmente.

Per visualizzare solo i messaggi di errore dell'avvio corrente, immettere:

journalctl -b 0 -p err

Se vuoi vedere gli errori da tutti gli stivali, rimuovi semplicemente il parametro "-b":

journalctl -p err

Questi sono i codici che puoi passare al parametro "-p":

  • mettere in guardia
  • critico
  • eseguire il debug
  • emergente
  • errare
  • informazioni
  • avviso
  • avvertimento

Filtra le voci di registro in base al percorso del file eseguibile del processo o dell'unità Systemd

Alcuni processi vengono avviati e gestiti dalle cosiddette unità systemd. Per visualizzare tutti i log relativi all'unità di servizio cron, immettere:

journalctl -u cron.service

Puoi vedere quali unità hai a disposizione con:

systemctl list-dependencies

Puoi navigare nell'elenco con i tasti freccia su e giù. Premi q per uscire.

Se preferisci utilizzare il percorso del file eseguibile del programma (binario), passa semplicemente il percorso completo come argomento.

journalctl /usr/sbin/cron

Non dimenticare che puoi anche filtrare in base alla voce di avvio corrente per eliminare i messaggi non necessari.

journalctl -b 0 /usr/sbin/cron

Conclusione

Journalctl mira a semplificare la ricerca di ciò che stai cercando. Se vuoi conoscere i parametri più avanzati che puoi utilizzare, consulta la pagina manuale del comando journalctl.

Articoli correlati