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.