Administration serveur Linux : services & systemd
29 janvier 2026SSH admin Linux : accès distant et bonnes pratiques
29 janvier 2026Administration serveur Linux · Debian & Ubuntu
Logs Linux : journalctl et /var/log
Retrouver la cause exacte d’une panne : la méthode complète pour lire, filtrer et faire durer les journaux d’un serveur Debian ou Ubuntu.
Face à un service qui plante ou un comportement étrange, les journaux (logs) sont toujours le premier réflexe. Sur un serveur Linux moderne, deux systèmes coexistent : le journal systemd, consultable avec journalctl, et les fichiers texte traditionnels dans /var/log. Ce guide montre comment utiliser les deux efficacement pour diagnostiquer une panne, jusqu’à en faire un vrai réflexe.
- journalctl : le journal centralisé de systemd
- Les fichiers classiques de /var/log
- Rendre le journal persistant
- Faire tourner les logs (logrotate)
- Méthode : diagnostiquer une panne pas à pas
1. journalctl : le journal centralisé de systemd
Depuis l’arrivée de systemd, la plupart des services écrivent leurs journaux dans un format binaire indexable, interrogeable avec journalctl :
sudo journalctl -u nginx # logs d'un service précis
sudo journalctl -u nginx -f # suivi en temps réel (comme tail -f)
sudo journalctl -b # depuis le dernier démarrage
sudo journalctl -p err # uniquement erreurs et plus grave
sudo journalctl --since "1 hour ago" --until now
sudo journalctl -k # messages du noyau (équivalent dmesg)
Combinez les filtres : journalctl -u nginx -p err --since today ne montre que les erreurs Nginx du jour — idéal pour aller droit au but.
2. Les fichiers classiques de /var/log
Certains logiciels (surtout ceux qui existaient avant systemd) écrivent encore directement dans des fichiers texte :
/var/log/syslog(Debian/Ubuntu) — le journal système général./var/log/auth.log— authentifications, connexions SSH, usages de sudo./var/log/kern.log— messages du noyau./var/log/dpkg.log— historique des installations et mises à jour de paquets./var/log/nginx/,/var/log/apache2/— logs d’accès et d’erreurs des serveurs web.
tail -f /var/log/auth.log # suivre les connexions en temps réel
grep 'Failed password' /var/log/auth.log # repérer des tentatives échouées
3. Rendre le journal persistant
Par défaut sur certaines installations, le journal systemd ne survit pas au redémarrage (stocké en mémoire uniquement). Pour garder l’historique :
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
Limitez la taille du journal persistant dans /etc/systemd/journald.conf avec SystemMaxUse=500M par exemple, pour éviter qu’il ne remplisse le disque au fil des mois.
4. Faire tourner les logs (logrotate)
Les fichiers texte de /var/log grossissent sans limite s’ils ne sont pas gérés. logrotate, installé par défaut, compresse et archive automatiquement les anciens logs selon des règles dans /etc/logrotate.d/ :
cat /etc/logrotate.d/nginx
sudo logrotate -d /etc/logrotate.conf # simulation, sans rien modifier
5. Méthode : diagnostiquer une panne pas à pas
- Identifiez le service concerné et son état :
systemctl status mon-service. - Consultez ses derniers logs :
journalctl -u mon-service -n 100 --no-pager. - Situez l’incident dans le temps :
journalctl --since "10 min ago"pour voir tout ce qui s’est passé au même moment, tous services confondus. - Croisez avec les logs texte si le service en écrit (par exemple les logs d’erreur Nginx) pour avoir le détail applicatif complet.
- Recherchez le message d’erreur exact en ligne si sa signification n’est pas évidente : les messages systemd/noyau sont souvent documentés.
FAQ — Logs et journalctl
journalctl remplace-t-il complètement /var/log ?
Non. De nombreux services continuent d’écrire des logs applicatifs détaillés dans des fichiers texte (Nginx, Apache, MySQL). journalctl centralise surtout la sortie standard des services et les messages système/noyau.
Le journal prend trop de place sur le disque, que faire ?
Limitez sa taille avec SystemMaxUse dans journald.conf, ou nettoyez manuellement : sudo journalctl --vacuum-size=200M.
Comment exporter des logs pour les envoyer à quelqu’un ?
journalctl -u mon-service --since today > logs.txt exporte en texte brut, facile à partager ou à analyser ailleurs.
Conclusion
Maîtriser journalctl et les fichiers de /var/log transforme le diagnostic d’une panne : au lieu de deviner, on lit exactement ce qui s’est passé, quand, et dans quel service. C’est le complément naturel de la gestion des services avec systemd.