Journalctl en 2026 : lire et filtrer les logs vite
Apprenez à utiliser journalctl en 2026 pour lire, filtrer et exporter les logs Linux sans perdre de temps, avec des commandes utiles.
Pourquoi journalctl est devenu incontournable sur les serveurs Linux
Sur la plupart des distributions Linux modernes qui utilisent systemd, journalctl est l’outil standard pour consulter les journaux système. Là où l’on ouvrait autrefois plusieurs fichiers dans /var/log, il est désormais fréquent de centraliser la lecture des événements avec une seule commande. Pour un administrateur système, un technicien support ou une équipe DevOps, cela change surtout une chose : le diagnostic va plus vite.
journalctl lit les données du systemd journal, le système de journalisation de systemd. On y retrouve notamment :
- les messages du noyau,
- les logs des services gérés par systemd,
- des événements de démarrage,
- des messages issus de processus utilisateurs ou système.
Concrètement, au lieu de chercher dans plusieurs emplacements, on peut interroger un historique unifié avec des filtres précis. C’est particulièrement utile sur un serveur où l’on veut répondre vite à des questions simples :
- Pourquoi nginx ne démarre pas ?
- Que s’est-il passé depuis le dernier reboot ?
- Quels messages d’erreur sont apparus dans la dernière heure ?
- Le service sshd a-t-il redémarré plusieurs fois ?
Sur Debian, Ubuntu, RHEL, Rocky Linux, AlmaLinux, Fedora ou encore de nombreuses distributions cloud, journalctl fait partie de la boîte à outils essentielle. Il ne remplace pas tous les fichiers de logs dans tous les contextes, mais il couvre déjà une grande partie des besoins quotidiens.
La documentation officielle de référence reste celle de systemd : journalctl et systemd-journald.
Premiers réflexes pour lire les logs sans se noyer
Le piège classique avec journalctl, c’est de lancer la commande seule sur un serveur actif :
journalctl
La commande affiche alors un volume potentiellement énorme. C’est utile pour une exploration globale, mais rarement pour un diagnostic rapide. En pratique, mieux vaut partir avec quelques réflexes simples.
Afficher les logs récents
Pour commencer par la fin, comme avec tail, utilisez :
journalctl -e
L’option -e positionne l’affichage à la fin du journal. C’est souvent le meilleur point d’entrée quand un incident vient de se produire.
Limiter le nombre de lignes
Quand on veut juste un aperçu rapide :
journalctl -n 50
Ici, seules les 50 dernières entrées sont affichées. C’est très pratique pour vérifier l’activité récente d’un serveur après une action, un redémarrage de service ou un déploiement.
Désactiver la pagination si nécessaire
Par défaut, l’affichage passe souvent par un pager. Pour intégrer la commande dans un script ou rediriger la sortie plus simplement, on peut utiliser :
journalctl --no-pager
C’est aussi utile si vous travaillez dans un terminal minimal ou dans un environnement d’automatisation.
Rendre les sorties plus lisibles
Quand les lignes sont longues, cette option évite les coupures peu pratiques :
journalctl -n 100 -o short-iso
Le format short-iso affiche des horodatages lisibles au format ISO, ce qui facilite la corrélation avec d’autres outils, des tickets d’incident ou des événements applicatifs.
D’autres formats existent, documentés dans la page de manuel. Pour un usage quotidien, short, short-iso et parfois json sont les plus utiles.
Lire les logs d’un service précis
Dans la vraie vie, on cherche rarement “tous les logs”. On cherche plutôt les logs d’un service. C’est là que journalctl devient vraiment efficace.
Filtrer avec l’unité systemd
Pour afficher les journaux d’un service géré par systemd, utilisez -u :
journalctl -u nginx.service
Ou, selon les cas, simplement :
journalctl -u nginx
Exemples fréquents :
journalctl -u sshjournalctl -u dockerjournalctl -u postgresqljournalctl -u cronoujournalctl -u crondselon la distribution
Le nom exact dépend du service installé. En cas de doute, vérifiez avec :
systemctl list-units --type=service
Voir seulement les dernières lignes d’un service
Quand un service vient d’échouer au démarrage, cette commande est souvent suffisante :
journalctl -u nginx -n 30 -e
Vous obtenez les dernières entrées pertinentes, sans remonter tout l’historique.
Exemple concret de diagnostic
Un service web ne répond plus après une modification de configuration. Le réflexe efficace est souvent :
- vérifier l’état :
systemctl status nginx - lire les logs récents :
journalctl -u nginx -n 50 -e - si nécessaire, redémarrer puis suivre en direct :
journalctl -u nginx -f
Cette séquence simple permet d’identifier rapidement une erreur de syntaxe, un port déjà occupé, un problème de droits ou une dépendance non disponible.
Filtrer par période pour aller droit au problème
Le filtrage temporel est l’une des fonctions les plus rentables de journalctl. Au lieu de parcourir des centaines de lignes, vous pouvez viser la bonne fenêtre temporelle.
Utiliser --since
Pour afficher les logs depuis une date ou une heure donnée :
journalctl --since "2026-01-15 08:00:00"
On peut aussi utiliser des expressions plus naturelles :
journalctl --since "1 hour ago"
journalctl --since "today"
Ces formes sont très pratiques lors d’une investigation rapide.
Combiner --since et --until
Pour isoler une plage précise :
journalctl --since "2026-01-15 08:00:00" --until "2026-01-15 09:00:00"
C’est idéal pour corréler un incident signalé à une heure donnée, par exemple pendant une maintenance ou juste après un déploiement.
Combiner période et service
En pratique, on combine presque toujours plusieurs filtres :
journalctl -u ssh --since "30 min ago"
Ou encore :
journalctl -u docker --since "today" -e
Avec cette approche, on réduit très vite le bruit.
Filtrer par priorité pour faire remonter les erreurs utiles
Tous les messages n’ont pas la même importance. Lorsqu’on cherche la cause d’un incident, filtrer par priorité permet souvent de gagner plusieurs minutes.
Afficher les erreurs et plus graves
La commande suivante se concentre sur les événements critiques :
journalctl -p err..alert
Le journal systemd s’appuie sur les niveaux de priorité classiques de syslog. En pratique, les plus utiles au quotidien sont souvent :
- err
- warning
- notice
- info
Exemples pratiques
Pour voir les erreurs depuis le dernier démarrage :
journalctl -b -p err
Pour afficher les avertissements et erreurs d’un service :
journalctl -u nginx -p warning
Selon le contexte, cela permet de faire ressortir immédiatement un échec de liaison réseau, un problème de certificat, une erreur de permission ou une dépendance absente.
Attention au contexte
Un journal “propre” ne signifie pas toujours qu’il n’y a pas de problème. Certaines applications journalisent peu, ou utilisent un niveau d’information différent. Le filtre par priorité est donc un accélérateur, pas un substitut à une lecture complète quand le cas est ambigu.
Travailler par démarrage pour comprendre ce qui s’est passé après un reboot
Quand un serveur a redémarré, volontairement ou non, la notion de boot devient centrale. journalctl sait filtrer les logs par démarrage, ce qui est extrêmement utile pour analyser un incident récent.
Voir les logs du démarrage courant
journalctl -b
L’option -b limite l’affichage au démarrage actuel. C’est souvent le bon réflexe après un reboot système, un redéploiement ou une panne machine.
Voir le démarrage précédent
journalctl -b -1
Le -1 désigne le boot précédent. Très utile si le serveur a redémarré de façon inattendue et que vous voulez examiner ce qui s’est passé juste avant ou pendant la séquence de redémarrage.
Lister les démarrages disponibles
journalctl --list-boots
Cette commande affiche les boots connus du journal avec leurs identifiants et leurs plages temporelles. C’est pratique quand on enquête sur un événement plus ancien.
Exemple de routine utile
Après un redémarrage imprévu, une séquence efficace peut être :
journalctl --list-bootsjournalctl -b -1 -p warningjournalctl -b -1 -u sshjournalctl -k -b -1
La dernière commande cible les messages du noyau du boot précédent, ce qui aide à repérer certains événements bas niveau.
Suivre les logs en direct comme avec tail -f
Pour l’exploitation quotidienne, l’un des usages les plus pratiques est le suivi en direct. L’équivalent de tail -f avec journalctl est :
journalctl -f
La commande affiche les nouvelles entrées au fil de l’eau. C’est très utile pendant :
- un redémarrage de service,
- un test applicatif,
- une montée en charge,
- une intervention en production.
Suivre un service précis
Dans la plupart des cas, mieux vaut rester ciblé :
journalctl -u nginx -f
Ou encore :
journalctl -u docker -f
On voit alors immédiatement les nouvelles erreurs, les redémarrages, les refus de connexion ou les messages liés à la configuration.
Combiner suivi et historique récent
Pour démarrer avec un peu de contexte avant de suivre le flux :
journalctl -u ssh -n 20 -f
Vous récupérez les 20 dernières lignes, puis la suite en direct. C’est souvent plus utile qu’un simple suivi “à vide”.
Exporter les logs et les intégrer dans ses routines d’administration
journalctl ne sert pas seulement à lire des logs dans un terminal. Il peut aussi être intégré dans des scripts, des procédures d’incident, des exports ou des vérifications automatisées.
Exporter vers un fichier texte
Le cas le plus simple consiste à rediriger la sortie :
journalctl -u nginx --since "today" --no-pager > nginx-logs.txt
Pratique pour joindre un extrait à un ticket, partager un diagnostic ou conserver une trace d’intervention.
Exporter dans un format structuré
Pour des traitements automatisés, un format structuré peut être préférable :
journalctl -u docker -o json --since "1 hour ago"
Le format JSON est utile si vous voulez retraiter les événements avec des outils de parsing, ou les intégrer dans une chaîne d’analyse plus large.
Rechercher avec grep en complément
Même si journalctl propose déjà beaucoup de filtres, il reste naturel de le combiner avec grep dans certains cas :
journalctl -u nginx --since "today" --no-pager | grep -i "timeout"
Si vous voulez revoir rapidement les bases de cet outil, vous pouvez consulter aussi notre article sur grep et ses options utiles.
Créer des alias utiles
Sur un poste d’administration ou un bastion, quelques alias bien choisis font gagner du temps. Par exemple, certains administrateurs définissent des raccourcis pour :
- les erreurs du boot courant,
- le suivi en direct d’un service fréquent,
- les logs de la dernière heure avec horodatage lisible.
Si le sujet vous intéresse, vous pouvez aussi lire notre sélection de 10 alias Bash vraiment utiles au quotidien.
Exemples de routines réalistes
Voici quelques usages simples et efficaces en environnement réel :
- après un déploiement :
journalctl -u application.service -n 50 -e - après un reboot :
journalctl -b -p warning - sur incident réseau :
journalctl --since "30 min ago" -p err - sur service instable :
journalctl -u nom-du-service -f
Le point important n’est pas de mémoriser toutes les options, mais d’avoir quelques combinaisons fiables que l’on réutilise sans réfléchir.
Les commandes journalctl les plus utiles à garder sous la main
Pour finir, voici une synthèse des commandes les plus rentables dans un usage quotidien d’administration Linux :
journalctl -e: aller directement à la fin du journaljournalctl -n 50: voir les 50 dernières entréesjournalctl -u nginx: lire les logs d’un servicejournalctl -u nginx -n 30 -e: voir les dernières lignes d’un servicejournalctl --since "1 hour ago": filtrer par période récentejournalctl --since "today" --until "now": cibler une plage de tempsjournalctl -p err: afficher les erreursjournalctl -b: logs du démarrage courantjournalctl -b -1: logs du démarrage précédentjournalctl --list-boots: lister les démarrages disponiblesjournalctl -f: suivre les logs en directjournalctl -u ssh -n 20 -f: historique récent puis suivi d’un servicejournalctl -o short-iso: affichage avec horodatage lisiblejournalctl --no-pager: sortie directe sans pagination
Si vous utilisez déjà des outils comme rsync, tar, find ou grep dans vos routines d’exploitation, journalctl mérite clairement la même place. C’est un outil transversal, rapide à prendre en main, et particulièrement efficace dès qu’il faut comprendre ce qui se passe sur un serveur Linux moderne.
Conclusion
En 2026 comme aujourd’hui, journalctl reste l’un des moyens les plus rapides pour lire, filtrer et exploiter les logs sur un système Linux basé sur systemd. En maîtrisant quelques commandes simples — filtrage par service, par date, par priorité et par démarrage — vous pouvez réduire fortement le temps passé à chercher la bonne information.
L’essentiel est de construire vos automatismes : une poignée de commandes mémorisées, quelques alias si besoin, et des routines claires pour les incidents courants. Si vous voulez aller plus loin dans cette logique d’administration sobre et efficace, explorez les autres guides de Prompt Bash et gardez sous la main les commandes que vous utiliserez vraiment.