Flux RSS

Attention: ce site n'est plus actualisé depuis septembre 2009
Le 26 février 2008
1 vote

Apprendre à lire les logs


Les logs sont des fichiers textes dans lesquels les divers logiciels journalisent leur activité. Il s’agit d’un journal de bord précis, fiable et très utile en cas de bug à priori incompréhensible. Les logs se trouvent dans le répertoire /var/log/.

$ ls /var/log/
acpid daemon.log dmesg.2.gz kern.log mail.log syslog wtmp
aptitude debug dmesg.3.gz lastlog mail.warn syslog.0
auth.log dmesg dpkg.log lpr.log messages syslog.1.gz
boot dmesg.0 faillog mail.err news user.log
btmp dmesg.1.gz fsck mail.info pycentral.log uucp.log

Le programme de journalisation s’appelle syslog : il se charge d’inscrire dans des fichiers les messages générés par le noyau et les services.

Chaque message possède une origine (facility) et une priorité. L’origine peut être un système ou un sous-système. Voici une liste des facilities intéressants pour un serveur :

Facility Explication
auth, authpriv, security authentification et sécurité
cron service cron (exécution périodique de commandes)
daemon processus démons, càd qui tournent en arrière-plan
ftp service ftp
kern pour kernel (noyau)
mail service email
syslog service syslogd
user processus lancés par les utilisateurs, excepté root
local0 à local7 messages du noyau, en fonction de leur niveau

Chaque facility dispose de priorités, càd un terme qui définit l’importance du message. Les priorités sont, par importance décroissance : emerg, alert, crit, error, warning, notice, info et debug. Les messages emerg (emergency, urgence) ne sont pas logués mais directement affichés sur le terminal des utilisateurs connectés (par exemple le reboot immédiat de la machine).

Le fichier de configuration de syslog est /etc/syslog.conf . Il indique pour chaque facility le fichier de destination en fonction de sa priorité. Dans l’exemple suivant, les messages relatifs à la sécurité et aux tentatives d’authentification (et non de connexion) sont inscrites dans le fichier /var/log/auth.log.

auth,authpriv.* /var/log/auth.log

Il existe également une version plus poussée de syslog : syslog-ng. Sa configuration se trouve dans /etc/syslog-ng/syslog-ng.conf et est semblable à celle de syslog.

Pour en revenir à ce qui nous intéresse ici, càd les logs pour chercher et comprendre l’origine d’une erreur, il faut tout d’abord déterminer la facility de cette erreur. Mais encore faut-il qu’elle existe : en effet, syslog ne log que les messages de programmes lui confiant cette gestion (en utilisation l’API syslog). Tous les programmes ne le font pas, et en particulier Apache qui définit en interne les chemins de log. Dans le cas d’Apache, les logs se trouvent dans /var/log/apache2/ ou /var/log/httpd/ et sont répartis entre les fichiers access.log (log principal) et error.log (log d’erreurs). En général, les logs de ces programmes se trouvent dans /var/log/<nom du programme>/.

Quelques fichiers logs de /var/log/

Ces fichiers sont ou non présents selon la configuration de syslog et donc selon la distribution choisie.

  • dmesg.log : messages du noyau lors du boot. La commande dmesg affiche la même chose, à une différence près : sa mémoire est cyclique, les nouvelles informations finiront par écraser les plus anciennes.
  • syslog : le fichier par défaut où atterrissent les messages envoyés par le noyau et les services, excepté les messages de DEBUG (débogage du noyau, encombrant et inutile pour les non développeurs)
  • auth.log : authentifications, càd les tentatives de connexion locale et distantes
  • daemon.log : messages relatifs aux démons en cours d’exécutions (programmes s’exécutant en tâche de fond)
  • messages : messages de priorité réduite (INFO, NOTICE, WARN)
  • lastlog : dernières connexions, ce fichier est à lire avec la commande lastlog
  • wtmp : même chose que lastlog mais avec plus d’informations, se lit avec la commande last
  • emerge.log et dpkg.log : logs des gestionnaires de paquets emerge (Gentoo) et apt (ou aptitude, qui utilisent dpkg) pour Debian/Ubuntu.

NB : on peut également trouver des fichiers se terminant par .numéro.gz : il s’agit d’archives crées par un programme chargé de faire tourner les logs (logrotate) afin de garder des fichiers utilisables (càd qui ne font pas 20Go au bout d’un an).






 Site web      Forums

CSS Valide !    Valid XHTML 1.0 Strict    Creative Commons License    serveur herberge par OVH
Mentions légales