Utilisateur:Wetaskiwin
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 de 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 ?
Emplacement | Contenu |
---|---|
/var/log/alternatives.log | Les logs d'update-alternatives. |
/var/log/apache2/* | Les logs du serveur http apache2. |
/var/log/apt/* | Les logs d'apt. Tous les paquets installés avec apt-get install, par exemple. |
/var/log/aptitude | Les logs d'aptitude. Contient toutes les actions demandées, même les abandonnées. |
/var/log/auth.log | 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/bind.log | Les logs du serveur de nom bind9, s'il sont activés. |
/var/log/boot.log | Les informations enregistrées lors du démarrage du système. Ce fichier n'est pas activé par défaut. |
/var/log/btmp | Semblable à /var/log/wtmp. Affiche les connexions/déconnexions au système # lastb alors que # last lira le fichier /var/log/wtmp. |
/var/log/cups/* | Les logs du système d'impression cups. |
/var/log/cron | Les informations sur les tâches cron. Enregistrement à chaque fois que le démon cron (ou anacron) commence une tâche. |
/var/log/daemon.log | Les informations enregistrées par les différents daemons (processus) de fond qui fonctionnent sur le système. |
/var/log/debug | Les logs de debugging. |
/var/log/dmesg | Les messages du noyau Linux depuis le démarrage. |
/var/log/dpkg.log | Les informations sur les paquets installés ou retirés en utilisant la commande dpkg. |
/var/log/fail2ban.log | Les Ban/Unban et infos sur le programme (Error, Info, etc.) si fail2ban est installé. |
/var/log/faillog | Les échecs de connexion. # faillog -u root. |
/var/log/kern.log | Les informations enregistrées par le noyau. Utile pour débogguer un noyau personnalisé, par exemple. |
/var/log/lastlog | 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/mail.* | Les informations du serveur de messagerie. Par exemple, sendmail enregistre des informations sur tous les éléments envoyés dans ces fichiers. |
/var/log/messages | 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/syslog | Tous les messages, hormis les connexions des utilisateurs. Plus complet que /var/log/messages. |
/var/log/user.log | Les informations sur tous les journaux de niveau utilisateur. |
/var/log/wtmp | Toutes les connexions et déconnexions: last -f /var/log/wtmp. |
/var/log/Xorg.x.log | Les messages du serveur X. N'existe pas sur un serveur. |
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 : Coloration syntaxique des logs: CCZE
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='grep --color=auto') pour vous simplifier la vie :
$ echo "alias grep='grep --color=auto'" >> ~/.bashrc
$ source ~/.bashrc
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