Lavorazione di base con journald

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