Bac à sable
Consulter les logs : quoi, où et comment chercher ?
Cet article est une ébauche. N'hésitez pas à contribuer ou à en discuter.
Être capable de chercher dans les logs peut se révéler indispensable. Les journaux log sont stockés dans le répertoire /var/log/ et sont consultables grâce aux commandes tail, grep et zgrep.
Pour voir "en direct" des logs (tail -f):
# tail -f /var/log/auth.log
Avoir les 20 dernières lignes d'un fichier log:
# tail -n 20 /var/log/messages
Rechercher dans le texte facilement "à la vim" - "/recherche" avec less
# tail -n 20 /var/log/messages |less
Rechercher un paquet en particulier
# grep -R "nom_du_paquet" /var/log/*
Y compris dans les logs compressés sous forme de fichiers .gz
# zgrep "nom_du-paquet" /var/log/*
Il est également possible de "grepper" une commande grep.
# grep -r "dpkg" /var/log/* | grep erreur
Et avec une commande d'exclusion (grep -v => A l'exclusion de)
# grep -r "dpkg" /var/log/* | grep -v ejabberd
Trouver dans quels fichiers de logs se trouve la chaine "dpkg" (-r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers)
# grep -r -i -l 'dpkg' /var/log/
Pour conserver le résultat des recherches dans un fichier (/tmp/ma_recherche_dpkg.log)
# grep -r -i -l 'dpkg' /var/log/ > /tmp/ma_recherche_dpkg.log
Avoir les 20 dernières lignes d'une recherche avec grep:
# grep -r "dpkg" /var/log/* | tail -n 20
Dans quels logs chercher ?
Les logs d'update-alternatives.
/var/log/alternatives.log
Les logs du serveur http apache2.
/var/log/apache2/*
Les logs d'apt. Tous les paquets installés avec apt-get install, par exemple.
/var/log/apt/*
Les logs d'aptitude. Contient toutes les actions demandées, même les abandonnées.
/var/log/aptitude
Les informations d'autorisation de système. Y sont consignées toutes les connexions (réussies ou pas) et la méthode d'authentification utilisée.
/var/log/auth.log
Les logs du serveur de nom bind9, s'il sont activés.
/var/log/bind.log
Les informations enregistrées lors du démarrage du système. Ce fichier n'est pas activé par défaut.
/var/log/boot.log
Semblable à /var/log/wtmp. Affiche les connexions/déconnexions au système # lastb alors que # last lira le fichier /var/log/wtmp.
/var/log/btmp
Les logs du système d'impression cups.
/var/log/cups/*
Les informations sur les tâches cron. Enregistrement à chaque fois que le démon cron (ou anacron) commence une tâche.
/var/log/cron
Les informations enregistrées par les différents daemons (processus) de fond qui fonctionnent sur le système.
/var/log/daemon.log
Les logs de debugging.
/var/log/debug
Les messages du noyau Linux depuis le démarrage.
/var/log/dmesg
Les informations sur les paquets installés ou retirés en utilisant la commande dpkg.
/var/log/dpkg.log
Les Ban/Unban et infos sur le programme (Error, Info, etc.) si fail2ban est installé.
/var/log/fail2ban.log
Les échecs de connexion. # faillog -u root
/var/log/faillog
Les informations enregistrées par le noyau. Utile pour débogguer un noyau personnalisé, par exemple.
/var/log/kern.log
Les informations de connexion récente de tous les utilisateurs. Ce n'est pas un fichier ascii. Vous devez utiliser la commande lastlog pour afficher le contenu de ce fichier.
/var/log/lastlog
Les informations du serveur de messagerie. Par exemple, sendmail enregistre des informations sur tous les éléments envoyés dans ces fichiers.
/var/log/mail.*
Les messages du système, y compris les messages qui sont enregistrés au démarrage. Beaucoup de choses sont enregistrées dans /var/log/ messages y compris le courrier, cron, daemon, kern, auth, etc.
/var/log/messages
Tous les messages, hormis les connexions des utilisateurs. Plus complet que /var/log/messages.
/var/log/syslog
Les informations sur tous les journaux de niveau utilisateur.
/var/log/user.log
Toutes les connexions et déconnexions: last -f /var/log/wtmp.
/var/log/wtmp
Les messages du serveur X. N'existe pas sur un serveur.
/var/log/Xorg.x.log
Pour faciliter la lectures de toutes ces pages
Coloration syntaxique des logs
# apt-get install ccze
Utilisation :
# tail -10 /var/log/syslog | ccze -A
Voir la page de ccze : https://wiki.debian-fr.xyz/Ccze_-_Coloration_syntaxique_des_logs
Pour afficher en couleur le nom de paquet recherché et aider à la lecture des history.log.
grep --color=always "nom_du_paquet" /var/log/apt/history.log
Et un alias :
$ alias grep alias grep='grep --color=auto'
Et pour cumuler le tout : recherche dans les history.log.X.gz avec coloration syntaxique et coloration du nom du paquet.
# zgrep --color=always "nom_du_paquet" /var/log/apt/history* | ccze -A