Systemd: rendre persistant journalctl
La commande journalctl
de systemd permet d'afficher les logs complet du dernier boot. Cependant, en cas de crash/freeze du serveur, il peut être intéressant d'avoir accès aux logs (en particulier ceux du kernel) juste avant et lors du plantage. Pour cela, il faut rendre journalctl persistant.
Éditez /etc/systemd/journald.conf
et modifiez la ligne Storage
comme suit :
[Journal] Storage=persistent
Puis :
mkdir /var/log/journal systemd-tmpfiles --create --prefix /var/log/journal systemctl restart systemd-journald
Note : si l'option Storage=auto
est passée dans /etc/systemd/journald.conf
le journal sera écrit :
- dans
/var/log/journal/
si le dossier existe et est accessible en écriture - dans
/run/log/journal/
(tmpfs) sinon
Pour afficher les logs du boot précédent :
journalctl --boot=-1
0 correspondant au boot actuel, -1 au boot précédent
Vous pouvez aussi afficher les logs d'un boot spécifique, dont vous pouvez récupérer l'id avec la commande suivante :
journalctl --list-boots
Vous pouvez réduire la période de temps affiché avec les commandes --since
et --until
:
journalctl --since "2019-01-10" --until "2019-01-15 03:00" journalctl --since yesterday journalctl --since "1 hour ago"
Pour afficher uniquement les logs kernel :
journalctl -k
Pour voir les logs les plus récents (10 par défaut) :
journalctl -n journalctl -n 50
Pour suivre les logs en temps réel :
journalctl -f
Réduire la taille du journal :
journalctl --vacuum-time=14d journalctl --vacuum-size=100M