mageekblog - WebLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearAffûter (un peu) awstatsurn:md5:2cec8f88cffdc74b8800006f547313f92009-04-22T09:34:00+02:002009-04-22T12:55:10+02:00mageekguyWebapacheawstatsFreeBSD<p>Dans sa configuration de base, <a href="http://awstats.sourceforge.net">awstats</a> est capable de faire ressortir des fichiers de logs un certain nombre d'informations.</p>
<p>Nous allons voir qu'en modifiant la configuration d'<a href="http://httpd.apache.org/docs/2.0/">apache</a> ainsi que celle d'<a href="http://awstats.sourceforge.net">awstats</a>, il est possible d'obtenir des statistiques encore plus intéréssantes.</p> <p>Il faut tout d'abord commencer par demander au serveur web de retenir plus d'informations au sujet des visiteurs du site.</p>
<p>Pour ce faire, avec <a href="http://httpd.apache.org/docs/2.0/">apache</a>, la première possibilité est d'activer le format <code><a href="http://httpd.apache.org/docs/2.0/logs.html">combine</a></code> pour le journal des visites du site à propos duquel nous désirons des statistiques.</p>
<p>En effet, par défaut, <a href="http://httpd.apache.org/docs/2.0/">apache</a> ne mémorise ni le navigateur utilisé par le visiteur, ni l'origine du visiteur.</p>
<p>La configuration relative au site ressemble alors à cela :</p>
<blockquote><pre><code><virtualhost 66.99.66.99:80=""><br /> ServerName blog.mageekbox.net<br /> DocumentRoot /path/to/blog.mageekbox.net<br /> CustomLog /var/log/www/blog.mageekbox.net-access.log <em>combine</em><br /></virtualhost><br /></code></pre></blockquote>
<p>Il faut ensuite modifier la configuration d'<a href="http://awstats.sourceforge.net">awstats</a> relative au site pour qu'il prenne en compte ce format :</p>
<blockquote><pre><code>LogFormat=1</code></pre></blockquote>
<p>Il est à noter qu'il est également possible de définir son propre format au niveau d'<a href="http://httpd.apache.org/docs/2.0/">apache</a>, totalement indépendant des formats par défaut, qu'il est également possible d'indiquer à <a href="http://awstats.sourceforge.net">awstats</a> via la même directive <code>LogFormat</code>.</p>
<p>Une fois <a href="http://httpd.apache.org/docs/2.0/">apache</a> redémarré, nous avons donc maintenant un peu plus d'informations à propos de nos visiteurs, puisqu'<a href="http://awstats.sourceforge.net">awstats</a> est maintenant capable de déterminer le type de navigateur utilisé par nos visiteurs, ainsi que leur adresse d'origine.</p>
<p>Cependant, il est possible de faire encore mieux, en géolocalisant nos visiteurs à partir de leur adresse IP.</p>
<p>Pour cela, il faut activer le plug-in <code>geoip</code> en ajoutant la ligne suivante dans le fichier de configuration d'awstats :</p>
<blockquote><pre><code>LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"<br /></code></pre></blockquote>
<p>Cependant, ce n'est pas suffisant, car il faut également installé <code>geoip</code> sur le serveur.
</p>
<p>Sous <a href="http://www.freebsd.org">FreeBSD</a>, cela se fait de la manière classique :</p>
<blockquote><pre><code>cd /usr/ports/net/p5-Geo-IP<br />sudo make install clean</code></pre></blockquote>
<p>A partir de ce moment, le pays d'origine de la connexion de nos visiteur pourra être déterminé.</p>
<p>Nous allons maintenant voir qu'il est possible d'affiner nos statistiques en affinant la configuration d'<a href="http://awstats.sourceforge.net">awstats</a>.</p>
<p>Par défaut, ce dernier ne prend pas en compte les <acronym title="Uniform Resource Locator">url</acronym> contenant des <code>?</code> sont ignorées.</p>
<p>Dans le cadre d'un site dynamique tel que ce blog, c'est un handicap puisque les statistiques générée dans ce cas ne contiennent pas d'informations à propos des pages visitées.</p>
<p>Pour résoudre ce problème, il suffit de passer à 1 la valeur du paramètre <code>URLWithQuery</code> dans le fichier de configuration d'<a href="http://awstats.sourceforge.net">awstats</a>.</p>
<p>Enfin, il est possible de dépolluer nos statistiques.</p>
<p>Il arrive que nous ne souhaition pas prendre en compte certaines <acronym title="Uniform Resource Locator">url</acronym> d'un site, comme, dans le cas de ce blog, celles relatives à l'interface d'administration.</p>
<p>L'utilisation du paramêtre <code>SkipFiles</code> permet donc de les exclure.</p>
<p>Ainsi, l'ajout de <code>SkipFiles="REGEX[^\/admin]"</code> permet de ne pas prendre en compte dans les statistiques toutes les <acronym title="Uniform Resource Locator">url</acronym> commencant par <code>/admin<code>.</code></code></p>
<p>Enfin, <a href="http://awstats.sourceforge.net">awstats</a> calcule un certain nombre de statistiques qui ne sont pas affichées par défaut au niveau de son interface web.</p>
<p>En conséquence, je ne saurais trop vous conseiller d'aller lire consciencieusement son fichier de configuration par défaut afin d'activer ou de désactiver dans vos propres fichiers de configuration l'affichage des statistiques qui vous intéresse, d'autant que le fichier par défaut est abondament commenté.</p>http://blog.mageekbox.net/?post/2009/04/16/Aff%C3%BBter-un-peu-awstats#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/43Installation d'awstats 6.8 sous FreeBSD 7.1urn:md5:b5f5c682475fe226168f73a5add2b6192009-04-01T12:29:00+02:002009-04-22T12:54:12+02:00mageekguyWebapacheawstatsFreeBSD<p><a href="http://awstats.sourceforge.net/">awstats</a> est un analyseur de fichiers de log.</p>
<p>Il permet de traiter des fichiers en provenance :</p>
<ul>
<li>d'un serveur web.</li>
<li>d'un serveur de mail.</li>
<li>d'un serveur <acronym title="File Transfert Protocol">ftp</acronym>.</li>
<li>d'un serveur de streaming.</li>
</ul>
<p>Dans le cadre de ce billet, nous allons nous intéresser à la mise en oeuvre de sa version 6.8 dans le cade d'un serveur web fonctionnant sous <a href="http://www.freebsd.org">FreeBSD</a> 7.1.</p> <p>Nous allons donc voir tout d'abord comment l'installer, puis comment le configurer et enfin détailler la configuration nécéssaire pour accéder aux rapports qu'il génére via le serveur web <a href="http://httpd.apache.org/docs/2.0/">apache 2.0</a>.</p>
<h2>Première étape : l'installation</h2>
<p>L'installation est triviale.</p>
<p>En effet, après avoir <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html">mis à jour</a> vos <a href="http://www.freebsd.org/ports/"><code>ports</code></a> afin de profiter de la dernière version, il suffit de faire la procédure d'installation habituelle :</p>
<blockquote><pre><code># cd /usr/ports<br /># make update<br /># cd www/awstats<br /># make install clean<br /></code></pre></blockquote>
<h2>Deuxième étape : la configuration</h2>
<p>Le <code>ports</code> d'<a href="http://awstats.sourceforge.net/">awstats</a> installe ce dernier dans <code>/usr/local/www/awstats</code>.</p>
<p>Cependant, il ne fait aucune configuration particulière.</p>
<p>C'est à vous de créer les fichiers de configuration et de les initialiser correctement.</p>
<p>Heureusement, les concepteurs d'<a href="http://awstats.sourceforge.net/">awstats</a> fournissent un modèle de fichiers de configuration.</p>
<p>Nous allons donc commencer par créer le répertoire qui contriendra les fichiers de configuration, puis nous allons copier le modèle dans ce répertoire :</p>
<blockquote><pre><code># sudo mkdir /usr/local/etc/awstats<br /># sudo cp /usr/local/www/awstats/cgi-bin/awstats.model.conf /usr/local/etc/awstats.conf<br /></code></pre></blockquote>
<p>Une fois la manipulation effectué, il suffit d'ouvrir le fichier <code>/usr/local/etc/awstats.conf</code> avec votre éditeur de texte préféré.</p>
<p>Les paramètres à modifier sont par ordre d'apparition :</p>
<ol>
<li><code>LogFile</code>, qui doit contenir le chemin d'accès au fichier de log que vous souhaitez analyser.</li>
<li><code>LogType</code>, qui doit indiquer le type de type de fichier de log, en l'occurence <code>W</code>.</li>
<li><code>LogFormat</code>, qui permet d'indiquer ou de définir le format du fichier de log.</li>
<li><code>SiteDomain</code>, qui défini le nom du site auquel se rapporte le fichier de log.</li>
<li><code>HostAliases</code>, qui défini les alias du site auquel se rapporte le fichier de log.</li>
<li><code>DnsLookup</code>, qui indique à l'analyseur qu'il doit ou non résoudre les adresses IP figurant dans le fichier de log.</li>
<li><code>DirData</code>, qui vous permet d'indiquer le chemin d'accès du répertoire qui contiendra les fichiers générés par l'analyseur.</li>
</ol>
<p>Si vous désirez plus de détails sur ces différents paramètres, je vous renvoie au fichier de configuration qui est abondament commenté.</p>
<p>Il est également possible de configurer beaucoup plus finement l'analyseur en modifiant d'autres paramètres, mais ces derniers ne sont pas indispensables à son fonctionnement.</p>
<p>Si vous désirez des statistiques plus fines, je vous conseille donc de lire attentivement le fichier de configuration.</p>
<p>Un mot cependant sur le paramètre <code>DirData</code>.</p>
<p>Vous pouvez lui indiquer l'emplacement de votre choix, mais je ne saurais trop vous conseillez de créer et d'utiliser le répertoire <code>/var/db/awstats</code>, afin de respecter l'esprit de l'arborescence de <a href="http://www.freebsd.org">FreeBSD</a>.</p>
<blockquote><pre><code># cd /var/db<br /># sudo mkdir awstats<br /></code></pre></blockquote>
<p>Une fois le fichier de configuration correctement modifié, il faut vérifier le bon fonctionnement de l'analyseur.</p>
<p>Pour ce faire, il suffit d'éxécuter le script en perl chargé d'analyser le fichier de log :</p>
<blockquote><pre><code># cd /usr/local/www/awstats/tools<br /># sudo ./awstats_updateall.pl -configdir=/usr/local/etc/awstats now<br /></code></pre></blockquote>
<p>Si tout est correctement configuré, le script se lance et peut s'éxécuter pendant une durée courte ou très longue, suivant la taille de votre fichier de log.</p>
<p>Dans le cas contraire, un ou plusieurs messages d'erreur explicites sont affichés.</p>
<p>Une fois que les éventuels problèmes ont été résolus et que le script s'éxécute de manière satisfaisante, il reste à l'ajouter à la <code>crontab</code> de votre système, en y ajoutant la ligne :</p>
<blockquote><p><code>0 */4 * * * root /usr/local/www/awstats/tools/awstats_updateall.pl -configdir=/usr/local/etc/awstats/ now</code></p>
</blockquote>
<p>Ainsi, le script d'analyse sera éxécuté toute les 4 heures.</p>
<h2>Troisième étape : la configuration d'apache</h2>
<p>Nous disposons donc maintenant de statistiques mais nous ne pouvons pas les visualiser.</p>
<p>Pour pouvoir le faire, il faut configurer votre serveur web pour qu'il puisse utiliser <a href="http://awstats.sourceforge.net/">awstats</a>.</p>
<p>Nous allons supposer par la suite que vous disposez du serveur web <a href="http://httpd.apache.org/docs/2.0/">apache 2.0</a>.</p>
<p>De plus, nous allons supposer que vous voulez utilisez un <code>VirtualHost</code> pour permettre la consultation des statistiques.</p>
<p>Pour ce faire, il faut commencer par créer le fichier de configuration :</p>
<blockquote><pre><code># cd /usr/local/etc/apache2/Includes<br /># > awstats.conf<br /></code></pre></blockquote>
<p>Une fois le fichier créé, il faut à nouveau utiliser votre éditeur pour y insérer les lignes suivante :</p>
<blockquote><pre><code><VirtualHost 22.33.44.55:80><br /> ServerName awstats.mageekbox.votredomaine.tld<br /> DocumentRoot /usr/local/www/awstats<br /> CustomLog /var/log/www/awstats.votredomaine.tld-access.log common<br /> ErrorLog /var/log/www/awstats.votredomaine.tld-error.log<br /> #<br /> # Directives to allow use of AWStats as a CGI<br /> #<br /> Alias /awstatsclasses "/usr/local/www/awstats/classes/"<br /> Alias /awstatscss "/usr/local/www/awstats/css/"<br /> Alias /awstatsicons "/usr/local/www/awstats/icons/"<br /> ScriptAlias / "/usr/local/www/awstats/cgi-bin/"<br /> #<br /> # This is to permit URL access to scripts/files in AWStats directory.<br /> #<br /> <Directory "/usr/local/www/awstats/"><br /> Options None<br /> AllowOverride None<br /> Order allow,deny<br /> Allow from all<br /> </Directory><br /></VirtualHost><br /></code></pre>
</blockquote>
<p>Une fois le fichier de configuration édité et sauvegardé, il faut ensuite vérifier sa syntaxe :</p>
<blockquote><pre><code># apachctl configtest<br /></code></pre></blockquote>
<p>Si le test des fichiers de yntaxe est positif, il ne reste plus qu'à demander au serveur web de relire son fichier de configuration :</p>
<blockquote><pre><code># apachctl graceful<br /></code></pre></blockquote>
<p>Le site permettant de visualisez vos statistique est alors visible à l'adresse <code>http://awstats.votredomaine.tld/awstats.pl</code>.</p>
<p>Evidement, vous aurez pris soin de configurer la zone <acronym title="Domain Name Server">DNS</acronym> de votre domaine en conséquence avant de faire tout cela.</p>http://blog.mageekbox.net/?post/2009/04/01/Installation-d-awstats-6.8-sous-FreeBSD-7.1#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/39