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.

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





Visualiser





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
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-reboot">Reboot</h2>
 
 
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