Généralités système Linux

Systemd : Utiliser journalctl, les logs de systemd

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

logs_linux





Introduction





systemd possède son propre mécanisme de journalisation, syslog n'est plus requis par défaut.

Le paquet syslog-ng est toujours installable, mais pourquoi utiliser 2 mêmes outils sur un même système ?

Voici quelques commandes utiles pour se repérer ....





Visualiser les logs : Utiliser journalctl





Seul le root et le groupe systemd-journal peuvent visualiser le journal.



Pour voir les logs :



Code BASH :
journalctl




Code BASH :
mai 21 21:24:21 localhost.localdomain systemd[2396]: Startup finished in 1.216s.
mai 21 21:24:21 localhost.localdomain sshd[1695]: pam_tcb(sshd:session): Session opened fo
mai 21 21:24:24 localhost.localdomain su[2452]: pam_tcb(su:auth): Authentication passed fo
mai 21 21:24:24 localhost.localdomain su[2452]: (to root) adrien on pts/0
mai 21 21:24:24 localhost.localdomain su[2452]: pam_tcb(su:session): Session opened for ro




De manière "tail -f", continue sur la console jusqu'à ctrl+C :



Code BASH :
journalctl -f




Code BASH :
-- Logs begin at dim. 2015-03-29 22:59:55 CEST. --
mai 21 21:24:21 localhost.localdomain systemd[2396]: Starting Default.
mai 21 21:24:21 localhost.localdomain systemd[2396]: Reached target Default.
mai 21 21:24:21 localhost.localdomain systemd[2396]: Startup finished in 1.216s.
mai 21 21:24:21 localhost.localdomain sshd[1695]: pam_tcb(sshd:session): Session opened fo




Filtrer par service



Code BASH :
journalctl -u crond




Code BASH :
mai 21 21:23:43 localhost.localdomain crond[624]: (CRON) INFO (Syslog will be used instead
mai 21 21:23:43 localhost.localdomain crond[624]: (CRON) INFO (RANDOM_DELAY will be scaled
mai 21 21:23:44 localhost.localdomain crond[624]: (CRON) INFO (running with inotify suppor




Filtrer par PID :



Code BASH :
journalctl _PID=1




Code BASH :
mai 21 21:23:51 localhost.localdomain systemd[1]: lm_sensors.service failed.
mai 21 21:24:03 localhost.localdomain systemd[1]: plymouth-quit-wait.service start operati
mai 21 21:24:03 localhost.localdomain systemd[1]: Failed to start Wait for Plymouth Boot S
mai 21 21:24:03 localhost.localdomain systemd[1]: Unit plymouth-quit-wait.service entered 
mai 21 21:24:03 localhost.localdomain systemd[1]: plymouth-quit-wait.service failed.




Filtrer par programme :



Code BASH :
journalctl /usr/sbin/sshd




Code BASH :
mai 21 21:24:06 localhost.localdomain sshd[1268]: Server listening on 0.0.0.0 port 22.
mai 21 21:24:06 localhost.localdomain sshd[1268]: Server listening on :: port 22.
mai 21 21:24:19 localhost.localdomain sshd[1836]: pam_tcb(sshd:auth): Authentication passe
mai 21 21:24:19 localhost.localdomain sshd[1695]: Accepted keyboard-interactive/pam for ad
mai 21 21:24:21 localhost.localdomain sshd[1695]: pam_tcb(sshd:session): Session opened fo




Filtrer par niveau de log (ici que les erreurs) :



Code BASH :
journalctl -p err




Code BASH :
mai 21 21:24:06 localhost.localdomain rpcbind[1278]: Cannot open '/var/lib/rpcbind/rpcbind
mai 21 21:24:06 localhost.localdomain rpcbind[1278]: Cannot open '/var/lib/rpcbind/portmap
mai 21 21:24:14 localhost.localdomain kernel: xt_addrtype: ipv6 does not support BROADCAS




On peut évidemment combiner toutes ces options :



Code BASH :
journalctl -f /usr/sbin/urpmi -p info




Code BASH :
-- Logs begin at dim. 2015-03-29 22:59:55 CEST. --
mai 21 21:19:27 localhost.localdomain [RPM][9040]: erase lib64kwinglutils1-2:4.11.16-2.mga5.x86_64: success
mai 21 21:19:28 localhost.localdomain [RPM][9040]: erase lib64kephal4-2:4.11.16-2.mga5.x86_64: success
mai 21 21:19:29 localhost.localdomain [RPM][9040]: erase lib64plasma_applet_system_monitor4-2:4.11.16-2.mga5.x86_64: success
mai 21 21:19:29 localhost.localdomain [RPM][9040]: erase lib64kwineffects1-2:4.11.16-2.mga5.x86_64: success
mai 21 21:19:29 localhost.localdomain [RPM][9040]: erase lib64kwinglesutils1-2:4.11.16-2.mga5.x86_64: success
mai 21 21:19:29 localhost.localdomain [RPM][9040]: Transaction ID 555e2fb9 finished: 0
- - Reboot - -
mai 21 21:34:03 localhost.localdomain urpmi[8355]: called with: hnghggjh








A propos de la taille





On peut imiter la taille maximum du journal (par défaut à 10% de la taille du système de fichier). Pour la fixer à 500 Mo par exemple, on édite le fichier /etc/systemd/journald.conf :



Code BASH :
SystemMaxUse=500M




En fixant une limite par fichier, on a un équivalent de logrotate (par défaut, il garde 7 rotations) :



Code BASH :
SystemMaxUse=500M
SystemMaxFileSize=100M




On peut aussi faire en sorte que les journaux ne soient pas conservés sur le disque au redémarrage (machine non critique) :



Code BASH :
[Journal]
Storage=volatile