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.
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 -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
Lister les fichiers d'unités de service gérés par systemd
Cette commande affiche une liste complète de tous les fichiers d'unités de service connus par systemd, y compris ceux qui sont désactivés ou masqués. Cela peut être utile pour obtenir une vue d'ensemble de tous les services disponibles sur le système, indépendamment de leur état d'activation actuel.
systemctl list-unit-files --type service -all
Cette commande affiche une liste de tous les services actuellement actifs sur le système. Cela vous permet de voir quels services sont en cours d'exécution et fonctionnent correctement à un moment donné.
systemctl list-units --type=service --state=active