Come utilizzare journalctl per leggere i registri di sistema di Linux

Una finestra di terminale su un laptop Linux

Fatmawati Achmad Zaenuri/Shutterstock



La registrazione del sistema Linux è cambiata con l'introduzione di |_+_|. Impara a usare il |_+_| comando per leggere e filtrare i messaggi del registro di sistema.

Registrazione centralizzata

Non estraneo alle polemiche, il |_+_| responsabile del sistema e del servizio ha introdotto un cambiamento significativo nel modo in cui vengono raccolti i registri di sistema. I log si trovavano in posti diversi nel file system a seconda del servizio o del demone che li stava creando. Ma avevano tutti una cosa in comune. Erano semplici file di testo.





Con |_+_| tutti i file di registro di sistema, avvio e kernel vengono raccolti e gestiti da una soluzione di registrazione centrale e dedicata. Il formato in cui sono memorizzati è binario. Una cosa che questo facilita è la possibilità di estrarre i dati in diversi formati, come ad esempio JSON , come vedremo.

può anche rendere più semplice il riferimento incrociato di informazioni correlate che sarebbero state precedentemente registrate in file di registro separati. Poiché i dati sono ora conservati in un unico giornale, i dati provenienti da diverse fonti di interesse possono essere selezionati e visualizzati in un unico elenco di voci intrecciate.



|_+_| è lo strumento lavoravo con il giornale .

journalctl senza fronzoli

Puoi invocare |_+_| senza parametri della riga di comando:

systemd



|_+_| visualizza l'intero giornale, con le voci più vecchie in cima all'elenco. L'elenco viene visualizzato in |_+_|, consentendo di sfogliare e cercare utilizzando le consuete funzionalità di navigazione di |_+_|. Puoi anche usare il |_+_| e |_+_| tasti per scorrere lateralmente per leggere ampie voci di registro.

Premendo |_+_| key passerà direttamente in fondo all'elenco e alle voci di registro più recenti.

Premi |_+_| uscire.

IMPARENTATO: Come usare il comando less su Linux

Sebbene |_+_| può essere chiamato senza usare |_+_|, ti assicurerai di vedere tutti i dettagli all'interno del log se usi |_+_|.

journalctl

Se necessario, puoi fare |_+_| invia il suo output alla finestra del terminale invece che a |_+_|, utilizzando |_+_| opzione.

systemd

L'output scorre rapidamente attraverso la finestra del terminale e si torna al prompt dei comandi.

Per limitare il numero di righe che |_+_| restituisce, usa |_+_| (linee) opzione. Chiediamo dieci righe di output:

systemd

In seguito agli aggiornamenti della rivista

Per fare |_+_| visualizzare le voci più recenti non appena arrivano nel diario, utilizzare |_+_| (segui) opzione.

journalctl

Annuncio pubblicitario

La voce più recente ha un timestamp di 07:09:07. Man mano che si svolge una nuova attività, le nuove voci vengono aggiunte nella parte inferiore del display. Aggiornamenti quasi in tempo reale: fantastico!

Alle 07:09:59 un'applicazione chiamata |_+_| ha inserito una voce di registro nel diario che diceva: Nuovo messaggio da HTG.

Modifica del formato di visualizzazione

Poiché il journal è un file binario, i dati in esso contenuti devono essere tradotti o analizzati in testo prima di poter essere visualizzati. Con parser diversi, è possibile creare formati di output diversi dagli stessi dati di origine binaria. Esistono diversi formati che |_+_| poter usare.

L'output predefinito è il formato breve, molto simile al classico formato del registro di sistema. Per richiedere esplicitamente il formato breve, utilizzare il |_+_| (output) con l'opzione |_+_| modificatore.

journalctl

Da sinistra a destra, i campi sono:

  • L'ora in cui è stato creato il messaggio, nell'ora locale.
  • Il nome dell'host.
  • Il nome del processo. Questo è il processo che ha generato il messaggio.
  • Il messaggio di registro.

Per ottenere una data e ora complete utilizzare il |_+_| modificatore:

journalctl

I formati di data e ora in questo output sono il formato in cui è necessario fornire date e ore quando si selezionano i messaggi di registro per periodo, come vedremo a breve.

Annuncio pubblicitario

Per vedere tutti i metadati che accompagnano ogni messaggio di log, usa il |_+_| modificatore.

less

ci sono molti campi possibili , ma è raro che tutti i campi siano presenti in un messaggio.

Un campo che vale la pena discutere è |_+_| campo. In questo esempio ha valore 6. Il valore rappresenta l'importanza del messaggio:

    0: Emergenza. Il sistema è inutilizzabile. uno: Mettere in guardia. È stata segnalata una condizione che dovrebbe essere corretta immediatamente. Due: Critico. Questo copre arresti anomali, coredump e guasti significativi nelle applicazioni primarie. 3: Errore. È stato segnalato un errore, ma non è considerato grave. 4: Avvertimento. Porta alla tua attenzione una condizione che, se ignorata, può diventare un errore. 5: Avviso. Utilizzato per segnalare eventi insoliti, ma non errori. 6: Informazione. Messaggi operativi regolari. Questi non richiedono azione. 7: Debug. Messaggi inseriti nelle applicazioni per facilitarne il debug.

Se vuoi che l'output sia presentato come correttamente formato Notazione oggetto JavaScript (JSON), usa |_+_| modificatore:

less

Ogni messaggio è avvolto correttamente come un oggetto JSON ben formato e visualizzato un messaggio per riga di output.

Per avere l'output JSON bella stampata , usa |_+_| modificatore.

Left Arrow

Annuncio pubblicitario

Ogni oggetto JSON è suddiviso su più righe, con ogni coppia nome-valore su una nuova riga.

Per visualizzare solo i messaggi delle voci di registro, senza timestamp o altri metadati, utilizzare |_+_| modificatore:

Right Arrow

Questo formato di visualizzazione può rendere difficile identificare quale processo ha generato l'evento di registro, sebbene alcuni messaggi contengano un indizio.

Selezione dei messaggi di registro per periodo di tempo

Per limitare l'output da |_+_| a un periodo di tempo che ti interessa, usa il |_+_| (dal) e |_+_| (fino a) opzioni.

Per vedere le voci di registro da una determinata ora e data, utilizzare questo comando:

End

Il display contiene solo i messaggi arrivati ​​dopo la data e l'ora del comando.

Annuncio pubblicitario

Per definire un periodo di tempo per il quale si desidera segnalare, utilizzare entrambi i |_+_| (dal) e |_+_| (fino a) opzioni insieme. Questo comando esamina i messaggi di registro da un periodo di tempo di 15 minuti.:

Ctrl+C

Questa è un'ottima combinazione da usare se sai che è successo qualcosa di strano sul tuo sistema e approssimativamente quando è successo.

Utilizzo di periodi di tempo relativi

È possibile utilizzare l'indirizzamento relativo quando si selezionano i periodi di tempo. Ciò significa che puoi dire cose come mostrami tutti gli eventi da un giorno fa fino ad ora. Questo è proprio ciò che significa questo comando. La d sta per giorno e -1 significa un giorno nel passato.

journalctl

I messaggi di registro sono elencati dalle 00:00:00 di ieri, fino ad ora.

Se vuoi indagare su qualcosa che è successo nel passato recente, puoi specificare un periodo di tempo relativo misurato in ore. Qui stiamo esaminando i messaggi di registro dell'ultima ora:

sudo

Vengono visualizzati i messaggi dell'ultima ora. È inoltre possibile utilizzare m per impostare periodi di tempo relativi misurati in minuti e w per settimane.

Annuncio pubblicitario

|_+_| comprende |_+_|, |_+_| e |_+_|. Questi modificatori forniscono un modo pratico per specificare periodi di tempo comuni. Per vedere tutti gli eventi accaduti ieri, usa questo comando:

sudo

Tutti gli eventi del registro del diario che si sono verificati ieri, fino a mezzanotte 00:00:00, vengono recuperati e visualizzati per te.

Per vedere tutti i messaggi di registro ricevuti finora, usa questo comando:

journalctl

Viene visualizzato tutto dalle ore 00:00:00 fino all'ora in cui viene impartito il comando.

Sei in grado di mescolare i diversi modificatori del periodo di tempo. Per vedere tutto da due giorni fa fino all'inizio di oggi, usa questo comando:

less

Tutto dall'altro ieri fino ad oggi viene recuperato e visualizzato.

Selezione dei messaggi di registro in base ai campi dati

Puoi cercare i messaggi di registro che corrispondono a una vasta gamma di campi di riviste . Queste ricerche cercano di trovare corrispondenze nei metadati allegati a ciascun messaggio. Si consiglia di fare riferimento all'elenco dei campi e scegli quelli che ti saranno più utili.

Annuncio pubblicitario

Tieni presente che se un'applicazione completa o meno ogni campo dipende interamente dagli autori dell'applicazione. Non puoi garantire che tutti i campi vengano compilati.

Tutti i modificatori del campo journal vengono utilizzati allo stesso modo. Ne useremo alcuni nei nostri esempi di seguito. Per cercare i messaggi di registro da un'applicazione specifica, utilizzare |_+_| (comando) modificatore. Se usi anche |_+_| (segui) opzione, |_+_| terrà traccia dei nuovi messaggi da questa applicazione non appena arrivano.

--no-pager

È possibile cercare le voci di registro utilizzando il ID processo del processo che ha generato il messaggio di log. Usa il |_+_| comando per trovare il ID processo del demone o dell'applicazione che stai per cercare .

journalctl

Sulla macchina utilizzata per la ricerca di questo articolo, il SSH demone è il processo 751.

Puoi anche cercare per ID utente . Questo è l'ID utente della persona che ha avviato l'applicazione o il comando o che possiede il processo.

-n

Tutti i messaggi associati a qualsiasi altro ID utente vengono filtrati. Vengono visualizzati solo i messaggi relativi all'utente 1000:

Un altro modo per cercare i messaggi di registro relativi a un'applicazione specifica consiste nel fornire il percorso dell'eseguibile.

journalctl

Tutti i |_+_| i messaggi di registro dello scheduler vengono recuperati e visualizzati .

Annuncio pubblicitario

Per facilitare la ricerca, possiamo chiedere |_+_| per elencare tutti i valori che contiene, per qualsiasi campo del journal.

Per vedere gli ID utente che |_+_| ha registrato messaggi di registro per, utilizzare |_+_| (campi) e passare l'opzione |_+_| identificatore di campo.

-f

Ripetiamolo e guardiamo il ID di gruppo (GID):

geek-app

Puoi farlo con uno qualsiasi dei identificatori di campo giornale .

Elenco dei messaggi del kernel

C'è un modo integrato per isolare rapidamente i messaggi del kernel. Non è necessario cercarli e isolarli da soli. Il |_+_| L'opzione (kernel) rimuove tutti gli altri messaggi e offre una vista istantanea delle voci di registro del kernel.

journalctl

L'evidenziazione riflette l'importanza del messaggio, secondo i valori del |_+_| campo.

Revisione dei messaggi di avvio

Se hai un problema relativo all'avvio che desideri indagare, |_+_| ti ha coperto. Forse hai aggiunto nuovo hardware e non risponde, o un componente hardware precedentemente funzionante non funziona più dopo l'ultimo aggiornamento del sistema.

Per vedere le voci di registro relative al tuo ultimo avvio, usa |_+_| (avvio) opzione:

-o

Le voci di registro per l'ultimo avvio vengono mostrate per te.

Quando diciamo ultimo avvio, intendiamo il processo di avvio che ha dato vita al tuo computer per la tua sessione di accesso corrente. Per vedere gli stivali precedenti, puoi usare un numero per dire |_+_| quale avvio ti interessa. Per vedere il terzo avvio precedente, usa questo comando:

short

Generalmente, se hai avuto un problema e hai dovuto riavviare la tua macchina, è una sequenza di avvio precedente che ti interessa. Quindi questo è un modulo di comando comune.

È facile confondersi con la sequenza degli stivali. Per aiutare, possiamo chiedere |_+_| per elencare gli stivali che ha registrato nel suo diario, usando il |_+_| opzione.

short-full

È possibile identificare l'avvio per il quale si desidera visualizzare i messaggi dalla data e dall'ora, quindi utilizzare il numero nella colonna di sinistra per ottenere i messaggi di registro per quella sequenza di avvio. Puoi anche scegliere l'identificatore di avvio a 32 bit e passarlo a |_+_|.

verbose

Annuncio pubblicitario

I messaggi di registro dalla sequenza di avvio che abbiamo richiesto vengono recuperati e visualizzati.

Gestione dello spazio sul disco rigido del journal

Naturalmente, il diario e tutti i suoi messaggi di registro sono archiviati sul disco rigido. Ciò significa che occuperanno spazio sul disco rigido. Per vedere quanto spazio è stato occupato dal journal, usa il |_+_| opzione.

Priority

Con i dischi rigidi di oggi, 152 MB non sono affatto molto spazio, ma a scopo dimostrativo, lo ridurremo comunque. Ci sono due modi in cui possiamo farlo. Il primo consiste nell'impostare un limite di dimensione a cui si desidera ridurre il diario. Ricrescerà, ovviamente, ma possiamo potarlo ora pronto per quella nuova crescita.

Useremo il meraviglioso titolo |_+_| opzione e passare nella dimensione a cui vorremmo ridurre il diario. Ti chiederemo 100 MB. Il modo di pensare a questo è che stiamo chiedendo |_+_| buttare via tutto quello che puoi, ma non scendere sotto i 100 MB.

json

L'altro modo per ridurre la dimensione del journal è usare |_+_| opzione. Questa opzione dice |_+_| per eliminare i messaggi più vecchi del periodo fornito sulla riga di comando. Puoi usare |_+_|, |_+_|, |_+_| e |_+_| nel periodo di tempo.

Eliminiamo tutti i messaggi più vecchi di una settimana:

json-pretty

Dati vs. Informazioni

I dati non sono utili a meno che tu non possa accedervi e farne uso. Allora diventa un'informazione utile. Il |_+_| command è uno strumento flessibile e sofisticato che consente di accedere alle informazioni di interesse in svariati modi.

Puoi utilizzare praticamente qualsiasi frammento di informazioni che devi inserire nei messaggi di registro di cui hai bisogno.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti