====== Systemd: analyser les erreurs au démarrage et autres astuces ====== Vérifier les services qui sont actuellement plantés : sudo systemctl --failed Plus d'infos sur les erreurs sudo journalctl -f Pour le plaisir : sudo journalctl -feu machin.service * -f : n'affiche que les entrées de journal les plus récentes et imprime continuellement les nouvelles entrées au fur et à mesure qu'elles sont ajoutées au journal. * -e : saute au bout du journal directement. * -u indique un service en particulier, cela réduit les recherches. ===== Obtenir des journaux précis ===== Journal complet de tout ce qui s'est passé ; pour éviter que ce soit trop long, on précise une unité temporelle, et puis on met ça dans un fichier texte, ça aidera à consulter... sudo journalctl --since="today" > journal.txt Faire une recherche dans ce fichier avec "warn", "fail", "error" permet déjà de lister quelques soucis. On peut aussi filtrer par type de message (''-p err'' pour les erreurs) et depuis une certaine date (''-until="date au format anglais"''): sudo journalctl -p err --until="2018-03-19 12h:00:00" > journalerr.txt Pour avoir tout le log d'un session, c'est ''-b'' suivi d'un décompte : ''-1'' pour la session précédente, ''-2'' pour la session d'avant, etc. sudo journalctl -b -1 ===== No pager ===== Si on est bloqué dans une console avec une taille limitée, cette option permet de tout lire sans devoir jouer des flèches : systemctl status --no-pager -l SERVICE.service ===== Chercher ===== C'est l'option -g comme "grep" : journalctl -g "machin*" ===== Autres détails avec dmesg ===== sudo dmesg -l err,crit,warn ===== Lister les services actifs et leur état ===== sudo systemctl --type=service --no-pager ===== Limiter la taille des logs ===== sudo nano /etc/systemd/journald.conf Modifier pour avoir ''SystemMaxUse=512M'' (par exemple, et regarder les autres options). ''SystemMaxFiles=100'' est une option complémentaire utile (il va faire l'équivalent d'un log rotate). Puis redémarrer pour que ce soit pris en compte : systemctl restart systemd-journald.service Pour libérer en urgence (manip temporaire) : sudo journalctl --vacuum-size=100M sudo journalctl --vacuum-time=10d ===== Avoir des vrais journaux de log ===== On peut forcer journalctl à nous refiler des vrais journaux, il va faire transiter par rsyslog. Donc en premier, installer ''rsyslog''. Puis dans ''/etc/systemd/journald.conf'', décommenter ''ForwardToSyslog=yes''. Relancer systemd, ça marche. systemctl restart systemd-journald.service ===== Journaux de Postfix ===== La commande suivante permet d'avoir les logs "mails" de postfix : journalctl -ru postfix@-.service Le -r c'est pour inverser l'ordre, avoir les lignes les plus récentes au début. En gros postfix.service ça doit être les logs du démon postfix, et postfix@-.service ceux de son pool de mails. Ce n'est pas hyper évident donc c'est noté ici ! [[https://creativecommons.org/publicdomain/zero/1.0/deed.fr|{{ https://liev.re/imagesweb/licences/cc-zero.png?100 | Ce texte est placé sous licence CC0}}]]