<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Another Home Page Blog - Perl</title><link href="https://blog.anotherhomepage.org/" rel="alternate"></link><link href="https://blog.anotherhomepage.org/feed/tag/Perl/atom" rel="self"></link><id>https://blog.anotherhomepage.org/</id><updated>2018-04-23T09:30:00+02:00</updated><entry><title>CentOS 7 : installation vraiment minimale - errata</title><link href="https://blog.anotherhomepage.org/post/2018/04/23/centos-7-installation-vraiment-minimale-errata/" rel="alternate"></link><published>2018-04-23T09:30:00+02:00</published><updated>2018-04-23T09:30:00+02:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2018-04-23:/post/2018/04/23/centos-7-installation-vraiment-minimale-errata/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/2018/samebutdifferent.jpg"&gt;Dans un billet précédent, j'avais réalisé une &lt;a href="/post/centos-7-installation-vraiment-minimale"&gt;installation vraiment minimale de CentOS 7&lt;/a&gt;. Si globalement le cahier des charges était respecté, je me suis heurté à quelques petites déconvenues, je me suis donc dit qu'un billet sous forme d'errata ne serait pas de trop.&lt;/p&gt;
&lt;h3&gt;SELinux&lt;/h3&gt;
&lt;p&gt;Bon, d'accord, SELinux est probablement …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;&amp;quot;" src="https://blog.anotherhomepage.org/public/2018/samebutdifferent.jpg"&gt;Dans un billet précédent, j'avais réalisé une &lt;a href="/post/centos-7-installation-vraiment-minimale"&gt;installation vraiment minimale de CentOS 7&lt;/a&gt;. Si globalement le cahier des charges était respecté, je me suis heurté à quelques petites déconvenues, je me suis donc dit qu'un billet sous forme d'errata ne serait pas de trop.&lt;/p&gt;
&lt;h3&gt;SELinux&lt;/h3&gt;
&lt;p&gt;Bon, d'accord, SELinux est probablement l'un des composants de CentOS, Fedora et RHEL le plus détesté (ou est-ce systemd ?), car nombreux sont encore les tutoriaux qui commencent par demander de désactiver celui-ci (à tort). Bref, si comme moi vous vous attendez à ce que votre système minimaliste soit paramétré en "Enforcing" (après tout c'est marqué dans le kickstart), pas de chance. Tapez 20 fois la commande &lt;code&gt;setenforce Enforcing&lt;/code&gt; si vous voulez, la réponse sera la même : non.&lt;/p&gt;
&lt;p&gt;Pourquoi ? Parce que votre serviteur, en allant tailler dans les paquets à la tronçonneuse, s'est débarrassé des politiques SELinux. Sans politique, cela fonctionne moins bien. Comment on les obtient ? En installant deux paquets : &lt;code&gt;selinux-policy&lt;/code&gt; et &lt;code&gt;selinux-policy-targeted&lt;/code&gt;. N'envisagez pas un seul instant de n'installer que le premier : le système se bloquera au démarrage.&lt;/p&gt;
&lt;h3&gt;scp&lt;/h3&gt;
&lt;p&gt;Quand on est sur une machine serveur, il n'est a priori pas nécessaire d'installer un quelconque client, sauf cas exceptionnel et identifié. En voici un : sans installer le paquet &lt;code&gt;openssh-clients&lt;/code&gt; sur mon serveur minimaliste, je ne peux pas faire de scp vers celui-ci. Je suppose que le binaire scp doit être appelé à un moment quelconque côté serveur, mais toujours est-il que sans, bein ça ne fonctionne pas.&lt;/p&gt;
&lt;h3&gt;Perl et la locale&lt;/h3&gt;
&lt;p&gt;Celui-ci est assez tordu et concerne les paramétrages de langue. Il se trouve qu'après avoir installé Perl sur ce serveur minimaliste, j'ai voulu lancer un script utilisant ce langage. J'ai eu droit, durant les scripts, à un message de ce genre :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;perl:&lt;span class="w"&gt; &lt;/span&gt;warning:&lt;span class="w"&gt; &lt;/span&gt;Falling&lt;span class="w"&gt; &lt;/span&gt;back&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;standard&lt;span class="w"&gt; &lt;/span&gt;locale&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;C&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Alors le pourquoi exact, je ne suis toujours pas certain, je suspecte qu'il manque un paquet et que celui-ci (toujours pas identifié) fait un paramétrage particulier, toujours est-il que je me voyais mal &lt;a href="https://stackoverflow.com/questions/2499794/how-to-fix-a-locale-setting-warning-from-perl" title="&amp;quot;Stackoverflow"&gt;modifier ma configuration OpenSSH&lt;/a&gt; pour aller jouer avec les variables d'environnement exportées par ce dernier. J'ai préféré finalement &lt;a href="https://qiita.com/Kaisyou/items/9c2c5f5e1b28c24e91b7" title="&amp;quot;CentOS7"&gt;ajouter deux petites lignes à /etc/environment&lt;/a&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;LANG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.utf-8
&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.utf-8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cela force le système en anglais américain, en UTF-8.&lt;/p&gt;
&lt;h3&gt;Les logs&lt;/h3&gt;
&lt;p&gt;Bon alors celle-là, elle est fantastique : rsyslog n'est du coup plus installé par défaut et certains logiciels n'envoient plus de log, comme OpenSSH : j'ai voulu diagnostiquer des erreurs de connexion SSH et je n'avais pas de fichier &lt;code&gt;/var/log/secure&lt;/code&gt; ! En effet, par défaut OpenSSH sous CentOS utilise le protocole syslog pour fournir ses logs. A noter aussi que logrotate manquait, ce qui aurait pu s'avérer plus dramatique au bout de quelques mois sur une machine de production.&lt;/p&gt;
&lt;h3&gt;C'est tout ?&lt;/h3&gt;
&lt;p&gt;Ce n'est probablement que le début. Je me rends compte à l'usage qu'il me manque pas mal de choses de mon petit confort (vim, less, tmux...). Un autre paquet que je n'ai pas encore réinstallé est NetworkManager, à voir si cela devient vraiment pratique.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://unsplash.com/photos/PtgLGdMzi-Y" title="&amp;quot;Same"&gt;Adam Sherez - Same but different&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 15/06/2018 06:47 par &lt;a href="http://www.standardtelephonique.org/"&gt;Alain C&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Merci pour ton tuto ! Perso je me verrais mal bosser sans NetworkManager mais je pense que c'est facile à ré-installer une fois que CentOS 7 est ON ? Non ?
Au plaisir,
Alain&lt;/p&gt;
&lt;h3&gt;Le 16/06/2018 12:12 par Nils&lt;/h3&gt;
&lt;p&gt;Merci de ton commentaire Alain ! Pour ce qui est de l’installation de NetworkManager sur un système CentOS 7 existant, oui c’est facile, il suffit d’utiliser yum pour les packages ! En revanche si de nombreuses configurations réseau particulières ont été faites (bridge, bonding...) ça sera un peu plus coton.&lt;/p&gt;
&lt;p&gt;Personnellement j’ai connu les versions précédentes de CentOS et de Fedora, où NetworkManager n’était pas forcément présent, donc je n’aurais pas de problème sans ;)&lt;/p&gt;
&lt;h3&gt;Le 20/06/2018 06:33 par Alain C&lt;/h3&gt;
&lt;p&gt;Ok super ! Merci pour ta réponse je vais essayer :)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="installation"></category><category term="locale"></category><category term="openssh"></category><category term="Perl"></category><category term="Red Hat"></category><category term="RHEL"></category><category term="scp"></category><category term="SELinux"></category><category term="ssh"></category></entry><entry><title>Ajouter des robots dans Awstats</title><link href="https://blog.anotherhomepage.org/post/2011/11/21/Ajouter-des-robots-dans-Awstats/" rel="alternate"></link><published>2011-11-21T09:30:00+01:00</published><updated>2011-11-21T09:30:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-11-21:/post/2011/11/21/Ajouter-des-robots-dans-Awstats/</id><summary type="html">&lt;p&gt;Aujourd'hui un nouvel épisode de mon outil de statistiques web du moment, Awstats. Souvenez-vous, nous avons déjà rencontré ce logiciel à trois reprises :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/2011/01/31/awstats"&gt;lors d'un premier billet&lt;/a&gt; d'introduction et de configuration ;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/2011/02/14/utilisation-des-plugins-awstats"&gt;pour activer des plugins&lt;/a&gt; afin d'améliorer les statistiques ;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/2011/02/28/ajouter-ses-sections-personnalisees-dans-awstats"&gt;mais aussi lors de l'ajout de sections personnalisées&lt;/a&gt; spécifiques à votre …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Aujourd'hui un nouvel épisode de mon outil de statistiques web du moment, Awstats. Souvenez-vous, nous avons déjà rencontré ce logiciel à trois reprises :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/2011/01/31/awstats"&gt;lors d'un premier billet&lt;/a&gt; d'introduction et de configuration ;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/2011/02/14/utilisation-des-plugins-awstats"&gt;pour activer des plugins&lt;/a&gt; afin d'améliorer les statistiques ;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/2011/02/28/ajouter-ses-sections-personnalisees-dans-awstats"&gt;mais aussi lors de l'ajout de sections personnalisées&lt;/a&gt; spécifiques à votre site internet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aujourd’hui attardons-nous sur une autre possibilité d'Awstats : la détection des robots et moteurs de recherches. Si vous avez déjà des statistiques en place, vous aurez noté que vous disposez d'une rubrique “Visiteurs Robots/Spiders” dans votre page. Awstats ne peut pas connaître tous les robots sur le marché, de nouveaux sont créés tandis que d'autres disparaissent. Certains sont dédiés à des moteurs de recherche, d'autres sont des logiciels téléchargeables, pour effectuer des recherches ou créer un aggrégateur de flux RSS. Lorsqu'Awstats repère un robot qu'il ne connait pas, il peut l'afficher de deux manières : “Unknown robot (identified by 'bot*')” ou bien “Unknown robot (identified by '*bot')”. Vous comprenez donc qu'il cherche juste le mot “bot” dans le &lt;a href="https://fr.wikipedia.org/wiki/User-agent" title="User-agent"&gt;User-agent&lt;/a&gt; laissé par votre visiteur dans les logs de votre serveur web.&lt;/p&gt;
&lt;p&gt;Si vous regardez souvent les logs de votre serveur web (activité qui peut semble à première vue excentrique, mais Ô combien intéressante en réalité), vous trouverez sans doute un robot qui n'est pas connu d'Awstats. Ce billet prend l'exemple avec &lt;a href="http://git.etoilebsd.net/cplanet/" title="cplanet"&gt;cplanet&lt;/a&gt;, un aggrégateur RSS utilisé en particulier par un certain &lt;a href="http://planet.etoilebsd.net/"&gt;planet BSD francophone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Awstats stocke les noms des robots qu'il connaît dans un fichier nommé “robots.pm”. Ce fichier, dans le cas d'une installation via pkgsrc sous NetBSD se trouve à l'endroit suivant : &lt;em&gt;/usr/pkg/awstats/cgi-bin/lib/robots.pm&lt;/em&gt;. Effectuons-donc une copie de sauvegarde de ce fichier :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bak&lt;/span&gt;
&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bak&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Profitons-en pour copier la sauvegarde dans un autre fichier, que nous allons modifier :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;vp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bak&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;
&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bak&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Avant de modifier le fichier, jetons un oeil aux logs (Apache dans mon cas) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="mf"&gt;1.2.3.4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;04&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;May&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2011&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;16&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;30&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;48&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mf"&gt;0200&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;GET /feed/atom HTTP/1.1&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;105441&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;cplanet/0.6&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le User-agent de cplanet est donc : "cplanet/0.6". Maintenant éditons notre &lt;em&gt;robots.pm.custom&lt;/em&gt;. En lisant les commentaires on se rend compte que le fichier est organisé en plusieurs listes. Il faut donc ajouter notre nouveau robot dans deux d'entres elles, &lt;em&gt;RobotsSearchIDOrder_list\&amp;lt;X&amp;gt;&lt;/em&gt; (où \&amp;lt;X&amp;gt; désigne un chiffre) et &lt;em&gt;RobotsHashIDLib&lt;/em&gt;. J'ai choisi d'ajouter mon robot dans &lt;em&gt;RobotsSearchIDOrder_list2&lt;/em&gt;, qui contient des robots peu connus. Je suis allé à la fin de cette liste mais je n'ai pas ajouté mon robot en toute fin de liste mais juste après un robot nommé “zeus”. Pourquoi ? Il s'avère que certains noms de robots sont des expressions régulières, et doivent être en fin ou en début de liste. Donc je ne souhaite pas les perturber.&lt;/p&gt;
&lt;p&gt;Voici les lignes contenant “zeus” et cplanet (aux alentours de la ligne 965) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;#39;zeus&amp;#39;,
&amp;#39;cplanet&amp;#39;,
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Passons à la deuxième liste, qui commence aux alentours de la ligne 1000. Vers la ligne 1320, on peut lire le commentaire suivant : “Other robots reported by users”. Je suis donc à nouveau descendu jusqu'à retrouver “zeus” et j'ai ajouté de cette manière cplanet, juste en-dessous :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;#39;cplanet&amp;#39;,&amp;#39;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://git.etoilebsd.net/cplanet/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;A rss feed agregator that generate static html pages&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;_blank&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CPlanet&lt;span class="w"&gt; &lt;/span&gt;RSS&lt;span class="w"&gt; &lt;/span&gt;agregator&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&amp;#39;,
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;J'ai donc créé un identifiant pour mon robot, qui est en fait une chaîne de caractères basée sur le User-agent, et ai ajouté un lien vers l'URL du robot pour savoir d'où il vient, ainsi qu'un texte descriptif, en anglais. Notez bien le format de séparation, et que la virgule à la fin est &lt;strong&gt;obligatoire&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Maintenant que notre fichier personnalisé est prêt, reste à le mettre en production :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;vf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ln&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;
&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;
&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;robots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si jamais Awstats doit être mis à jour, celui-ci écrasera le lien symbolique. Il faudra donc vérifier (avec la commande diff par exemple) si le projet Awstats a mis à jour de son côté le fichier, et reporter nos modifications dans une copie du nouveau. Pensez d'ailleurs à proposer vos nouveaux robots sur le &lt;a href="http://sourceforge.net/tracker/?group_id=13764&amp;amp;atid=363764"&gt;bug tracker d'Awstats sur Sourceforge&lt;/a&gt;&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="Awstats"></category><category term="bot"></category><category term="Perl"></category><category term="robot"></category><category term="robots.pm"></category></entry><entry><title>Ajouter ses sections personnalisées dans Awstats</title><link href="https://blog.anotherhomepage.org/post/2011/02/28/ajouter-ses-sections-personnalisees-dans-awstats/" rel="alternate"></link><published>2011-02-28T09:30:00+01:00</published><updated>2011-02-28T09:30:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-02-28:/post/2011/02/28/ajouter-ses-sections-personnalisees-dans-awstats/</id><summary type="html">&lt;p&gt;Après la configuration de base et l'activation de plugins, amusons-nous maintenant à personnaliser nos statistiques avec les "Extra Sections". Avant toute chose, il convient de rappeler que comme certains plugins, ces ajouts ralentissent la vitesse d'exécution d'Awstats : sur des sites internet très visités, il peut s'avérer très utile d'avoir une …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Après la configuration de base et l'activation de plugins, amusons-nous maintenant à personnaliser nos statistiques avec les "Extra Sections". Avant toute chose, il convient de rappeler que comme certains plugins, ces ajouts ralentissent la vitesse d'exécution d'Awstats : sur des sites internet très visités, il peut s'avérer très utile d'avoir une centralisation des logs et de ne pas utiliser Awstats directement sur les serveurs web de production.&lt;/p&gt;
&lt;p&gt;Il est possible, grâce à ces sections, d'ajouter des filtres. Pour un site marchand par exemple on peut trier les produits et lister les meilleures ventes selon les catégories. Il est aussi possible, pour un blog, de voir les hits sur les flux RSS et même de voir quel client RSS est utilisé. C'est ce que je vous propose dans la suite.&lt;/p&gt;
&lt;p&gt;Chaque "Extra Section" s'ajoute dans Awstats à la fin du fichier de configuration. Si vous souhaitez utiliser les mêmes sections pour plusieurs fichiers de configuration, il est possible de faire de l'inclusion de fichiers. On peut par exemple créer un fichier /usr/pkg/etc/awstats/extra_sections.conf et écrire dans le fichier de configuration de notre site internet la directive :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Include &amp;quot;extra_sections.conf&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cela peut s'avérer très pratique car les sections sont numérotées. La première section voit ses variables suffixées par le chiffre 1, la deuxième par le chiffre 2, ainsi de suite... Le copier-coller est donc à manier avec précaution, je n'ai jamais tenté d'avoir deux sections 1.&lt;/p&gt;
&lt;p&gt;Détaillons à présent un premier exemple : je cherche à lister les visites sur mes flux RSS.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ExtraSectionName1=&amp;quot;Flux RSS / Atom&amp;quot;
ExtraSectionCodeFilter1=&amp;quot;200 304&amp;quot;
ExtraSectionCondition1=&amp;quot;URL,^\\/feed\\/.*&amp;quot;
ExtraSectionFirstColumnTitle1=&amp;quot;Nom du flux&amp;quot;
ExtraSectionFirstColumnValues1=&amp;quot;URL,^\\/feed\\/([\\w]+)\\/&amp;quot;
ExtraSectionStatTypes1=PHK
MaxNbOfExtra1=1000
MinHitExtra1=1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cette section filtre donc les codes HTTP &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/Liste_des_codes_HTTP#Succ.C3.A8s"&gt;200&lt;/a&gt; et &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/Liste_des_codes_HTTP#Redirection"&gt;304&lt;/a&gt; ayant lieu dans le répertoires /feed/. J'affiche les URLs commençant par /feed/ pour les lister et enfin, j'indique le nombre de pages et le nombre de hits (qui dans ce cas de flux RSS ont la même valeur). Je décide de limiter le nombre d'entrée à 1000 et estime le nombre minimum de hits pour apparaître dans les stats à 1. Il est possible d'adapter simplement cet exemple à d'autres URLs.&lt;/p&gt;
&lt;p&gt;Passons au deuxième exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ExtraSectionName2=&amp;quot;Lecteurs de RSS&amp;quot;
ExtraSectionCodeFilter2=&amp;quot;200 304&amp;quot;
ExtraSectionCondition2=&amp;quot;URL,^\\/feed\\/.*&amp;quot;
ExtraSectionFirstColumnTitle2=&amp;quot;logiciel&amp;quot;
ExtraSectionFirstColumnValues2=&amp;quot;UA,^([^\\/]*)&amp;quot;
ExtraSectionStatTypes2=PHBL
MaxNbOfExtra2=1000
MinHitExtra2=1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Cette fois-ci je ne liste pas l'URL mais le "User Agent" qui a fait la requête sur /feed/, ce qui me permet de lister les clients RSS utilisés. Enfin, je ne me contente pas seulement de lister les hits (H) et les pages (P), mais aussi la bande passante (B) et les dernières visites (L). On peut filtrer sur de nombreux critères, les voici :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;li&gt;URLWITHQUERY&lt;/li&gt;
&lt;li&gt;QUERY_STRING&lt;/li&gt;
&lt;li&gt;REFERER&lt;/li&gt;
&lt;li&gt;UA&lt;/li&gt;
&lt;li&gt;HOSTINLOG&lt;/li&gt;
&lt;li&gt;HOST&lt;/li&gt;
&lt;li&gt;VHOST&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentation d'Awstats possède une &lt;a href="http://awstats.sourceforge.net/docs/awstats_extra.html"&gt;page consacrée aux Extra Sections&lt;/a&gt; dont je vous recommande la lecture. De même, un site nommé &lt;a href="http://www.internetofficer.com/awstats/"&gt;Internet Officer&lt;/a&gt; possède de nombreux exemples en rapport avec Google. Il est bien pratique, pour débuter avec les Extra Sections, de partir d'exemples fonctionnels proches (plus ou moins) du résultat qu'on souhaite obtenir. Enfin, le fichier de configuration d'Awstats reste en soi une excellente documentation grâce à la qualité des commentaires déjà présents.&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="Awstats"></category><category term="Perl"></category></entry><entry><title>Utilisation des plugins Awstats</title><link href="https://blog.anotherhomepage.org/post/2011/02/14/utilisation-des-plugins-awstats/" rel="alternate"></link><published>2011-02-14T09:30:00+01:00</published><updated>2011-02-14T09:30:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-02-14:/post/2011/02/14/utilisation-des-plugins-awstats/</id><summary type="html">&lt;p&gt;Nous avons vu dans un précédent billet comment mettre en oeuvre la génération de statistiques de visites avec &lt;a href="http://awstats.sourceforge.net/"&gt;Awstats&lt;/a&gt;. Nous allons maintenant enrichir et améliorer ces statistiques, avec dans un premier temps l'utilisation de plugins. Le prérequis pour ce billet est bien entendu d'avoir configuré Awstats et de posséder les …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Nous avons vu dans un précédent billet comment mettre en oeuvre la génération de statistiques de visites avec &lt;a href="http://awstats.sourceforge.net/"&gt;Awstats&lt;/a&gt;. Nous allons maintenant enrichir et améliorer ces statistiques, avec dans un premier temps l'utilisation de plugins. Le prérequis pour ce billet est bien entendu d'avoir configuré Awstats et de posséder les modules Perl suivants : URI::Escape, Storable et Geo::IP.&lt;/p&gt;
&lt;h2&gt;Décoder correctement les phrases clés et les mots clés&lt;/h2&gt;
&lt;p&gt;Awstats permet de voir quels mots clés et quelles phrases clés ont été utilisés dans un moteur de recherche pour arriver sur votre site. Mais avec les jeux de caractères, Awstats peut avoir du mal à décoder les chaînes de caractères. Pour remédier à cela, il suffit d'activer le plugin decodeutfkeys dans notre fichier de configuration :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;LoadPlugin=&amp;quot;decodeutfkeys&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Accélération des recherches DNS&lt;/h2&gt;
&lt;p&gt;Dans notre configuration précédente, Awstats est paramétré pour faire une recherche DNS inverse des IP des visiteurs, ce qui peut prendre du temps. Il est donc possible de créer un fichier de cache pour accélérer ces recherches et éviter de faire 36 fois la même requête DNS. Pour cela, on active le plugin hashfiles :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;LoadPlugin=&amp;quot;hashfiles&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Géolocalisation des visiteurs&lt;/h2&gt;
&lt;p&gt;Il peut s'avérer très intéressant de savoir d'où viennent vos visiteurs selon le thème ou la langue du site : par exemple, un site rédigé en Français a dans le top 10 de ses visiteurs une adresse IP russe, une brésilienne et une chinoise (pays choisis au hasard). Si on regarde dans les logs, on se rend compte que 90% de leurs requêtes terminent en 404 ;) On va donc activer le plugin GeoIP :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;LoadPlugin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;geoip GEOIP_STANDARD /var/www/awstats/GeoIP.dat&lt;/span&gt;
&lt;span class="n"&gt;LoadPlugin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;geoip_city_maxmind GEOIP_STANDARD /var/www/awstats/GeoLiteCity.dat&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On remarque que dans le cas de GeoIP, il est nécessaire de disposer d'une base de données associant des plages d'adresses IP à un pays d'appartenance. Le fournisseur le plus connu pour ce type de bases de données est &lt;a href="http://www.maxmind.com/app/ip-locate"&gt;Maxmind&lt;/a&gt;, qui propose des solutions gratuites et payantes. Deux bases sont disponibles gratuitement, &lt;a href="http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"&gt;celle des pays&lt;/a&gt; et &lt;a href="http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz"&gt;celle des villes&lt;/a&gt;. Ensuite, il reste à placer ces fichiers (décompressés) dans un répertoire accessible à Awstats; personnellement je le met au même endroit que les données de statistiques, donc /var/www/awstats ou /var/lib/awstats selon qu'on est sous NetBSD ou Linux. Les bases de données sont mises à jour chaque mois, pensez donc à régulièrement télécharger les nouvelles versions.&lt;/p&gt;
&lt;p&gt;[Attention]{.underline}  : ce type de traitement entraîne un ralentissement de la vitesse d'exécution d'Awstats, sur des gros sites cela peut très vite devenir gênant pour la carge CPU et mémoire de votre serveur.&lt;/p&gt;
&lt;h2&gt;Autres infos sur les IP des visiteurs&lt;/h2&gt;
&lt;p&gt;Plutôt que de copier-coller les IP de vos visiteurs dans un service de &lt;a href="https://secure.wikimedia.org/wikipedia/fr/wiki/Whois"&gt;whois&lt;/a&gt;, il est possible d'utiliser le client whois d'Awstats via le plugin hostinfo :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;LoadPlugin=&amp;quot;hostinfo&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Au prochain épisode...&lt;/h2&gt;
&lt;p&gt;Nous avons maintenant quelques détails de plus sur nos visiteurs grâce aux plugins, il nous reste maintenant à mieux comprendre les visites via les directives "ExtraSection", qui fera l'objet d'un prochain billet... :)&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="Apache"></category><category term="Awstats"></category><category term="Perl"></category></entry><entry><title>Awstats</title><link href="https://blog.anotherhomepage.org/post/2011/01/31/awstats/" rel="alternate"></link><published>2011-01-31T09:30:00+01:00</published><updated>2011-01-31T09:30:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2011-01-31:/post/2011/01/31/awstats/</id><summary type="html">&lt;h2&gt;Qu'est-ce qu'Awstats ? A quoi sert-il ?&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://awstats.sourceforge.net/"&gt;Awstats&lt;/a&gt; est un outil web de statistiques pour un serveur web, FTP ou mail. Il permet donc de voir, pour un site internet par exemple, s'il y a beaucoup de visites, quelles sont les pages les plus visitées, quelle quantité de données est transférée, et …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Qu'est-ce qu'Awstats ? A quoi sert-il ?&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://awstats.sourceforge.net/"&gt;Awstats&lt;/a&gt; est un outil web de statistiques pour un serveur web, FTP ou mail. Il permet donc de voir, pour un site internet par exemple, s'il y a beaucoup de visites, quelles sont les pages les plus visitées, quelle quantité de données est transférée, et "qui" vient le plus souvent visiter son site. Awstats est un logiciel libre, sous licence GNU GPL. Il peut être appelé dynamiquement, générer des pages HTML de statistiques, ou, grâce à des contributions externes de créer des fichiers PDF. Autre détail qui a son importance : Awstats se base sur les fichiers de log de votre serveur, il n'est donc pas à ma connaissance compatible avec les hébergements mutualisés.&lt;/p&gt;
&lt;h2&gt;De quoi ai-je besoin pour le faire fonctionner ?&lt;/h2&gt;
&lt;p&gt;Awstats a avant tout besoin de &lt;a href="http://www.perl.org/"&gt;Perl&lt;/a&gt; ! Ensuite, selon votre besoin ou vos désirs, il faut que votre serveur web puisse exécuter des scripts CGI. Dans le cas d'Apache donc, pas besoin de &lt;a href="http://perl.apache.org/"&gt;mod_perl&lt;/a&gt; pour afficher vos statistiques Awstats, mais il faudra activer &lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_cgi.html"&gt;mod_cgi&lt;/a&gt; si vous souhaitez afficher dynamiquement les statistiques.&lt;/p&gt;
&lt;p&gt;De plus, selon les fonctionnalités que vous souhaiterez activer, il est nécessaire d'avoir quelques modules Perl. Si vous souhaitez suivre ces billets, il peut être de bon ton d'installer les modules Perl suivants : URI::Escape, Storable, Geo::IP (et non Geo::IPfree) et Net::XWhois . Concernant NetBSD, j'ai installé les paquets suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;p5-Business-ISBN&lt;/li&gt;
&lt;li&gt;p5-Business-ISBN&lt;/li&gt;
&lt;li&gt;p5-Geo-IP&lt;/li&gt;
&lt;li&gt;p5-MIME-Base64&lt;/li&gt;
&lt;li&gt;p5-Net-XWhois&lt;/li&gt;
&lt;li&gt;p5-Test-Simple&lt;/li&gt;
&lt;li&gt;p5-URI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Awstats est généralement fourni dans les paquets de votre distribution Linux ou BSD favorite. Si ce n'est pas dans les dépôts officiels, il est fort probable que des dépôts alternatifs soient disponibles. Ainsi, pour RHEL et ses clones tels que CentOS, vous pouvez utiliser le dépôt &lt;a href="http://fedoraproject.org/wiki/EPEL"&gt;EPEL&lt;/a&gt;. Si vous ne connaissez aucun dépôt ou que ceux-ci fournissent une version trop ancienne, vous pouvez utiliser &lt;a href="http://awstats.sourceforge.net/#DOWNLOAD"&gt;l'archive disponible sur le site d'Awstats&lt;/a&gt;. Point non négligeable : comme il s'agit d'un programme Perl, nul besoin de le compiler, ce qui est fort appréciable !&lt;/p&gt;
&lt;p&gt;Pour la suite : tous les exemples et codes proviennent d'une machine NetBSD 5, et Awstats est installé grâce au paquet disponible sur pkgsrc.&lt;/p&gt;
&lt;h2&gt;Première configuration&lt;/h2&gt;
&lt;p&gt;Nous avons donc installé Awstats. Avant de configurer Awstats&lt;/p&gt;
&lt;p&gt;La configuration se situe dans &lt;em&gt;/usr/pkg/etc/awstats/' et on y trouve déjà un fichier :&lt;/em&gt; awstats.model.conf''. Copions ce modèle et éditons-le :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anotherhomepage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anotherhomepage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Examinons maintenant la configuration, nous allons renseigner :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l'emplacement du fichier de logs&lt;/li&gt;
&lt;li&gt;le nom (dns) du site web, ainsi que ses alias&lt;/li&gt;
&lt;li&gt;renseigner les pages d'index&lt;/li&gt;
&lt;li&gt;exclure Awstats des statistiques&lt;/li&gt;
&lt;li&gt;exclure notre adresse IP des statistiques&lt;/li&gt;
&lt;li&gt;et bien d'autres trucs encore !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Attention :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;je n'affiche par la suite que les options que j'ai modifiées par rapport au modèle&lt;/li&gt;
&lt;li&gt;ma configuration date un peu : mon fichier a été créé à l'époque d'Awstats 6.6, et de nouvelles options ont fait leur apparition&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# Emplacement du fichier de log&lt;/span&gt;
&lt;span class="n"&gt;LogFile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/log/httpd/blog-access.log&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Nom DNS de notre site internet&lt;/span&gt;
&lt;span class="n"&gt;SiteDomain&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;blog.anotherhomepage.org&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Autres noms DNS possibles, ou adresse IP directement&lt;/span&gt;
&lt;span class="n"&gt;HostAliases&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;localhost 127.0.0.1 www.blog.anotherhomepage.org 188.40.96.170&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Faire une recherche inverse DNS sur les IP des visiteurs, cela permet d&amp;#39;avoir une meilleure visibilité en voyant&lt;/span&gt;
&lt;span class="c1"&gt;# les DNS inversedes FAI, mais attention : sur un gros site, cela peut énormément ralentir Awstats !&lt;/span&gt;
&lt;span class="c1"&gt;# Si vous avez un doute, mettez cette valeur à 0&lt;/span&gt;
&lt;span class="n"&gt;DNSLookup&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# Localisation des bases de données des statistiques, ici le chemin NetBSD !&lt;/span&gt;
&lt;span class="c1"&gt;# Sous GNU/Linux, le chemin est généralement /var/lib/awstats&lt;/span&gt;
&lt;span class="n"&gt;DirData&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/www/awstats&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Localisation du GCI appelé par notre page de statistiques (awstats.pl)&lt;/span&gt;
&lt;span class="n"&gt;DirCgi&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/awstats&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# ...&lt;/span&gt;
&lt;span class="n"&gt;DirIcons&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/awstats/icon&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Awstats peut proposer de mettre à jour en direct les statistiques via un bouton.&lt;/span&gt;
&lt;span class="c1"&gt;# C&amp;#39;est risqué, donc on désactive&lt;/span&gt;
&lt;span class="n"&gt;EnableLockForUpdate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# Je préfère générer la page web en XHTML plutôt qu&amp;#39;en HTML&lt;/span&gt;
&lt;span class="n"&gt;BuildReportFormat&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;xhtml&lt;/span&gt;
&lt;span class="c1"&gt;# C&amp;#39;est toujours bien les sauvegardes :)&lt;/span&gt;
&lt;span class="n"&gt;KeepBackupOfHistoricFiles&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# Page d&amp;#39;index par défaut&lt;/span&gt;
&lt;span class="n"&gt;DefaultFile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;index.html index.php&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# On peut s&amp;#39;exclure des visites : si on est en IP fixe, mieux vaut exclure son IP&lt;/span&gt;
&lt;span class="c1"&gt;# ainsi que celle du serveur et la boucle locale&lt;/span&gt;
&lt;span class="n"&gt;SkipHosts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;127.0.0.1 188.40.96.170&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Ici j&amp;#39;exclue des statistiques le panneau d&amp;#39;admin de Dotclear, le répertoire des thèmes et quelques fichiers&lt;/span&gt;
&lt;span class="c1"&gt;# en rapport  avec un plugin&lt;/span&gt;
&lt;span class="n"&gt;SkipFiles&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;REGEX[^&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;/admin] REGEX[^&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;/awstats] REGEX[^&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;/themes] /?pf=partager2/img/delicious.png /?pf=partager2/img/digg.png /?pf=partager2/img/yahoomyweb.png /?pf=partager2/img/wikio.gif /?pf=partager2/img/sprite_partager2.png&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Si vous avez des URL de type http://monsite.com/kikoo.php?variable=valeur&lt;/span&gt;
&lt;span class="c1"&gt;# vous pouvez différencier les requêtes selon ce que vaut &amp;quot;valeur&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# Mieux vaut faire de même pour votre referrer ;)&lt;/span&gt;
&lt;span class="n"&gt;URLWithQuery&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;URLWithQueryWithoutFollowingParameters&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;PHPSESSID jsessionid&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;URLReferrerWithQuery&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# Je suis un peu parano sur les bord, je cherche à voir si des vers tentent d&amp;#39;accéder à mon site&lt;/span&gt;
&lt;span class="n"&gt;LevelForWormsDetection&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="c1"&gt;# Awstats affiche le top 10, sauf si on va dans le détail, où il affiche le top 1000 par défaut&lt;/span&gt;
&lt;span class="c1"&gt;# Moi j&amp;#39;en veux encore plus ! (mais la page est plus longue à charger)&lt;/span&gt;
&lt;span class="n"&gt;MaxRowsInHTMLOutput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;
&lt;span class="c1"&gt;# Je force la langue en Français, mais vous n&amp;#39;êtes pas obligé d&amp;#39;en faire autant&lt;/span&gt;
&lt;span class="n"&gt;Lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;fr&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;# J&amp;#39;affiche les stats sur les vilains vers qui polluent le Net&lt;/span&gt;
&lt;span class="n"&gt;ShowWormsStats&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;HBL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Génération des statistiques de visites&lt;/h2&gt;
&lt;p&gt;Pour lancer la génération des statistiques, la commande est la suivante :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;perl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;--config=blog.anotherhomepage.org --update&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Affichage des statistiques de visites**Par défaut, la configuration suivante existe pour Apache :&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root@vhost:~#&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/usr/pkg/etc/httpd/conf.d/awstats.conf
Alias&lt;span class="w"&gt; &lt;/span&gt;/awstats/icon/&lt;span class="w"&gt; &lt;/span&gt;/usr/pkg/awstats/icon/
Alias&lt;span class="w"&gt; &lt;/span&gt;/awstats/css/&lt;span class="w"&gt; &lt;/span&gt;/usr/pkg/awstats/css/
Alias&lt;span class="w"&gt; &lt;/span&gt;/awstats/js/&lt;span class="w"&gt; &lt;/span&gt;/usr/pkg/awstats/js/

Alias&lt;span class="w"&gt; &lt;/span&gt;/awstats/&lt;span class="w"&gt; &lt;/span&gt;/usr/pkg/awstats/cgi-bin/

&lt;span class="nt"&gt;&amp;lt;Location&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;/awstats&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;DirectoryIndex&lt;span class="w"&gt; &lt;/span&gt;awstats.pl
&lt;span class="w"&gt;        &lt;/span&gt;Options&lt;span class="w"&gt; &lt;/span&gt;ExecCGI&lt;span class="w"&gt; &lt;/span&gt;FollowSymLinks
&lt;span class="w"&gt;        &lt;/span&gt;AddHandler&lt;span class="w"&gt; &lt;/span&gt;cgi-script&lt;span class="w"&gt; &lt;/span&gt;.pl
&lt;span class="w"&gt;        &lt;/span&gt;AddHandler&lt;span class="w"&gt; &lt;/span&gt;cgi-script&lt;span class="w"&gt; &lt;/span&gt;.cgi
&lt;span class="w"&gt;        &lt;/span&gt;order&lt;span class="w"&gt; &lt;/span&gt;allow,deny
&lt;span class="w"&gt;        &lt;/span&gt;allow&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;all
&lt;span class="nt"&gt;&amp;lt;/Location&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Sous NetBSD, les fichiers .conf présents dans &lt;em&gt;/usr/pkg/etc/httpd/conf.d/&lt;/em&gt; sont automatiquement inclus dans votre configuration, ce qui ajoute un certain confort. A noter que de cette manière, vos statistiques sont accessibles au monde entier ! Vous pouvez utiliser un fichier htaccess ou les directives Allow avec votre IP si vous êtes en IP fixe pour restreindre l'accès aux statistiques.&lt;/p&gt;
&lt;h2&gt;Automatisation, multiplication et gestion de la rotation des logs&lt;/h2&gt;
&lt;p&gt;Tout ça c'est bien, mais une fois qu'on a 2-3 sites internet qui tournent, on ne va pas se connecter chaque jour sur notre serveur pour lancer une mise à jour par site. Il est possible de remédier à cela grâce à un utilitaire fourni avec Awstats : awstats_updateall.pl permet de mettre à jour tous les sites configurés en une seule commande ! En utilisation dans une crontab, tout est automatisé :) Exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="nv"&gt;@vhost&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;crontab&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Awstats&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;perl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats_updateall&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;awstatsprog&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;configdir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;awstats&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;null&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et voici nos statistiques mises à jour toutes les quatre heures, à la dixième minute (00h10, 4h10, 8h10...)&lt;/p&gt;
&lt;p&gt;Si vous effectuez une rotation de vos logs avec &lt;a href="https://fedorahosted.org/logrotate/"&gt;logrotate&lt;/a&gt;, le plus intelligent est encore d'ajouter votre mise à jour de statistiques dans la configuration de logrotate, comme le détaille &lt;a href="http://awstats.sourceforge.net/docs/awstats_faq.html#ROTATE"&gt;la FAQ d'Awstats&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Au prochain épisode...&lt;/h2&gt;
&lt;p&gt;Cette configuration basique et fonctionnelle permet d'avoir des statistiques intéressantes, mais nous pouvons aller plus loin, comme par exemple avec la géolocalisation d'adresses IP et l'utilisation d'autres plugins, et même aller jusqu'à créer nos propres filtres pour avoir des statistiques sur certaines parties du site par exemple.&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 16/02/2011 11:49 par &lt;a href="http://www.evazone.fr"&gt;M@T D.&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;"Autre détail qui a son importance : Awstats se base sur les fichiers de log de votre serveur, il n'est donc pas à ma connaissance compatible avec les hébergements mutualisés" &amp;gt; Oui et non... Mutualisé au sens strict, avec un prestataire qui te fourni l'espace web (et donc pas d'accès sur admin sur la machine), je suis d'accord.&lt;/p&gt;
&lt;p&gt;Mais si c'est un serveur que tu administres, rien ne t'empêche de splitter les fichiers de logs Apache (access et error) pour chaque VirtualHost, de créer plusieurs fichiers de conf awstat, et d'ordonnancer plusieurs tâches Cron pour obtenir des stats propres à chaque site.&lt;/p&gt;
&lt;p&gt;;-)&lt;/p&gt;
&lt;h3&gt;Le 16/02/2011 19:48 par Nils&lt;/h3&gt;
&lt;p&gt;Je n'ai jamais vu de prestataire fournir un hébergement mutualisé où tu peux administrer ton serveur. En général quand tu as un accès administrateur à l'OS, tu es sois sur du VPS (Virtual Private Server), soit sur du RPS (Real Private Server, qui a juste de l'espace disque sur un SAN), soit un véritable serveur dédié. Et pour moi il s'agit d'une question de bon sens de séparer l'access_log de l'error_log et bien entendu d'avoir un couple de log par virtual host.&lt;/p&gt;
&lt;p&gt;Pourquoi ordonnancer plusieurs tâches cron quand on a awstats_updateall.pl comme je l'ai indiqué ?&lt;/p&gt;
&lt;h3&gt;Le 22/02/2011 13:50 par &lt;a href="http://www.evazone.fr"&gt;M@T D.&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Si je te dis que je considère que je fais de l'hébergement mutualisé chez moi... Tu comprends mieux mon point de vu ?
Au sens, strict du terme, je suis tout à fait d'accord avec toi ;-)&lt;/p&gt;
&lt;p&gt;Sinon, j'avais pas vu la partie sur awstats_updateall.pl... Effectivement, très pratique.&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="Apache"></category><category term="Awstats"></category><category term="Perl"></category></entry><entry><title>Recherche colorée dans les logs avec perl</title><link href="https://blog.anotherhomepage.org/post/2010/02/13/Recherche-color%C3%A9e-dans-les-logs-avec-perl/" rel="alternate"></link><published>2010-02-13T12:35:00+01:00</published><updated>2010-02-13T12:35:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2010-02-13:/post/2010/02/13/Recherche-colorée-dans-les-logs-avec-perl/</id><summary type="html">&lt;p&gt;Voici un petit one-liner assez sympathique, dont on m'avait parlé dans la semaine et sur lequel &lt;a href="http://www.karlesnine.com/post/2008/05/20/Tail-mais-en-couleur"&gt;je suis tombé par hasard&lt;/a&gt; en cherchant autre chose. Le principe est d'afficher dans une autre couleur un texte donné dans une recherche, comme par exemple une erreur précise dans un fichier de logs …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Voici un petit one-liner assez sympathique, dont on m'avait parlé dans la semaine et sur lequel &lt;a href="http://www.karlesnine.com/post/2008/05/20/Tail-mais-en-couleur"&gt;je suis tombé par hasard&lt;/a&gt; en cherchant autre chose. Le principe est d'afficher dans une autre couleur un texte donné dans une recherche, comme par exemple une erreur précise dans un fichier de logs. Sur une machine j'ai des problèmes avec cron, je l'utilise donc de la manière suivante :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;root@lolcathost:~# tail -f /var/log/syslog | perl -pe 's/cron/\\e[1;31m$&amp;amp;\\e[0m/ig'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On remarque une différence avec le lien indiqué plus haut, j'ai mis "/ig" à la fin au lieu de "/g". Pourquoi? J'avais besoin de faire la recherche sans tenir compte de la casse, et j'ai trouvé l'option suite à une &lt;a href="http://www.mindflip.com/inet/perl/regex.html"&gt;rapide recherche&lt;/a&gt;. Je devrais vraiment me mettre à perl, ça me semble vraiment efficace et pratique :-)&lt;/p&gt;
&lt;p&gt;Pour ceux qui pensent que j'ai fait une faute de frappe dans la recopie du prompt, je leur recommande d'aller voir &lt;a href="http://sam.linuxfr.org/517"&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Commentaires&lt;/h2&gt;
&lt;h3&gt;Le 25/04/2010 10:46 par &lt;a href="http://www.karlesnine.com"&gt;karles&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Plus simple encore "grep --color" met en couleur la chaine recherché. Pour toute la ligne le one-liner en perl reste le plus efficace.&lt;/p&gt;
&lt;p&gt;Karles&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="cron"></category><category term="Linux"></category><category term="Perl"></category></entry></feed>