Conservation des logs système
Par défaut les logs système sont stockés dams /run/log et sont supprimés après un redémarrage mais il est possible d’y remédier en configurant le service systemd-journald via le fichier /etc/systemd/journald.conf.
Fichier /etc/systemd/journald.conf
Le paramètre Storage du fichier /etc/systemd/journald.conf définit si les logs système doivent être volatils ou persistants :
persistent: stocke les logs dans le répertoire persistant/var/log/journalvolatile: stocke les logs dans le répertoire volatil/run/log/journalauto:- si
/var/log/journalexiste = stockage persistant - si
/var/log/journalexiste pas = stockage volatil (action par défaut)
- si
none: n’utilise aucun stockage, les logs sont upprimés mais possibilité de les transférer
Fichier /etc/systemd/journald.conf :
# cat /etc/systemd/journald.conf |
# This file is part of systemd. |
Même avec des logs persistants, les données ne sont pas éternellement conservées, cela est dû au logrotate : les logs ne dépassent pas les 10 % de taille système ou moins de 15 % de libre.
Ces paramètres peuvent être modifiés (etrait du MAN journald.conf) :
- Espace disque que
systemd-journaldpeut utiliser au maximum :SystemMaxUseRuntimeMaxUse
- Espace disque que
systemd-journalddoit laisser libre, la plus petite des deux valeurs est prioritaire :SystemKeepFreeRuntimeKeepFree
Fichier /etc/systemd/journald.conf complet :
# cat /etc/systemd/journald.conf |
[Journal] |
Pour voir les limites actuelles de taille des logs :
# journalctl | grep -E 'Runtime log|System log' |
Configurer des logs persistants
Pour que les logs soient persistants en cas de rédémarrage système, il faut suivre cette procédure :
Créer un répertoire /var/log/journal :
# mkdir /var/log/journal |
Modifier le paramètre Storage sur la valeur persistent dans /etc/systemd/journald.conf
# This file is part of systemd. |
Redémarrer le service systemd-journald :
# systemctl restart systemd-journald |
Pour vérifier :
# ls /var/log/journal/45ab8515fgfafacb64h59874bc654654 |
Afficher et filtrer les logs de redémarrage
Afficher les logs à partir du 1er démarrage du système :
# journalctl -b 1 |
Afficher les logs à partir du 2ème démarrage du système :
# journalctl -b 2 |
Afficher tous les logs liées à un démarrage du système :
# journalctl --list-boots |
Afficher les logs à partir du démarrage actuel du système :
# journalctl -b |
Afficher les logs à partir du démarrage précédent du système :
# journalctl -b -1 |
/!\ Résumé des commandes
Commandes :
# journalctl // Affiche les logs perdus |
Configurer des logs persistants :
# mkdir /var/log/journal |
# vim /etc/systemd/journald.conf |
# systemctl restart systemd-journald |
# ls /var/log/journal/ |
Fichiers :
/run/log // répertoire de logs volatil |
Cas pratique
Pour conserver les journaux après un redémarrage, création du répertoire /var/log/journal :
[aline@SERVER01 ~]$ sudo mkdir /var/log/journal |
Configurer le fichier /etc/systemd/journald.conf et modifier le paramètre Storage sur persistent :
[...] |
Redémarrage de systemd-journald pour appliquer la configuration :
[aline@SERVER01 ~]$ sudo systemctl restart systemd-journald.service |
Après un Redémarrez, les logs sont maintenant conservés :
[aline@SERVER01 ~]$ sudo systemctl reboot |
[aline@SERVER01 ~]$ sudo ls -l /var/log/journal/ |
Documentation
MAN systemd-journald.conf(5)
MAN systemd-journald(8)
https://www.freedesktop.org/software/systemd/man/latest/journald.conf.html