Site icon

JOURNALCTL

journalctl

Journalctl et les log linux?

Journalctl est le système de journalisation de Systemd (tu sais bien, systemd, le gestionnaire qui gère les services).

En cas de dysfonctionnement d’un service, journalctl nous permet d’obtenir des informations sur ce qui s’est passé. On peut traquer les problèmes les problèmes et découvrir l’origine du problème.

Avant, les systèmes linux utilisaient syslog qui écrivait ces logs dans les fichiers /var/log/secure, /var/log/messages, /var/log/mailog … .

Depuis quelques années, c’est journalctl qui référence les logs par défaut. Ce dernier est très pratique car il possède un système de filtrage très intéressant pour la recherche d’anomalie.

Avec on peut filtrer les logs par service, date, par erreur, etc… et on peut en plus cumuler ces filtres pour obtenir des

Utilisation

La commande de base :

journalctl

Si on souhaite n’afficher que les logs depuis le dernier démarrage du système :

journalctl -b

Afficher les logs liés à un service (ici je prend l’exemple de xinetd)

journalctl -u xinetd

On peut traquer les erreurs avec :

journalctl -p err

Avec le paramètre –since on peut sélectionner une date à partir de laquelle afficher les logs :

journalctl --since "2020-12-23 21:00:00" 

Le paramètre–until permet l’inverse, afficher les logs jusqu’à une certaine date :

journalctl --until "2020-12-25"

On peut aussi combiner –since et –until pour obtenir les logs durant une intervalle (ici entre 12:10 et 13:30 de la journée actuelle):

journalctl --since "12:10" --until "13:30"

Avec –since ou –until on peut également filtrer avec les termes today, yesterday :

journalctl --since today

Tu peux n’afficher que les logs liés au kernel (identique à dmesg):

journalctl -k

Modifier la configuration

Le fichier de configuration se trouve dans /etc/systemd/journald.conf. Par défaut il est configuré de cette façon :

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes

Avec SystemMaxUse on peut fixer la taille max du fichier de logs (ici 1Go) :

SystemMaxUse=1G

On peut aussi faire en sorte que les logs ne soient pas conservé à l’extinction du système avec :

Storage=volatile

Enfin si on souhaite tout de même avoir les fichiers de log linux /var/log/message et autres, on peut installer rsyslog et ajouter le paramètre ForwardToSyslog=yes  dans /etc/systemd/journald.conf.

Si linux t’intéresse n’hésite pas à jeter un œil à nos autres articles ICI.

Quitter la version mobile