Rotation des logs Apache

Les logs sont une mine d’or pour comprendre le fonctionnement d’une application et débusquer les bogues vicieux. Il faut cependant veiller à ne pas les laisser grossir excessivement car cela ralenti progressivement l’application et fini parfois par la paralyser.

Sous Linux, on utilise généralement logrotate qui est simple à mettre en œuvre et efficace. Il permet de faire tourner les logs de n’importe quelle application.

Dans le cas particulier d’Apache, un redémarrage rechargement est nécessaire car sinon il n’écrit plus dans le nouveau fichier de log vierge. Cela peut-être gênant pour des serveurs fortement sollicités pour lesquels il est difficile de trouver une période sans charge.
Correction: Suite à une remarque judicieuse d’Eric Daspet sur Twitter, j’ai corrigé ce paragraphe.

Pour pallier à ce problème, l’utilitaire rotatelogs est livré avec Apache. Il est très simple à mettre en œuvre : il suffit de modifier la déclaration des fichiers de log ainsi :

CustomLog "|bin/rotatelogs logs/access.%Y-%m-%d-%H_%M_%S 10M" common
ErrorLog "|bin/rotatelogs logs/error.%Y-%m-%d-%H_%M_%S 10M"

Désormais, au lieu d’écrire les lignes de log dans un fichier, Apache les envoie à l’exécutable rotatelogs qui se charge de les stocker dans un fichier nommé en fonction de la date. Ici la rotation s’effectue lorsque le fichier atteint la taille de 10 Mo.

On peut également définir une durée comme critère de rotation. Dans l’exemple suivant, les logs seront tournés toutes les 24 heures :

CustomLog "|bin/rotatelogs logs/access.%Y-%m-%d-%H_%M_%S 86400" common
ErrorLog "|bin/rotatelogs logs/error.%Y-%m-%d-%H_%M_%S 86400"

L’avantage de rotatelogs est qu’il fonctionne également sous Windows ce qui peut-être pratique lorsqu’on doit faire tourner un Apache sur ce système d’exploitation.

En revanche, rotatelogs n’effectue aucune compression ni nettoyage des logs archives comme le fait logrotate. Il faut donc veiller à effectuer ces tâches de maintenance par un autre moyen sous peine de remplir inexorablement le disque-dur de la machine.

Ce contenu a été publié dans Boîte à outils. Vous pouvez le mettre en favoris avec ce permalien.

2 réponses à Rotation des logs Apache

Les commentaires sont fermés.