Consulter les logs : quoi, où et comment chercher ?

De Le Wiki du Forum-Debian.fr
Révision datée du 13 juillet 2016 à 16:41 par MicP (discussion | contributions) (précision concernant "/var/log/Xorg.x.log")
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche
Consulter les logs : quoi, où et comment chercher ?
Domaine(s): Commande
Action(s) effectuée(s): Création
Paquet(s):
Version debian: Sid, Stretch, Jessie, Wheezy, Toutes, Lenny, Etch, Sarge, Woody, Potato, Slink, Hamm
Branche:
Support sur lequel Debian est installé: Serveur, Ordinateur de bureau, Ordinateur portable, Mini-pc
Environnement graphique:
Niveau de difficulté: Débutant
Langage(s) de programmation utilisé(s):
Type(s) de Matériel(s):
Marque du/des matériel(s):
Connectique:
Protocole(s):

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 => À 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.Le petit x est le N° d'instance du serveur X.

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

Source et discussion sur le forum debian-fr.xyz