cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-04-15

Guide d’introduction au journal systùme

Basé sur la publication de xenopeek et la commande man.


ඏ

Linux Mint utilise le service de journalisation systĂšme de systemd appelĂ© le journal. Les versions prĂ©cĂ©dentes de Linux Mint utilisaient rsyslog. Le journal offre davantage de fonctionnalitĂ©s, mais vous pouvez continuer Ă  utiliser l’ancienne solution, en effet, le journal est configurĂ© par dĂ©faut pour Ă©galement Ă©crire le message de journal dans l’ancien fichier /var/log/syslog afin que vous puissiez continuer Ă  l’utiliser.

Depuis l’interface graphique Linux Mint Cinnamon, vous trouverez le programme Journaux (Log) dans votre menu, qui affiche les messages de journalisation du fichier /var/log/syslog.

S’il n’est pas disponible, installez le paquet gnome-logs.

sudo apt install gnome-logs

gnome-logs vous montrera les messages importants du dĂ©marrage actuel par dĂ©faut. C’est un programme pratique Ă  installer qui vous permet de voir rapidement si des messages d’erreur sont signalĂ©s dans vos journaux. Pour la plupart des utilisateurs ce programme est suffisant.

Pour accĂ©der au journal vous devez utiliser la commande journalctl, qui propose davantage de moyens pour filtrer les messages. C’est ce sur quoi ce tutoriel se concentrera.

Par dĂ©faut, il utilise less pour afficher page par page, mais comme avec le fichier /var/log/syslog, vous pouvez diriger la sortie de journalctl vers d’autres programmes. Par exemple, grep. Mais le journal contient de nombreuses informations contextuelles que vous pouvez utiliser avec journalctl pour filtrer les messages du journal. Vous trouverez quelques exemples pratiques ci-dessous, mais vous trouverez plus d’informations dans la page de manuel journalctl.

man journalctl

ඏ

Filtrer par démarrage ou par heure

systemd garde une trace de chaque démarrage et le journal peut filtrer sur cela. Dans sa forme la plus simple, pour afficher uniquement les messages du journal à partir du démarrage actuel, vous pouvez utiliser :

journalctl -b

Plus probablement, vous ĂȘtes intĂ©ressĂ© par les messages du journal du dĂ©marrage prĂ©cĂ©dent aprĂšs que vous aurez eu un problĂšme qui vous a amenĂ© Ă  redĂ©marrer. Vous y accĂ©dez avec :

journalctl -b -1

Vous pouvez donner un nombre plus nĂ©gatif pour revenir aux dĂ©marrages prĂ©cĂ©dents (par exemple, journalctl -b -2 pour revenir Ă  l’avant-dernier redĂ©marrage. Vous pouvez Ă©galement voir l’heure de dĂ©but de chaque dĂ©marrage :

journalctl --list-boots

Par exemple :

-18 34964a12cbf84791a4aab5d76c9f5757 Tue 2019-03-19 10:59:23 CET—Tue 2019-03-19 11:03:31 CET
-17 2475bba6a4074da3a7347aded7384381 Tue 2019-03-19 11:05:24 CET—Tue 2019-03-19 11:13:20 CET
-16 eebad2c091ec48f2a6e479f80efc1c26 Tue 2019-03-19 11:17:55 CET—Tue 2019-03-19 11:20:57 CET
-15 081757ca57ea4c74a6de29e92957d9c0 Tue 2019-03-19 11:21:08 CET—Tue 2019-03-19 11:21:50 CET
-14 361a03f59024438fac45ffb16442de37 Tue 2019-03-19 11:22:55 CET—Tue 2019-03-19 11:24:55 CET
-13 5ab210fe71d94786b137a4fbf7492247 Wed 2019-03-27 13:48:46 CET—Wed 2019-03-27 15:25:38 CET
-12 fd93ed3ad15c40b9926add10ed7e516d Thu 2019-03-28 08:08:33 CET—Thu 2019-03-28 10:27:57 CET
-11 0aad17829454415ab61f2922b6602f93 Fri 2019-03-29 13:57:02 CET—Fri 2019-03-29 19:08:30 CET
-10 c55f54d0bd6d49f19126c71c0ff87ea5 Sun 2019-03-31 19:10:30 CEST—Sun 2019-03-31 19:39:42 CEST
 -9 b54265b11ef948c3bec0a1e4583fb304 Sun 2019-03-31 19:40:03 CEST—Sun 2019-03-31 20:19:04 CEST
 -8 081ead68944044e6a4f8d786242b00b6 Tue 2019-04-02 15:03:21 CEST—Tue 2019-04-02 16:06:47 CEST
 -7 ed76be07e9924d9a897e585865e546a6 Tue 2019-04-02 16:07:08 CEST—Tue 2019-04-02 16:32:27 CEST
 -6 864256398ed9445b998d68362f577c12 Tue 2019-04-02 16:32:49 CEST—Tue 2019-04-02 23:56:28 CEST
 -5 ab8ee269f76248f5a63a2afb60ec6a88 Wed 2019-04-03 00:12:53 CEST—Wed 2019-04-03 00:22:47 CEST
 -4 9fe7d8c878334c709e0e3bd4bc7a2f59 Wed 2019-04-03 18:00:18 CEST—Wed 2019-04-03 19:47:39 CEST
 -3 6b143aa82a1346d58f83189af3c66679 Thu 2019-04-04 17:04:58 CEST—Thu 2019-04-04 18:20:23 CEST
 -2 926d22471c1f41c6b9ec21c02cf64134 Thu 2019-04-04 18:20:42 CEST—Thu 2019-04-04 18:25:45 CEST
 -1 68942497d336414c892733235dae07cb Thu 2019-04-04 20:42:55 CEST—Thu 2019-04-04 22:43:02 CEST
  0 1b2f4a791a9743049646cef8fb99e130 Fri 2019-04-05 18:57:01 CEST—Fri 2019-04-05 19:16:58 CEST

Dans la premiĂšre colonne, cela vous indique le nombre nĂ©gatif que vous pouvez utiliser avec l’option -b. Avec l’option -b vous pouvez Ă©galement utiliser l’ID de 32 caractĂšres (de la seconde colonne) qui permet d’identifier de maniĂšre unique un dĂ©marrage spĂ©cifique.

Mais vous avez peut-ĂȘtre redĂ©marrĂ© plusieurs fois pour essayer de rĂ©soudre un problĂšme et vous souhaitez voir les messages de journalisation de tous ces dĂ©marrages. Vous pouvez passer l’option -b plusieurs fois pour sĂ©lectionner plusieurs dĂ©marrages.

Vous pouvez Ă©galement filtrer par heure.

Pour filtrer Ă  partir d’une heure spĂ©cifique :

journalctl --since=timestamp # Version abrégée : journalctl -S timestamp

Pour filtrer jusqu’à une heure spĂ©cifique :

journalctl --until=timestamp # Version abrégée : journalctl -U timestamp

Pour l’horodatage, vous devez utiliser un horodatage ISO du type AAAA-MM-JJ hh24:mm:ss

  • Si vous ne spĂ©cifiez pas la date : le jour actuel est utilisĂ©,
  • Si vous ne spĂ©cifiez pas l’heure : 00:00:00 est supposĂ©,
  • Si vous ne spĂ©cifiez pas les secondes : 00 est supposĂ©.

Vous pouvez également utiliser les mots-clés today, yesterday, tomorrow et now.

Le support des mots-clés et leurs combinaisons permet de faire des reccherches du type :

journalctl -S -5weeks+2days -U -2days

Pour vous montrer tous les messages de journalisation depuis 5 semaines et 2 jours jusqu’à il y a 2 jours. Voir la page de manuel systemd.time pour une description complĂšte des mots-clĂ©s que vous pouvez utiliser dans l’horodatage.

man systemd.time

ඏ

Filtrer par priorité

Chaque message de journal est enregistré avec une priorité :

  • emerg (0),
  • alert (1),
  • crit (2),
  • err (3),
  • warning (4),
  • notice (5),
  • info (6),
  • debug (7).

Vous pouvez filtrer les messages de journal par priorité :

# journalctl -p priority
#
journalctl -p 0
#
# ou
#
journalctl -p emerg

Vous pouvez indiquer une plage avec journalctl :

# journalctl -p priority..priority
#
journalctl -p 0..3
#
# ou
#
journalctl -p emerg..err

En passant, remarquez que les couleurs de certain messages. journalctl met en rouge les messages de niveau err et met en surbrillance les messages d’avertissement et de notification. Les messages d’information prioritaire ou de dĂ©bogage ne sont pas colorĂ©s ni en surbrillance.


ඏ

Filtrer par service, par champs et par programmes

Si vous rencontrez des problĂšmes avec un service spĂ©cifique, seuls les messages de ce service vont vous intĂ©resser. Avec systemd init*, les services ont chacun un fichier unitĂ©, mais cela dĂ©passe le cadre de ce tutoriel. Quoi qu’il en soit, vous pouvez filtrer par unitĂ© de service avec la commande :

# journalctl -u name
# ou
# journalctl UNIT=name.service
#
journalctl -u systemd-logind
#
# ou
#
journalctl -u systemd-logind.service
#
# ou
#
journalctl UNIT=systemd-logind.service

Avec la premiĂšre forme, l’extension .service est prĂ©supposĂ©e si vous ne le spĂ©cifiez pas. Par exemple, pour voir tous les messages du service cups (imprimante), utilisez :

journalctl -u cups
#
# ou
#
journalctl -u cups.service
#
# ou
#
journalctl UNIT=cups.service

Vous pourrez peut-ĂȘtre deviner le nom de l’unitĂ© Ă  utiliser, mais une autre mĂ©thode consiste Ă  utiliser les paramĂštres suivant pour afficher tous les champs d’informations du journal :

journalctl -o verbose # Attention sans autre paramÚtre le résultat de cette commande est,trÚs long (et pas trÚs utile)

De maniÚre annexe, pour obtenir la liste des services, vous pouvez utiliser :

systemctl list-units -t service

Recherchez le message de journal qui vous intéresse, notez la valeur du champ UNIT, puis utilisez-le pour filtrer les messages uniquement à partir de ce service.

Vous pouvez Ă©galement donner le chemin d’un exĂ©cutable en tant qu’argument Ă  journalctl et celui-ci affichera toutes les entrĂ©es impliquant l’exĂ©cutable en question (vous pouvez Ă©galement les trouver sous la forme du champ _EXE dans la sortie dĂ©taillĂ©e).

journalctl _EXE=/usr/sbin/NetworkManager

ඏ

Quelques autres options

Vous pouvez utiliser dmesg pour afficher les messages du noyau. Bien que la commande dmesg dispose de plusieurs moyens pour filtrer les messages, elle ne connaßt que les messages du démarrage actuel.

Pour suivre en temps réel les messages du noyau, utiliser :

dmesg -wH

Pour afficher les mĂȘmes messages du noyau, vous pouvez utiliser :

journalctl -k

Le journal contient également les messages du noyau des démarrages précédents. Vous pouvez donc utiliser les options mentionnées ci-dessus pour filtrer par démarrage ou par heure afin de voir les messages du noyau antérieurs au démarrage actuel. Il va également colorier et mettre en évidence les messages du noyau en fonction de la priorité.

Si vous souhaitez examiner certains problĂšmes au fur et Ă  mesure, vous trouverez peut-ĂȘtre utile :

journalctl -f

Cela affichera les 10 derniers messages, attendra les nouveaux messages et les imprimera au fur et à mesure de leur arrivée.


ඏ

Références

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog