Rechercher une indication dans les logs, voilà un parcours qui n’est pas évident lorsque on débute l’administration serveur.
Ceux qui “savent”, pourraient donner des exemples de ce qui est fréquent de rechercher, vers quel fichier de logs se tourner et “quoi” rechercher exactement.
Une indication d’endroit dans le fichier serait un plus. Ex. :rechercher dans les dernières lignes, ou selon la date inscrite.
Enfin, le maximum d’info sera bon à prendre.
Merci de votre participation, dans les commentaires
Qui s’est connecté récemment
sudo grep Accepted /var/log/auth.log
Qui a tenté de se connecter récemment
sudo grep Failed /var/log/auth.log
Permet de savoir combien de tentatives de connexions infructueuses ont eu lieu :
# expr `zcat /var/log/auth.log*gz | grep -c "authentication failure"` + ` cat /var/log/auth.log* | grep -c "authentication failure"`
Groupe adm :
La plupart des logs sont en droits 640, ce qui oblige à se placer en tant que root (ou avec sudo) pour pouvoir les lire.
En mettant l’utilisateur principal (le même qui a les droits ‘root’, en général), dans le groupe ‘adm’, vous permet de lire les logs en tant qu’“user”.[/quote]
adm : Le groupe adm est utilisé pour les tâches de surveillance du système. Les membres de ce groupe peuvent lire de nombreux journaux d’événements dans /var/log et peuvent utiliser xconsole. Historiquement, /var/log était /usr/adm (et plus tard /var/adm) d’où le nom du groupe.
Source : debian.org/doc/manuals/secur … 11.fr.html 23
Il me semble qu’il y a un outil a ne pas oublier quand on parle de log c’est tail qui permet de n’afficher que les dernières lignes, et quand on l’utilise comme ça :
# tail -qF /var/log/mail.log
Avant j’utilisais un petit script perso codé avec mes propres pieds pour m’envoyer les logs par email en mettant un flag WARNING dans le sujet du mail et tout et tout… Puis j’ai découvert logcheck et me suis dit : « Bordel il fait trop pitié mon script à coté de ce machin ! »
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 lecture
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