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
):
1 2 3 |
journalctl |
Log in tempo reale
Per seguire i nuovi log in tempo reale (simile a tail -f
):
1 2 3 |
journalctl -f |
Filtrare per unità di systemd
Visualizza i log di un servizio specifico (es. nginx
):
1 2 3 |
journalctl -u nginx.service |
Mostrare log da oggi
Per vedere solo i log del giorno corrente:
1 2 3 |
journalctl --since today |
Filtrare per priorità
Visualizza solo messaggi di errore (--priority
accetta valori da 0
(emergenza) a 7
(debug)):
1 2 3 |
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:
1 2 3 |
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
):
1 2 3 |
journalctl _UID=1000 |
Log del kernel
Mostra solo i messaggi del kernel:
1 2 3 |
journalctl -k |
Log del boot corrente
Visualizza i log relativi all’ultimo avvio:
1 2 3 |
journalctl -b |
Per un boot specifico, usa journalctl --list-boots
e poi:
1 2 3 |
journalctl -b -1 # Boot precedente |
4. Formattazione e Esportazione
Output in formato JSON
Per analisi programmatiche:
1 2 3 |
journalctl -u nginx --output json |
Mostrare solo i messaggi più recenti
Visualizza gli ultimi 20 log:
1 2 3 |
journalctl -n 20 |
Esportare in un file
Salva i log in un file di testo:
1 2 3 |
journalctl -u sshd --since "1 hour ago" > ssh_logs.txt |
5. Manutenzione del Journal
Dimensioni del Journal
Controlla lo spazio occupato:
1 2 3 |
journalctl --disk-usage |
Pulizia dei log vecchi
Elimina log più vecchi di un certo periodo (es. 2 settimane):
1 2 3 |
sudo journalctl --vacuum-time=2weeks |
Oppure limita lo spazio massimo:
1 2 3 |
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:
1 2 3 |
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:
1 2 3 |
man journalctl |
Hai domande o suggerimenti? Lascia un commento! 🚀