Nota: questo è un obiettivo d’esame RHCSA 7.
Presentazione
La maggior parte dei file di log di sistema si trovano nella directory /var/log a causa della configurazione predefinita di SYSLOG (vedere il file /etc/rsyslog.conf).
Inoltre, tutti gli eventi SELinux sono scritti nel file /var/log/audit/audit.log.
Con Systemd sono stati creati nuovi comandi per analizzare i log all’avvio e successivamente.
Processo di avvio
L’attività principale di Systemd consiste nel gestire il processo di avvio e fornire informazioni a riguardo.
Per ottenere la durata del processo di avvio, digitare:
# systemd-analyze
Startup finished in 422ms (kernel) + 2.722s (initrd) + 9.674s (userspace)
Per ottenere il tempo impiegato da ciascuna attività durante il processo di avvio, digitare:
# systemd-analyze blame
7.029s network.service
2.241s plymouth-start.service
1.293s kdump.service
1.156s plymouth-quit-wait.service
1.048s firewalld.service
632ms postfix.service
621ms tuned.service
460ms iprupdate.service
446ms iprinit.service
344ms accounts-daemon.service
...
7ms systemd-update-utmp-runlevel.service
5ms systemd-random-seed.service
5ms sys-kernel-config.mount
Analisi del Journal
Inoltre, Systemd gestisce il registro degli eventi di sistema, un demone syslog non è più obbligatorio.
Le ragioni alla base della creazione di Journald sono spiegate in questa Introduzione a Journald.
Per ottenere il contenuto del diario Systemd, digitare:
# journalctl
Per ottenere tutti gli eventi relativi al processo di crond nel diario, digitare:
# journalctl /sbin/crond
Nota: puoi sostituire /sbin/crond con `which crond`.
In alternativa, per ottenere tutti gli eventi relativi al processo di crond, è anche possibile digitare:
# journalctl -u crond
Per ottenere tutti gli eventi dall’ultimo avvio, digitare:
# journalctl -b
Per ottenere tutti gli eventi che sono apparsi oggi nel journal, digitare:
# journalctl --since=today
Per ottenere tutti gli eventi con una priorità syslog di err, digitare:
# journalctl -p err
Per ottenere gli ultimi 10 eventi e attendere uno nuovo (come tail -f /var/log/messages), digitare:
# journalctl -f
Storage permanente
Per impostazione predefinita, i registri di Journald sono memorizzati nella directory /run/log/journal e scompaiono dopo un riavvio.
Per memorizzare i registri di Journald in modo più permanente, digitare:
# mkdir /var/log/journal
# echo "SystemMaxUse=50M" >> /etc/systemd/journald.conf
# systemctl restart systemd-journald
Nota: l’impostazione della variabile SystemMaxUse è necessaria perché altrimenti il 10% del file system in cui è memorizzata la directory /var/log/journal può essere utilizzato al massimo dal journal.
Risorse addizionali
Esiste un tutorial dedicato a Systemd che presenta informazioni aggiuntive sul diario Systemd.
Il sito Web rsyslog.com fornisce alcune informazioni interessanti su rsyslogd (funzionalità, moduli, plug-in, ecc.).
Fedora Magazine ha anche pubblicato un interessante articolo, Systemd: Using the journal.