Nous contacter

Apache log : comment bien paramétrer ses logs ?

Un serveur apache bien géré, est un serveur dont on peut consulter les logs, de l'installation à la maintenance courante en passant par le seo, ces fichiers vous serviront tous les jours.

A quoi servent les logs?

Les logs d'apache vous permettent de savoir quelles sont les pages qui sont accédées et par qui. On parle ici du fichier access.log dans votre serveur. Ils vous permettent aussi de constater les erreurs lors de la navigation sur votre site, fichiers manquantsurl inaccessibles. Ces informations sont stockés dans error.log. L'analyse des logs est en SEO un point important d'une plateforme d'intégration continue ou encore de l'optimisation du crawl de google de votre site.

Comment les mettre en place ?

La déclaration des logs se fait dans le fichier de configuration de votre virtual host apache. Une déclaration standard se fait ainsi :

ErrorLog "/home/yourfolder/log/error.log"
LogLevel notice
CustomLog "/home/yourfolder/log/access.log" combined

Les niveaux d'erreurs

Le paramètre LogLevel peut prendre plusieurs valeurs:

  • "emerg" Le plus haut niveau d'erreur (type urgence)
  • "alert" Niveau d'alerte élevé, il faut rapidment réagir : fichier inaccessible à cause de droit utilisateurs par exemple.
  • "crit" Conditions critiques (le socket n'a pu être trouvé)
  • "error" Erreurs de type script (problème dans les headers)
  • "warn" Avertissements (problème de type process linux)
  • "notice" Evènement important mais normal, souvent de type erreur mineur de code.

Le format des logs

Il est possible de spécifier le format des logs que vous désirez, pour ma part je vous recommande de vous référer à la page suivante: https://httpd.apache.org/docs/trunk/fr/mod/mod_log_config.html#formats ou d'acheter le livre Apache 2.4 de Nicolas Martinez.

La rotation des logs

Vous allez rapidement vous rendre compte que les logs vont rapidement générer des fichier volumineux. Il est possible de mettre en place une rotation, c'est à dire de définir la durée de vie de chaque fichiers. Soit en terme de temps d'enregistrement, soit en terme de taille maximum. Vous pouvez par exemple vous baser sur la syntaxe suivante:

ErrorLog "|/usr/sbin/rotatelogs /home/pvalibus/log/prod/apache2/error.log.%Y-%m-%d-%H_%M_%S 5M"
LogLevel notice

Isoler le crawl des robots

Ce cas de configuration est clairement orienté SEO, il vous permettra de stocker dans un fichier séparé le passage des robots des moteurs de recherche sur votre site. C'est utile si vous voulez vérifier les cas d'erreurs par exemple ou encore analyser les différents indexeurs qui parcourent votre site.

SetEnvIf User-Agent ".*bot*" seobot
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" variables
CustomLog "|/usr/sbin/rotatelogs /home/pvalibus/log/prod/apache2/seo/seo.log.%Y-%m-%d-%H_%M_%S 604800" variables env=seobot

Comme vous le voyez, on se base ici sur le contenu du mot ".*bot*" dans les user-agent naviguant sur votre site. On va également isoler les logs dans un fichier séparé afin de faciliter leur analyse.

Livre

Découvrez les best practices en SEO

Téléchargez notre livre blanc SEO !