Comment afficher et analyser les journaux sur Linux avec journalctl
Les messages de journal sont importants pour l'audit et le maintien d'un système Linux sain. Chaque ordinateur Linux stocke les messages de journal pour différents services ou travaux. Ce guide explorera comment lire et analyser les messages de journal à l'aide de journalctl , un outil en ligne de commande pour lire les messages de journal écrits par journald .
Qu'est-ce que journald?
Journald est un service de journalisation système qui agrège les messages de journal dans un journal. Il fait partie du démon systemd qui est responsable de la journalisation des événements sous Linux. Le journal est simplement un fichier binaire utilisé pour stocker les messages de journal générés par journald.
Les messages du journal ne sont pas persistants, car ils sont stockés dans la RAM, qui est une forme volatile de stockage. Par défaut, les journaux journald sont perdus ou effacés chaque fois que votre PC redémarre ou perd de l'alimentation. Linux alloue une quantité fixe de RAM aux journaux journald pour éviter d'obstruer la mémoire de votre système.
Comment utiliser la commande journalctl
Vous pouvez utiliser journalctl pour interroger le journal systemd ou les journaux journald. Le système indexe tous les journaux journald pour améliorer l'efficacité lors de la lecture des messages de journal à partir du journal.
Remarque : ce guide utilise sudo pour exécuter des commandes à l'aide de privilèges élevés, car la commande journalctl ne répertorie pas tous les messages de journal lorsque vous l'exécutez en tant qu'utilisateur Linux standard.
Afficher tous les messages du journal
Pour afficher tous les journaux journald, exécutez simplement la commande journalctl sans aucun argument :
sudo journalctl
La commande journalctl répertorie tous les journaux journald sur votre système par ordre chronologique. La commande utilise moins en arrière-plan, ce qui vous donne la même capacité de navigation que vous auriez généralement avec la commande less. Par exemple, vous pouvez naviguer dans les journaux à l'aide des touches F et B de votre clavier.
Si vous souhaitez modifier l'ordre dans lequel le système affiche les journaux, c'est-à-dire afficher le plus récent en premier, vous pouvez utiliser l'indicateur -r avec la commande. Le drapeau -r signifie Reverse .
sudo journalctl -r
Afficher les journaux journald du noyau
Les journaux du noyau sont très importants sous Linux car ils contiennent des informations relatives à votre système à partir du moment où il démarre. Pour afficher uniquement les journaux du noyau, spécifiez l'indicateur -k avec la commande journalctl :
sudo journalctl -k
La sortie répertoriera également certaines informations sur le noyau, telles que la version du noyau et son nom.
Filtrer les journaux par programme spécifique
Vous pouvez également afficher les journaux liés à un programme ou un service spécifique à l'aide de journalctl. Par exemple, pour afficher les journaux associés au service cron , exécutez la commande ci-dessous :
sudo journalctl -u cron
Afficher les messages de journal en temps réel
Parfois, vous souhaiterez peut-être afficher les journaux en temps réel au fur et à mesure qu'ils sont enregistrés. Pour cela, lancez la commande suivante :
sudo journalctl -f
Utilisez le raccourci clavier Ctrl + C pour quitter la vue en temps réel.
Obtenir les messages de journal par date
Vous pouvez utiliser journalctl pour filtrer et analyser les journaux à l'aide d'un horodatage. Par exemple, pour afficher les logs d'hier à aujourd'hui :
sudo journalctl --since=yesterday
Vous pouvez être plus précis en utilisant un horodatage détaillé "depuis" et "jusqu'au", comme suit :
sudo journalctl --since="2021-07-17 12:00:00" --until="2021-07-17 15:00:00"
Journalctl n'affichera que les messages du journal pour la période spécifiée.
Afficher les messages de journal par UID ou PID
Vous pouvez également filtrer les journaux journalisés à l'aide de l'ID utilisateur (UID) ou de l'ID de processus (PID). La syntaxe de base est :
sudo journalctl _UID=0
…où 0 est l'UID du compte root. Vous pouvez également remplacer l'UID dans la commande susmentionnée par PID ou GID (ID de groupe).
Formatage de la sortie journalctl
Pour afficher les journaux journalctl en utilisant un format de sortie spécifique, vous devez utiliser la commande journalctl -o suivie de votre format préféré. Par exemple, pour afficher les logs dans un joli format JSON, exécutez la commande ci-dessous :
sudo journalctl -o json-pretty
Production:
Configuration de journald sur Linux
Ce guide vous a montré comment afficher et analyser les messages de journal journald sur Linux à l'aide de la commande journalctl. Le répertoire /var/log/journal stocke tous les journaux journald. Notez que journald n'est pas activé par défaut dans toutes les distributions Linux.
Vous pouvez utiliser le fichier /etc/systemd/journald.conf pour configurer ou modifier la configuration de journald sur votre PC. Outre un service de journalisation efficace, il existe plusieurs autres outils indispensables si vous êtes sérieux au sujet de la sécurité de vos serveurs Linux.