Awstats : analyser les statistiques en local
Troisième billet de la série sur le développement web local : comment analyser les statistiques de son site à partir des logs Apache que l'on a rapatrier sur son ordinateur.
Les hébergeurs web fournissent généralement un service de calcul de statistiques, mais il est parfois intéressant de pouvoir soi-même analyser les visites de son site, au calme sur son ordinateur, ne serait-ce que pour se focaliser sur les données qui vous semble les plus pertinentes.
L'un des outils les plus efficace pour ce faire s'appelle Awstats, Logiciel Libre écrit en php disponible sous forme de paquetage pour Ubuntu. Je ne vais pas détailler l'utilisation de cet utilitaire (j'en serai d'ailleurs incapable) mais simplement pointer quelques problèmes que vous pourriez rencontrer en l'utilisant en local.
1. Awstats sur Ubuntu
D'abord, une fois installé sur Ubuntu, Awstats nécessite malheureusement quelques petits ajustements. Voici une synthèse de la méthodologie à appliquer après la consultation de multiple documentations plus ou moins pertinentes.
D'abord, sauvegardez votre fichier de configuration Apache (on ne sait jamais) :
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.original
Copiez le dossier « examples » de Awstats et créez les dossiers wwwroot et wwwroot/cgi-bin :
sudo cp -r /usr/share/doc/awstats/examples /usr/local/awstats
sudo cd /usr/local/awstats
sudo mkdir wwwroot
sudo mkdir wwwroot/cgi-bin
Décompressez le fichier modèle de configuration de Awstats et placez-le dans wwwroot/cgi-bin :
sudo gunzip awstats.model.conf.gz
sudo mv awstats.model.conf wwwroot/cgi-bin
Lancez enfin le script de configuration de Awstats :
sudo ./awstats_configure.pl
Lors de cette configuration, plusieurs questions vous seront posées. Voici les réponses les plus simples :
- /etc/apache2/apache2.conf
- y
- \foo.com\ (le nom de votre site)
- {ENTRER}
- {ENTRER}
- {ENTRER}
Construisez les liens nécessaires et accordez les droits utiles à certains répertoires :
sudo ln -s /usr/local/awstats/css/ wwwroot/
sudo ln -s /usr/share/awstats/* wwwroot/
sudo ln -s /usr/lib/cgi-bin/awstats.pl wwwroot/cgi-bin/
sudo chown -R –dereference www-data:www-data wwwroot
sudo chown -R –dereference www-data:www-data /var/lib/awstats
sudo chown root:www-data /var/log/apache2/access.log
Nota : si vous avez suivit mon exemple et changé le propriétaire des fichiers créés lors d'une session Apache, il faudra bien-sur remplacer « www-data » par votre login.
Editez le fichier de configuration Awstats de votre site :
sudo gedit /etc/awstats/awstats.[[foo.com]].conf
Le manuel de Awstats vous en dira plus sur les différentes options. Ici, le plus important à considérer est l'entrée « LogFile ». Par défaut, elle pointe vers le fichier log d'Apache. Or, ce ne sont pas les connections de votre serveur Apache local que l'on souhaite analysé, mais celles de votre site web que vous avez rapatrié. Il faut donc faire pointer cette entrée au bon endroit :
LogFile=/chemin/de/votre/fichier/log.log
Pour lancer la mise à jour des statistiques :
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=[[foo.com]] -update
Pour consulter les statistiques :
http://127.0.0.1/awstats/awstats.pl?config=[[foo.com]]
2. Ré-arrangement chronologique des logs apache
Par ailleurs, il se peut que les entrées des logs Apache ne soient pas dans un ordre chronologique strict. C'est par exemple mon cas sur le serveur OVH qui héberge ce site : certains logs arrivent avec 4 jours de retard. Si vous n'y prenez pas garde, le calcul des statistiques peut être grandement faussé, avec plus de la moitié des entrées considérées comme « corrompues ».
Pour éviter ce désagrément, il faut donc trier les entrées pour les replacer dans l'ordre chronologique. Un petit script fera l'affaire :
#!/bin/sh
if [[ ! -f $1 ]]; then
echo "Usage: $0 "
exit
fi
echo "Sorting $1"
sort -t ' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n $1 > $2
Pour l'utiliser :
sort-logs.sh [[fichier-log-original]] [[fichier-log-trié]]
3. Références
CHEN, A.. AWStats - web log analyser. Linux journal, . Guide d'installation d'Awstats sur Ubuntu.
CZEBOTAR, J.. Sorting Apache Log Files. Jehiah.com, . Source du script pour trier les logs Apache.
GNUKEMIST. Instalando Awstats em Ubuntu. Planeta Ubuntu Brasil, . Guide d'installation d'Awstats sur Ubuntu très claire mais en portugais :-).
HELLSTEETH. TUTORIAL: AWStats with APACHE2. Ubuntu forums, . Explication complète pour l'installation d'Awstats sur Ubuntu mais un peu confuse.