Débutant

Maîtriser journalctl : rechercher, filtrer, suivre et exporter les logs systemd

Apprenez à utiliser journalctl pour rechercher des logs systemd, filtrer par service, suivre en temps réel et exporter un diagnostic propre.

Maîtriser journalctl : rechercher, filtrer, suivre et exporter les logs systemd
Difficulté
Facile

journalctl est l’outil standard pour lire les logs gérés par systemd sur la plupart des distributions Linux récentes. Pour débuter, retenez quatre actions utiles : chercher un message, filtrer un service, suivre les événements en temps réel et exporter un extrait propre pour un diagnostic.

Ce guide montre les commandes essentielles sans multiplier les options. Les exemples restent génériques, car le nom exact des services et le contenu des journaux dépendent de votre machine.

Prérequis

Vous avez accès à un terminal sur une machine Linux utilisant systemd. Selon la configuration du système, certaines entrées peuvent exiger sudo pour être lues en totalité.

Matériel nécessaire

  • Un terminal Linux avec systemd et la commande journalctl
  • Éventuellement un accès sudo pour lire tous les journaux

Étapes

  1. Ouvrir les journaux récents

    Commencez par afficher les entrées les plus récentes avec journalctl -e. L’option -e ouvre directement la fin du journal, ce qui évite de parcourir tout l’historique.

    Si la sortie est longue, quittez l’affichage avec q. Pour voir les journaux sans pager, utilisez journalctl --no-pager.

  2. Filtrer un service précis

    Gros plan réaliste sur un ordinateur portable avec un terminal affiché, des mains en train de filtrer les journaux pour un service précis.

    Pour cibler un service systemd, utilisez journalctl -u nginx.service en remplaçant nginx.service par le nom utile. C’est le filtre le plus efficace pour isoler un problème applicatif ou un échec de démarrage.

    Vous pouvez aussi combiner avec les lignes récentes : journalctl -u nginx.service -n 100. Si vous ne connaissez pas le nom exact, listez les unités avec systemctl list-units --type=service.

  3. Suivre les logs en temps réel

    Ordinateur portable affichant un terminal qui se met à jour en direct, avec une main prête à suivre les nouveaux journaux.

    Pour observer un service pendant un test, lancez journalctl -u nginx.service -f. L’option -f suit les nouvelles lignes en direct, comme tail -f.

    Cette vue est pratique pendant un redémarrage, une requête de test ou une reproduction d’erreur. Arrêtez le suivi avec Ctrl+C.

  4. Limiter la période utile

    Réduisez le bruit en filtrant par date avec --since et --until. Exemple : journalctl -u nginx.service --since "2026-10-19 10:00" --until "2026-10-19 10:15".

    Pour une recherche rapide, une borne seule suffit, par exemple journalctl --since "1 hour ago". Le format exact de date accepté peut varier selon votre environnement, mais les expressions simples sont souvent suffisantes.

  5. Cibler le bon redémarrage

    Si le problème date d’un boot précédent, utilisez journalctl -b pour le démarrage courant. Pour un démarrage antérieur, essayez journalctl -b -1.

    Ce filtre est utile après un plantage, un redémarrage forcé ou une panne au lancement du système. Il évite de mélanger des événements de plusieurs sessions de démarrage.

  6. Réduire le volume avec une priorité

    Pour ne voir que les messages les plus importants, ajoutez une priorité avec -p. Exemple : journalctl -p warning ou journalctl -u nginx.service -p err.

    Ce filtre aide quand les journaux sont verbeux. Il ne remplace pas une lecture complète, mais il fait ressortir rapidement les alertes et erreurs.

  7. Rechercher une chaîne utile

    Si vous cherchez un mot précis, combinez journalctl avec grep. Exemple : journalctl -u nginx.service --no-pager | grep -i "timeout".

    Cette méthode est simple pour retrouver un message connu, un identifiant ou un mot d’erreur. Elle dépend du texte exact présent dans les logs, donc essayez plusieurs variantes si besoin.

  8. Afficher une sortie plus lisible

    Pour partager ou relire des logs, utilisez une sortie courte et stable comme journalctl -u nginx.service -o short-iso. Ce format garde l’horodatage lisible et facilite la corrélation avec vos actions.

    Évitez de copier un écran brut mélangé à d’autres commandes. Une sortie cohérente aide davantage qu’un long collage difficile à lire.

  9. Exporter un diagnostic propre

    Scène réaliste d’un ordinateur portable où un terminal sert à exporter un diagnostic propre à partir des journaux.

    Exportez seulement l’extrait utile dans un fichier texte. Par exemple : journalctl -u nginx.service --since "10 min ago" -o short-iso --no-pager > diagnostic-nginx.log.

    Avant de partager le fichier, relisez-le et retirez ce qui expose des informations sensibles. Le contenu exact à masquer dépend du service, des messages émis et de votre contexte.

  10. Combiner les filtres pour un vrai cas pratique

    En cas d’échec de démarrage d’un service, partez d’une commande combinée comme journalctl -u nginx.service -b -p err --since "30 min ago" -o short-iso. Vous obtenez un extrait centré sur le service, le boot courant, les erreurs et la période récente.

    Si rien n’apparaît, élargissez progressivement un seul critère à la fois. Par exemple, retirez d’abord la priorité, puis allongez la période.

Erreurs fréquentes & dépannage

Lire trop large dès le départ noie souvent le signal dans le bruit. Commencez par un service, une période courte et, si utile, une priorité.

Partager des logs bruts sans relecture expose parfois des données sensibles. Exportez un extrait limité et vérifiez chaque ligne avant envoi.

Confondre absence de résultat et absence de problème mène à de mauvaises conclusions. Le filtre choisi peut être trop strict, le nom d’unité incorrect ou l’historique indisponible.

Astuces & pour aller plus loin

Gardez un modèle simple pour vos diagnostics : journalctl -u SERVICE --since "10 min ago" -o short-iso --no-pager. Remplacez ensuite seulement SERVICE et la période.

Pour enquêter pendant une reproduction de bug, ouvrez un terminal avec journalctl -u SERVICE -f et effectuez le test dans un second terminal ou depuis l’application concernée.

Questions fréquentes

Faut-il toujours utiliser sudo avec journalctl ?

Non. Cela dépend des droits de votre session et de la configuration du système. Sur certaines machines, une partie ou la totalité des journaux n’est visible complètement qu’avec sudo.

Comment trouver le bon nom de service à utiliser avec -u ?

Utilisez systemctl list-units --type=service pour repérer l’unité active correspondante. Le nom exact dépend du logiciel installé et parfois de la distribution.

Puis-je exporter tous les logs dans un fichier ?

Oui, techniquement, mais ce n’est pas une bonne méthode pour un diagnostic partagé. Un export borné au bon service et à la bonne période est plus lisible et limite les risques de fuite d’informations.

Conclusion

Pour bien débuter avec journalctl, retenez ce trio : -u pour le service, --since pour la période et -f pour le direct. Si vous devez envoyer un diagnostic, exportez un extrait court en short-iso, puis relisez-le avant partage.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire