Visualizzare e Gestire i Log di Systemd in Linux

Uno degli strumenti più potenti per analizzare i log in sistemi Linux basati su systemd è journalctl
. Questo comando permette di accedere al journal, il sistema di logging integrato di systemd, che raccoglie informazioni su processi, servizi e eventi del sistema.
In questo articolo, esploreremo come utilizzare journalctl
per visualizzare, filtrare e gestire i log in modo efficiente.
1. Introduzione a Journalctl
journalctl
è il comando principale per interagire con i log gestiti da systemd-journald. A differenza dei tradizionali file di log (come /var/log/syslog
o /var/log/messages
), il journal offre:
- Struttura centralizzata: Tutti i log sono raccolti in un unico luogo.
- Metadati avanzati: Ogni entry include informazioni come unità di systemd, PID, timestamp e priorità.
- Ricerca efficiente: Filtraggio flessibile basato su criteri multipli.

2. Comandi Base di Journalctl
Visualizzare tutti i log
Per vedere l’intero journal (in modalità paginata con less
):
journalctl
Log in tempo reale
Per seguire i nuovi log in tempo reale (simile a tail -f
):
journalctl -f
Filtrare per unità di systemd
Visualizza i log di un servizio specifico (es. nginx
):
journalctl -u nginx.service
Mostrare log da oggi
Per vedere solo i log del giorno corrente:
journalctl --since today
Filtrare per priorità
Visualizza solo messaggi di errore (--priority
accetta valori da 0
(emergenza) a 7
(debug)):
journalctl -p err -b
(-b
limita i log al boot corrente).
3. Filtri Avanzati
Log tra due date
Mostra i log tra due timestamp specifici:
journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 23:59:59"
Log di un utente specifico
Filtra per UID (es. utente con UID 1000
):
journalctl _UID=1000
Log del kernel
Mostra solo i messaggi del kernel:
journalctl -k
Log del boot corrente
Visualizza i log relativi all’ultimo avvio:
journalctl -b
Per un boot specifico, usa journalctl --list-boots
e poi:
journalctl -b -1 # Boot precedente
4. Formattazione e Esportazione
Output in formato JSON
Per analisi programmatiche:
journalctl -u nginx --output json
Mostrare solo i messaggi più recenti
Visualizza gli ultimi 20 log:
journalctl -n 20
Esportare in un file
Salva i log in un file di testo:
journalctl -u sshd --since "1 hour ago" > ssh_logs.txt
5. Manutenzione del Journal
Dimensioni del Journal
Controlla lo spazio occupato:
journalctl --disk-usage
Pulizia dei log vecchi
Elimina log più vecchi di un certo periodo (es. 2 settimane):
sudo journalctl --vacuum-time=2weeks
Oppure limita lo spazio massimo:
sudo journalctl --vacuum-size=500M
Disabilitare il journal (sconsigliato)
Se necessario, il journal può essere disattivato modificando /etc/systemd/journald.conf
e riavviando il servizio:
sudo systemctl restart systemd-journald
6. Conclusioni
journalctl
è uno strumento essenziale per diagnosticare problemi, monitorare servizi e analizzare eventi di sistema in Linux. Grazie alla sua flessibilità e potenza, sostituisce efficacemente i tradizionali tool di log come tail
, grep
e cat
per i sistemi basati su systemd.
Per ulteriori dettagli, consulta il manuale con:
man journalctl
Hai domande o suggerimenti? Lascia un commento! 🚀