<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FApache%2FGestion_des_logs</id>
	<title>Technique/Apache/Gestion des logs - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FApache%2FGestion_des_logs"/>
	<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/Apache/Gestion_des_logs&amp;action=history"/>
	<updated>2026-05-15T22:01:11Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.jordan-lenuff.com/index.php?title=Technique/Apache/Gestion_des_logs&amp;diff=619&amp;oldid=prev</id>
		<title>Jordan : Page créée avec « == Présentation == Cette page a pour objet de décrire comment implémenter la gestion des logs dans Apache.  == Log par proxy == Pour logger les adresses IP distantes, q… »</title>
		<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/Apache/Gestion_des_logs&amp;diff=619&amp;oldid=prev"/>
		<updated>2020-05-14T09:22:22Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « == Présentation == Cette page a pour objet de décrire comment implémenter la gestion des logs dans Apache.  == Log par proxy == Pour logger les adresses IP distantes, q… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Présentation ==&lt;br /&gt;
Cette page a pour objet de décrire comment implémenter la gestion des logs dans Apache.&lt;br /&gt;
&lt;br /&gt;
== Log par proxy ==&lt;br /&gt;
Pour logger les adresses IP distantes, qui passent par un proxy donc, il faut ajouter la directive suivante dans le fichier &amp;lt;code&amp;gt;/local/www/current/conf/httpd.conf&amp;lt;/code&amp;gt; dans la section &amp;lt;code&amp;gt;log_config_module&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot; highlight=&amp;quot;6-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;IfModule log_config_module&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
	LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot;&amp;quot; combined&lt;br /&gt;
	LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; common&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IfModule proxy_module&amp;gt;&lt;br /&gt;
		LogFormat &amp;quot;%{X-Forwarded-For}i %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot;&amp;quot; proxy&lt;br /&gt;
	&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IfModule logio_module&amp;gt;&lt;br /&gt;
		# You need to enable mod_logio.c to use %I and %O&lt;br /&gt;
		LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %I %O&amp;quot; combinedio&lt;br /&gt;
	&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette ligne permet de déclarer un format de log spécifique, nommé &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt;. La variable &amp;lt;code&amp;gt;%{X-Forwarded-For}i&amp;lt;/code&amp;gt; représente l'adresse IP distante qui a envoyé la requête au proxy.&lt;br /&gt;
&lt;br /&gt;
Une fois ce format déclaré, il faut l'appliquer aux requêtes &amp;quot;proxyfiées&amp;quot;. Pour ce faire, dans la section &amp;lt;code&amp;gt;VirtualHost&amp;lt;/code&amp;gt; correspond à l'application à logger, il faut ajouter/modifier les lignes suivantes :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot; highlight=&amp;quot;3-5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
	SetEnvIf X-Forwarded-For &amp;quot;^.*\..*\..*\..*&amp;quot; forwarded	&lt;br /&gt;
	CustomLog &amp;quot;|/usr/sbin/rotatelogs -n 5 /data/logs/${url_app}/${url_app}_http_access.log 10M&amp;quot; proxy env=forwarded&lt;br /&gt;
	CustomLog &amp;quot;|/usr/sbin/rotatelogs -n 5 /data/logs/${url_app}/${url_app}_http_access.log 10M&amp;quot; combined env=!forwarded&lt;br /&gt;
	ErrorLog &amp;quot;|/usr/sbin/rotatelogs -n 5 /data/logs/${url_app}/${url_app}_http_error.log 10M&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La directive &amp;lt;code&amp;gt;SetEnvIf&amp;lt;/code&amp;gt; permet de définir une variable &amp;lt;code&amp;gt;forwarded&amp;lt;/code&amp;gt; uniquement si un en-tête &amp;lt;code&amp;gt;X-Forwarded-For&amp;lt;/code&amp;gt; est déclaré dans la requête et qu'il respecte l'expression régulière &amp;lt;code&amp;gt;^.*\..*\..*\..*&amp;lt;/code&amp;gt;. Plus d'informations sur [https://httpd.apache.org/docs/2.4/fr/mod/mod_setenvif.html#setenvif la documentation officielle d'Apache sur la directive SetEnvIf].&lt;br /&gt;
&lt;br /&gt;
La partie &amp;lt;code&amp;gt;proxy env=forwarded&amp;lt;/code&amp;gt; indique d'utiliser le format de log &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; dans le cas ou la variable &amp;lt;code&amp;gt;forwarded&amp;lt;/code&amp;gt; existe.&lt;br /&gt;
&lt;br /&gt;
La partie &amp;lt;code&amp;gt;combined env=!forwarded&amp;lt;/code&amp;gt; indique d'utiliser le format de log &amp;lt;code&amp;gt;combined&amp;lt;/code&amp;gt; dans le cas ou la variable &amp;lt;code&amp;gt;forwarded&amp;lt;/code&amp;gt; n'existe pas.&lt;br /&gt;
&lt;br /&gt;
== Rotation des logs ==&lt;br /&gt;
Il est possible d'intégrer une rotation des logs directement dans la configuration Apache.&lt;br /&gt;
&lt;br /&gt;
Pour ce faire, il faut avant tout localiser la commande '''rotatelogs''' sur le serveur dans le dossier des binaires d'Apache avec la commande suivante :&lt;br /&gt;
 find /local/www/current -name rotatelogs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple de retour :&amp;lt;/u&amp;gt;&lt;br /&gt;
 /local/www/current/bin/rotatelogs&lt;br /&gt;
&lt;br /&gt;
Une fois la commande localisée, adapter la déclaration des fichiers de logs dans la configuration Apache.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple de configuration de rotation de logs :&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
	ServerName pprd-appli.mydomain.com&lt;br /&gt;
	DocumentRoot &amp;quot;/data/www/PREPROD/appli/&amp;quot;&lt;br /&gt;
	ErrorLog &amp;quot;|/local/www/current/bin/rotatelogs -l -f -n 15 /data/logs/${app_name}/${url_app}_http_error.log 10M&amp;quot;&lt;br /&gt;
	CustomLog &amp;quot;|/local/www/current/bin/rotatelogs -l -f -n 15 /data/logs/${app_name}/${url_app}_http_access.log 10M&amp;quot; combined&lt;br /&gt;
	LogLevel debug&lt;br /&gt;
	&amp;lt;Directory &amp;quot;/data/www/PREPROD/appli/&amp;quot;&amp;gt;&lt;br /&gt;
		DirectoryIndex index.php&lt;br /&gt;
		Options FollowSymLinks&lt;br /&gt;
		AllowOverride All&lt;br /&gt;
		Require all granted&lt;br /&gt;
	&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les logs sont paramétrés pour ne tourner que sur 15 fichiers d'une taille maximale de 10M.&lt;br /&gt;
&lt;br /&gt;
Plus d'informations sur la documentation officielle d'Apache : https://httpd.apache.org/docs/2.4/fr/programs/rotatelogs.html.&lt;/div&gt;</summary>
		<author><name>Jordan</name></author>
		
	</entry>
</feed>