• Écouter ce que votre système vous dit avec journalctl

    Certains d'entre vous l'auront remarqué, sans doute avec surprise, il n'y a plus de /var/log/messages sous la 13.2. En effet, openSUSE a laissé de côté les syslogs classique en passant complètement au journal de systemd (journald). Celui-ci peut se manipuler avec, entre autres, l'outil en ligne de commande journalctl, qui est livré avec systemd. Voici donc quelques exemples pour commencer à l'utiliser.

    C'est quoi un journal ?

    C'est un fichier où est enregistré l'activité d'une application voire de tout le système.

    Traditionnellement, les différents journaux sont enregistrés dans /var/log. On peut citer /var/log/Xorg.0.log pour le journal du serveur graphique X, /var/log/zypp/history pour l'historique des installations de paquets, …

    Auparavant, le journal principal du système était enregistré dans le fichier /var/log/messages mais celui de systemd est à présent dans le dossier /var/log/journal.

    Pourquoi est-on passé à journald ?

    Essentiellement parce que c'est l'outil intégré à systemd et que systemd, « c'est le progrès qu'ils disent. » Le fichier journal n'est plus un simple fichier texte mais un fichier binaire, illisible sans un outil comme journalctl.

    Notez qu'il est toujours possible de revenir à un système plus traditionnel (et retrouver /var/log/messages) en installant le paquet syslog-ng ou rsyslog, tous deux disponibles dans les dépôts officiels.

    Dans la suite, je vais vous présenter des exemples d'utilisation de journalctl, un outil en ligne de commande permettant de contrôler le journal de systemd. Mais il existe des alternatives graphiques pour l'affichage de tels journaux, par exemple gnome-logs (pour le bureau GNOME) et ksystemlog (pour le bureau KDE). Cependant, ce dernier ainsi que le module intégré par défaut à YaST ne fonctionnent pas directement avec journald ; vous devrez installer un syslog traditionnel pour pouvoir les utiliser confortablement.


    Pour YaST, un nouveau module tout propre est en préparation, que vous pouvez d'ores et déjà tester : yast2-journal, installable depuis software.opensuse.org.

    Lire les entrées du journal

    journalctl peut s'utiliser en tant que simple utilisateur. Cependant, ce faisant vous n'aurez vraisemblablement pas accès au journal complet du système mais seulement aux messages que vous êtes autorisé à lire (par exemple ceux concernant PulseAudio). Il est donc préférable d'utiliser journalctl en tant que super-utilisateur.

    Afficher le journal complet

    Code:
    journalctl
    C'est long et ça s'ouvre dans un pager, less a priori. Pour chercher un mot, taper /lemot + entrée ; pour aller à l'occurrence suivante (respectivement précédente), taper n (N). Comme pour les pages man.

    Afficher le journal d'un seul boot

    Code:
    journalctl -b # ou "-b 0", log du boot actuel
    journalctl -b -1 # log du boot précédent
    journalctl -b -2 # log du boot précédant le précédent :-)
    # etc.
    journalctl -b 1 # log du premier boot (enregistré)
    journalctl -b 2 # log du 2e boot (enregistré)
    # etc.
    journalctl --list-boots # liste les différents boots effectués
    journalctl -b 025b0666caa448db96d46aaa986293ef # affiche le journal du boot dont l'id est…

    Afficher les messages d'une seule application/service

    Code:
    journalctl _COMM=pulseaudio # ou journalctl /usr/bin/pulseaudio : affiche tous les messages journalisés de la commande pulseaudio
    journalctl _SYSTEMD_UNIT=wicked # ou journalctl --unit wicked ; affiche tous les messages en rapport avec l'unité systemd wicked.service
    De manière générale, la syntaxe pour filtrer est journalctl _CHAMP=VALEUR. Voir man systemd.journal-fields pour tous les champs disponibles.

    Voir les nouveaux messages en temps réel

    Affiche les dernières lignes du journal et laisse le fichier ouvert pour afficher les nouveaux messages. Équivalent au bon vieux tail -f /var/log/messages :
    Code:
    journalctl -f # ou --follow

    Exemples plus spécifiques

    Voir l'espace consommé par les journaux

    Code:
    journalctl --disk-usage
    Les fichiers journaux peuvent prendre beaucoup d'espace, notamment à cause de leurs métadonnées. Ce phénomène peut être la source de lenteurs*. À surveiller de temps à autres donc, voir à ajuster avec la variable SystemMaxUse du fichier de configuration de journald (voir plus loin « Configurer le journal »).

    Ouvrir un fichier journal donné

    Peut être utile si vous voulez ouvrir le journal d'une autre machine qui a planté par exemple.
    Code:
    journalctl --file /chemin/vers/le/fichier/binaire

    Exporter un journal

    Code:
    journalctl > journal.txt
    Tout simplement

    À noter que journalctl offre la possibilité d'exporter dans des formats spécifiques, par exemple en json :
    Code:
    journalctl -o json # en json, voir également json-pretty et json-sse
    journalctl -o export # dans un format d'export maison

    Configurer le journal

    Tout se passe dans /etc/journald.conf. Les options parlent d'elles-mêmes et les valeurs par défaut devraient être OK. Jetez un œil au manuel de journald.conf (man journald.conf) pour plus de détails.


    Have a lot of fun!


    * De manière générale, journalctl est plutôt lent sur les disques classiques (il est plutôt optimisé pour les ssd).

    Sources :

    • Manuel de journalctl : man journalctl
    • Fichier lisez-moi de l'équipe d'openSUSE à propos des changements apportés avec la 13.2 : cat /var/log/README
    • D'autres exemples par Lennart Poettering, un des créateurs de journald (et de systemd et de PulseAudio et d'Avahi) : http://0pointer.de/blog/projects/journalctl.html
    Commentaires 1 Commentaire
    1. Avatar de Syvolc
      Syvolc -
      Merci pour ce guide. On en a bien besoin !
      Faudrait même que je pense à imprimer ton article comme ça en cas de plantage je pourrais retrouver les commandes, parce que pour l'instant je n'y ai jamais vraiment touché.
  • Dons / Adhésion


    Dons
    Si vous aimez notre site web et que vous voulez participer financièrement, vous pouvez nous faire un don grâce à PayPal.


    Choisissez votre somme, et cliquez sur le bouton "donate" ci-dessous.



    Adhésion
    Si vous désirez être membre de notre association, vous pouvez aussi adhérer grâce à PayPal.


    Cliquez sur le bouton "PayPal" ci-dessous.

  • SUSECon 2017

     
    SUSEcon 2017
     
     
  • Derniers commentaires d'articles

    pierrotbj

    Boutique Alionet sur EnVenteLibre

    Troll toi même :D
    KDE fonctionne pas mal et, gros avantage, il est moins dépaysant que Gnome pour... Voir le dernier message

    pierrotbj le 21/09/2018 17h15
    jtro

    Boutique Alionet sur EnVenteLibre

    [TROLL]bah oui,vaut mieux vendre quelque chose qui fonctionne bien![/FIN DE TROLL] Voir le dernier message

    jtro le 20/09/2018 08h41
    Grenouille

    Boutique Alionet sur EnVenteLibre

    Un live Gnome et pas de live KDE? Tssss... Voir le dernier message

    Grenouille le 19/09/2018 21h05