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
኿