Passa al contenuto principale

Lavorazione di base con journald

· 2 minuti di lettura
Customer Care Engineer

read-journald-logs-and-learn-how-to-clear-it

Journald è un sistema di logging utilizzato nei moderni sistemi operativi basati su Linux per registrare gli eventi di sistema. Raccoglie informazioni sul funzionamento di vari servizi, applicazioni e processi di sistema per aiutare gli amministratori a monitorare lo stato del sistema e diagnosticare gli errori.

A differenza dei log di testo standard, journald memorizza i dati in formato binario. Ciò consente di archiviare i log in modo più compatto e gestirli in modo più efficiente, ma allo stesso tempo non è possibile aprire semplicemente questi log in un editor di testo. Sono necessari strumenti speciali per visualizzarli e analizzarli.

In questo articolo, vedremo come visualizzare i record mantenuti da journald e come eliminarli per liberare spazio su disco.


Come visualizzare i log di journald

Per leggere i log, usa il comando journalctl:

  • Tutti i log:
sudo journalctl
  • Log dall'ultimo riavvio:
sudo journalctl -b
  • Log per un servizio specifico:
sudo journalctl -u nginx
  • Log per un giorno specifico:
sudo journalctl --since "2024-11-01" --until "2024-11-02"
  • Visualizza le ultime n voci (ad esempio, le ultime 100):
sudo journalctl -n 100
  • Filtra per livello di priorità (ad esempio, per errori):
sudo journalctl -p err
  • Visualizza le voci di journal in ordine inverso, a partire dalle più recenti (utile quando è necessario vedere rapidamente le ultime voci di log):
sudo journalctl -r
  • Visualizza le voci di journal in tempo reale (simile a tail -f):
sudo journalctl -f

È possibile combinare queste opzioni. Ad esempio, per visualizzare tutti gli errori dal servizio nginx il 10 novembre 2024, mostrando solo le ultime 10 voci:

sudo journalctl -u nginx --since "2024-11-10" --until "2024-11-10 23:59:59" -n 10

Come eliminare il Journal

Se i log occupano troppo spazio, puoi usare i seguenti comandi per eliminarli:

  • Elimina i vecchi log (ad esempio, più vecchi di 7 giorni):
sudo journalctl --vacuum-time=7d
  • Elimina i log che superano una dimensione specificata (ad esempio, 1 GB):
sudo journalctl --vacuum-size=1G
  • Elimina completamente tutti i log:
sudo journalctl --vacuum-files=0

Come ridurre la dimensione del Journal

Per impostazione predefinita, journald può occupare molto spazio su disco se i log non sono limitati. Per impostare una dimensione massima per i log, apri il file di configurazione journald.conf:

sudo nano /etc/systemd/journald.conf

In questo file, puoi configurare i seguenti parametri:

  • SystemMaxUse — la dimensione massima per tutti i journal:
SystemMaxUse=1G
  • RuntimeMaxUse — la dimensione massima per i journal temporanei:
RuntimeMaxUse=500M
  • MaxRetentionSec — il tempo massimo di conservazione dei log:
MaxRetentionSec=1month

Imposta valori adatti al tuo sistema e alle tue esigenze, quindi salva il file usando Ctrl + O ed esci dall'editor usando Ctrl + X.

Per applicare le modifiche, riavvia il servizio journald:

sudo systemctl restart systemd-journald

Puoi anche abilitare il logging in RAM o disabilitarlo del tutto. Nessuna delle due opzioni è consigliata in un ambiente di produzione, poiché il journal contiene importanti informazioni diagnostiche. La sua accuratezza e pertinenza sono cruciali per la corretta diagnostica dei processi sul tuo server.

Se desideri comunque attivare la memorizzazione del journal in RAM, imposta il seguente valore in /etc/systemd/journald.conf:

Storage=volatile

Per disabilitare completamente il logging, specifica:

Storage=none