Consulter les logs de son serveur: quoi, où et que rechercher

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 :006

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 ?

EmplacementContenu
/var/log/alternatives.logLes 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/aptitudeLes logs d’aptitude. Contient toutes les actions demandées, même les abandonnées.
/var/log/auth.logLes 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.logLes logs du serveur de nom bind9, s’il sont activés.
/var/log/boot.logLes informations enregistrées lors du démarrage du système. Ce fichier n’est pas activé par défaut.
/var/log/btmpSemblable à /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/cronLes informations sur les tâches cron. Enregistrement à chaque fois que le démon cron (ou anacron) commence une tâche.
/var/log/daemon.logLes informations enregistrées par les différents daemons (processus) de fond qui fonctionnent sur le système.
/var/log/debugLes logs de debugging.
/var/log/dmesgLes messages du noyau Linux depuis le démarrage.
/var/log/dpkg.logLes informations sur les paquets installés ou retirés en utilisant la commande dpkg.
/var/log/fail2ban.logLes Ban/Unban et infos sur le programme (Error, Info, etc.) si fail2ban est installé.
/var/log/faillogLes échecs de connexion. # faillog -u root.
/var/log/kern.logLes informations enregistrées par le noyau. Utile pour débogguer un noyau personnalisé, par exemple.
/var/log/lastlogLes 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/messagesLes 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/syslogTous les messages, hormis les connexions des utilisateurs. Plus complet que /var/log/messages.
/var/log/user.logLes informations sur tous les journaux de niveau utilisateur.
/var/log/wtmpToutes les connexions et déconnexions: last -f /var/log/wtmp.
/var/log/Xorg.x.logLes 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

Laisser un commentaire