Lire les journaux quand quelque chose ne va pas
journalctl, les fichiers de /var/log, et la méthode pour trouver la vraie erreur au lieu de la dernière ligne rouge.
Quand un service refuse de démarrer, la réponse est presque toujours écrite quelque part. Le problème n'est pas de trouver des messages, c'est de trouver le bon : la dernière ligne affichée est souvent une conséquence, pas la cause.
Les commandes qui servent vraiment
journalctl -u nginx -n 50 # les 50 dernières lignes de nginx
journalctl -u nginx -f # suivre en direct
journalctl -u nginx --since '10 min ago'
journalctl -p err -b # toutes les erreurs depuis le démarrage
journalctl -b -1 # le journal du démarrage précédentLe journal du démarrage précédent
journalctl -b -1 est l'outil des redémarrages inexpliqués : il montre ce que la machine a écrit juste avant de s'arrêter. C'est là qu'on trouve un plantage du noyau ou un manque de mémoire.
La bonne méthode
- 1
Remonter à la première erreur
Cherchez le premier message d'erreur, pas le dernier. Une base de données qui refuse une connexion produit ensuite dix lignes d'échec applicatif : ce sont des conséquences.
- 2
Regarder l'heure
Recoupez l'horodatage avec le moment où le problème est apparu. Une erreur qui date de trois jours n'est probablement pas la vôtre.
- 3
Vérifier la configuration avant de la charger
La plupart des services savent se relire eux-mêmes et pointent la ligne fautive.
bashsudo nginx -t sudo sshd -t sudo apachectl configtest
Les fichiers, pour ce qui n'est pas dans systemd
| Fichier | Ce qu'on y trouve |
|---|---|
| /var/log/nginx/error.log | Erreurs du serveur web : permissions, PHP, chemins |
| /var/log/auth.log | Connexions et tentatives SSH, usages de sudo |
| /var/log/syslog | Messages généraux du système (Debian, Ubuntu) |
| /var/log/mysql/error.log | Refus de démarrage de la base |
| dmesg -T | Messages du noyau : disque, mémoire, matériel |
Empêcher les journaux de remplir le disque
Le journal systemd grossit sans limite par défaut sur certaines distributions. Une machine dont le disque se remplit sans raison apparente est souvent une machine qui garde six mois de journaux.
journalctl --disk-usage
sudo journalctl --vacuum-time=14d # ne garder que deux semaines
sudo journalctl --vacuum-size=500M # ou un demi-gigaoctetBloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.
Ouvrir un ticket