Journalctl
Apparence
Limiter la taille des journaux :
Dans /etc/systemd/journald.conf
:
SystemMaxUse=
: Définit la taille maximale que les journaux peuvent occuper sur le disque.- Par exemple, :
SystemMaxUse=1G
limite les journaux à 1 Go. SystemKeepFree=
: Réserve une certaine quantité d'espace libre sur le disque.- Par exemple,
SystemKeepFree=500M
garantit que 500 Mo restent libres. MaxRetentionSec=
: Définit la durée maximale pendant laquelle les journaux sont conservés.- Par exemple,
MaxRetentionSec=1week
conserve les journaux pendant une semaine.
sudo systemctl restart systemd-journald
espace OQP
sudo journalctl --disk-usage
Libérer de l'espace manuellement :
Supprimer les journaux plus anciens qu'une certaine date :
sudo journalctl --vacuum-time=1week
Limiter la taille des journaux à une certaine valeur :
sudo journalctl --vacuum-size=500M
Supprimer tous les journaux archivés :
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
Cela force la rotation des journaux et supprime immédiatement les anciens journaux archivés.
Commandes options
journalctl -f # en temps réel
journalctl -u nginx -n 5000 # Affiche les 5000 lignes de logs de nginx dans un pager en commencant par les plus anciennes
journalctl --disk-usage # Affiche l'espace couramment utilisé par les fichiers journaux du système
journalctl --vaccum-size 1G # Nettoie les fichiers journaux pour ne garder qu'un gigaoctet d'utilisé
journalctl -eu nginx # Affiche sous forme de pager les 1000 dernières de logs du service nginx
journalctl -fu nginx # Affiche les toutes dernières lignes de log en continu
journalctl -k -p warning # Affiche seulement les messages d'alerte du kernel. L'option `p` ne fonctionne que si l'application les écrivant est compatible journald car les loglevels ne viennent pas de nul part
journalctl -p 2 # Affiche les évenements critiques propres à toutes les applications gérant les loglevel
journalctl -u nginx --until yesterday # N'affiche pas les messages nginx d'aujourd'hui
journalctl -o json # Affiche le journal système global au format json, pratique pour découvrir toutes les champs (et leur contenu), et ainsi pouvoir scripter une analyse de logs efficace grâce à par exemple un script python
journalctl -r # pour inverser l'ordre
En temps réel :
sudo journalctl -f | grep "\[UFW BLOCK\]"
sudo journalctl -k -f | grep "\[UFW BLOCK\]" | grep 'DPT=80'
Plage de dates spécifique
# [-S DATE] : show logs Since DATE
# [-U DATE] : show logs Until DATE
journalctl -S "2024-08-07 19:00:00" -U "2024-08-07 20:00:00"
Recherche
# Afficher les journaux d'une priorité spécifique
journalctl -p err --since "1 week ago"
# Afficher les journaux qui incluent le mot spécifique [PATTERN] dans le champ [MESSAGE]
journalctl -g "apparmor"
journalctl -u cron.service
journalctl -u dpkg
journalctl -u systemd-tmpfiles-clean.timer
journalctl --since "1 week ago" -u apache2.service