Comment bien utiliser journalctl

Quand votre serveur Linux commence à faire des siennes à 3 h du matin, vous avez besoin de réponses rapides.
C’est là que la commande journalctl --since entre en scène : l’équivalent d’une machine à remonter le temps pour les événements de votre système.

Qu’est-ce que « journalctl last » ?

« journalctl last » n’est pas une commande à part entière ; c’est une manière d’utiliser journalctl avec des filtres temporels pour afficher les entrées de journal les plus récentes.

C’est particulièrement utile lorsque vous avez besoin de vérifier ce qui s’est passé juste avant qu’un problème ne survienne. Considérez journalctl comme un enregistrement des événements du système, et cette approche comme un moyen de consulter rapidement les moments qui ont précédé un crash ou une erreur.

Voici la syntaxe de base à laquelle la plupart des administrateurs système font référence lorsqu’ils parlent de « journalctl last » :

Cette commande récupère toutes les entrées du journal système de la dernière heure—parfait lorsque vous dépannez un problème récent.

Voici donc 8 commandes journalctl à garder proches !

1. Voir en temps réel les fichiers journaux

Ceci affiche les logs combinés en temps réel, idéalement pour voir ce qui se passe en direct

2. Voir uniquement le démarrage le plus récent

Ceci affiche les logs de votre démarrage actuel uniquement. Votre système pourrait être en marche depuis des mois, mais vous ne verrez que ce qui s’est passé depuis le dernier redémarrage.

3. Afficher les logs d’une fenêtre de temps spécifique

Parfait quand un utilisateur dit : « Tout a planté vers 14h45. » Maintenant vous pouvez voir exactement ce qui s’est passé dans cette période.

4. Vérifier ce qui s’est passé dans les dernières minutes avant un crash

Cette combinaison vous montre les erreurs récentes juste avant que tout parte en vrille.

5. Obtenir les 100 dernières lignes d’entrées du journal

Cette commande affiche exactement 100 des entrées de log les plus récentes, peu importe l’heure. Parfait pour un aperçu rapide de ce qui s’est passé sur votre système. Vous pouvez ajuster le nombre pour afficher plus ou moins de lignes.

Vous pouvez aussi la combiner avec d’autres filtres :

Cette approche est beaucoup plus rapide que le filtrage basé sur le temps quand vous avez juste besoin d’un coup d’œil rapide sur l’activité récente.

6. Surveiller les erreurs en temps réel au fur et à mesure qu’elles se produisent

Comme vue plus haut, le flag -f suit le log comme tail -f, -p seulement les erreurs.

6. Découvrir ce qu’un service spécifique a fait

Remplacez nginx.service par ce qui vous pose problème. Ceci vous montre tout ce que ce service a enregistré depuis minuit.

7. Voir qui s’est connecté récemment avec SSH

Parfait pour vérifier une activité de connexion inhabituelle quand vous soupçonnez quelque chose de louche.

8. Vérifier ce qui s’est passé pendant le dernier redémarrage

Ceci montre les démarrages et arrêts de services dans la dernière heure—parfait pour voir ce qui a changé pendant un déploiement ou une mise à jour récente.


5 trucs de formatage journalctl pour rendre vos logs lisibles

La sortie par défaut de journalctl est… fonctionnelle, mais on ne peut pas dire qu’elle brille par sa clarté. Voici cinq options de formatage qui les rendent plus intéressant :


1. Une sortie en couleur et bien structurée

Affiche les journaux en JSON coloré et indenté. Parfait pour repérer rapidement les champs importants.


2. Juste le message, rien de plus,

Supprime les horodatages et les métadonnées pour ne garder que le message brut du journal.


3. Des horodatages ultra-précis

Affiche les horodatages avec précision à la microseconde, idéal pour analyser la séquence exacte d’événements.


4. Exporter les logs pour une analyse externe

Enregistre les journaux dans un fichier JSON, prêt à être analysé avec d’autres outils ou partagé avec l’équipe de développement.


5. Format multi-ligne complet

Affiche tous les champs de chaque entrée sur plusieurs lignes. Idéal pour explorer les métadonnées cachées.

Comment filtrer les résultats de journalctl

Obtenir tous les journaux de la dernière heure est un bon début, mais la véritable compétence consiste à filtrer le bruit. Voici comment se concentrer sur ce qui compte :

Type de filtreExemple de commandeCe que cela fait
Par servicejournalctl -u apache2 --since="30 minutes ago"Seuls les journaux Apache des 30 dernières minutes
Par prioritéjournalctl -p err --since todaySeuls les journaux de niveau erreur et plus élevé d’aujourd’hui
Par utilisateurjournalctl _UID=1000 --since yesterdaySeuls les journaux de l’UID 1000 depuis hier
Par ID de processusjournalctl _PID=1234 --since="1 hour ago"Journaux du PID 1234 dans la dernière heure
Par journaux du noyaujournalctl -k --since="20 minutes ago"Seuls les journaux du noyau des 20 dernières minutes
Par hôtejournalctl -D /var/log/journal/remote/Journaux provenant d’hôtes distants

Considérations de performance

Quand votre journal atteint plusieurs gigaoctets, certaines requêtes deviennent lentes. Ces conseils permettent de garder les choses rapides :

1. Nettoyer régulièrement les anciens journaux

Ceci supprime les journaux plus anciens que deux semaines, gardant vos requêtes rapides.

2. Utiliser le paramètre du répertoire de journal
Au lieu de scanner tout, pointez directement vers l’emplacement des journaux récherchés :

3. Limiter la taille de sortie

Ceci affiche seulement les 1000 entrées correspondantes les plus récentes, évitant la surcharge du terminal.

4. Indexer vos journaux Si vous utilisez une version récente de systemd :

Vérifiez et reconstruisez les index de journal pour des recherches plus rapides.

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *