[Apache] Ne pas logguer les accès à /server-status

Ce matin en faisant un petit ménage sur mon serveur, j’ai trouvé qu’Apache me générait un peu plus de logs que d’habitude. Et pour cause…

J’utilise un outil de monitoring dont je vous parlerai prochainement, et cet outil vient consulter la page http://localhost/server-status toutes les minutes ! Du coup, toutes les 60 secondes :

127.0.0.1 - - [06/Nov/2013:12:12:01 +0100] "GET //server-status?auto HTTP/1.1" 200 512 "-" "libwww-perl/6.05"

Cette page générée par mod_status permet aux administrateurs d’avoir un aperçu des performances de leur serveur Apache en temps réel (d’où l’utilisation de cette page par mon outil de monitoring). Il me semble que cette page n’est pas accessible depuis l’extérieur mais seulement depuis localhost. Pour les curieux, la documentation Apache à propos de mod_status est très bien fournie.

C’est bien tout ça, mais tu nous expliques ?

En fait c’est très simple, il suffit d’utiliser le module Apache mod_setenvif qui va nous permettre de définir des variables d’environnement en fonction des attributs de la requête. Bingo, on veut filtrer tout ce qui se termine par "/server-status".

Voyez plutôt la modification à apporter à votre virtual host :

<VirtualHost *:80>
        [...]
 
        # On désactive les logs pour les accès à /server-status
        SetEnvIf Request_URI "^/server-status$" dontlog
        SetEnvIf Request_URI "^$OPT_LB_STATS_URI$" dontlog
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
 
        [...]
</VirtualHost>

Tout ce qui contiendra dontlog sera ensuite exclu des logs 🙂

Des bisous !

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email