Filtrer les logs Apache / Logging conditionnel

Dernière mise à jour le 16 novembre 2009 à 13:05 par marlalapocket
Publié par Jeff
Les logs du serveur web Apache sont généralement très verbeux, c'est-à-dire qu'ils contiennent tous les hits (fichiers images, feuilles de style, javascript, fils RSS, etc.).

Si vous ne souhaitez logger que les pages web il est possible de mettre en place une journalisation conditionnelle, permettant de ne pas logger certaines pages web. Pour ce faire, il suffit de définir une variable d'environnement selon certains critères, puis de demander au serveur de ne pas écrire dans les logs lorsque cette variable existe :

SetEnvIf Request_URI "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|gz|swf|txt)$" dontlog
SetEnvIf Request_URI "^\/rss\/" dontlog

CustomLog /var/log/apache/access.log combined env=!dontlog


Dans l'exemple ci-dessus, les requêtes correspondant à des fichiers .ico, .pdf, .flx, .jpg, .jpeg, .png, .gif, .js, .css, .gz, .swf, .txt ne sont pas écrites dans les logs. Idem pour toutes les requêtes correspondant au répertoire /rss/

Note :


Pour pouvoir faire cela, le module mod_setenvif doit être chargé.
La commande apache2 -M (ou httpd -M, à vérifier en fonction de votre serveur apache installé ou distribution) permet de voir les modules chargés.

Voici sous Debian Etch
root@debian:~# apache2 -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK
Meilleures réponses pour « Filtrer les logs Apache / Logging conditionnel » dans :
[Apache] Analyse du trafic web en temps réel Voir Le serveur web Apache possède des outils natifs permettant d'analyser le trafic web : Les fichiers journaux (logs), exploitables par des logiciels spécialisés afin de dresser une analyse complète de la fréquentation La sortie "server-status" que...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Linux - Gentoo - Installation de Apache2/PHP VoirComme toutes les installations au niveau de Gentoo, Portage se chargera de l'installation des packages et la gestion dépendances. Installation d'Apache2 L'installation d'Apache2 démarrera avec l'exécution de la commande emerge apache Pour...
Apache - Rendre le listing des fichiers possible VoirProblème Est-t-il possible d'outrepasser le fichier d'index (index.html) et d'avoir toujours accès au listing d'un dossier sous Apache ? Solution Oui, il suffit de mettre la déclaration suivante dans le fichier httpd.conf : Options -Indexes
Apache - Les fichiers .htaccess VoirLes fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire...
Installation d'un serveur Web sous Linux (Apache, PHP et MySQL) VoirIntroduction Un serveur web est un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque. Cette fiche pratique explique comment installer le serveur web Apache sur un système de type...
Les filtres graphiques VoirFiltrage Le filtrage consiste à appliquer une transformation (appelée filtre) à tout ou partie d'une image numérique en appliquant un opérateur. On distingue généralement les types de filtres suivants : les filtres passe-bas, consistant à atténuer...