Configurer les plugins AWStats de localisation géographique

Publié le 19 décembre 2010 par Rumbaya

Testé sous Debian 5.0 Lenny – AWStats 6.7

AWStats est un outil très populaire d’analyse statistique du trafic d’un site web. Il ne se résume pas à cela car il peut également être configuré pour analyser des logs FTP ou mail, mais décrire toutes les fonctionnalités d’AWStats sort largement du cadre de cet article. Comme d’habitude, RTFM!

Dans sa configuration par défaut, AWStats fournit quelques informations rudimentaires sur l’origine géographique des visites basées sur la résolution inverse de l’adresse IP des visiteurs. C’est un processus plutôt consommateur de ressources et imprécis car si la résolution inverse donne quelque chose comme std75-10-xxx-xxx-xxx-xxx.fbx.proxad.net (cas d’un abonné Free) l’extension .net ne donne aucune information sur l’origine géographique.

La solution consiste à activer 2 plugins AWStats, geoip et geoip_city_maxmind, qui fournissent des informations précises sur le pays, la région et la ville d’origine. Ces plugins utilisent les bases de données géographiques gratuites de la société MaxMind, qui propose également des solutions payantes plus complètes et mises à jour plus régulièrement.

Ces deux plugins ont besoin du module Perl Geo::IP. L’installation sous Debian se fait via aptitude (je ne suis pas sur que libgeoip1 soit nécessaire, en tout cas il était déja présent sur mes machines) :

aptitude install libgeo-ip-perl libgeoip1

Il faut ensuite télécharger et décompresser les bases de données géographiques GeoIP.dat.gz et GeoLiteCity.dat.gz. Je les ai mises dans /usr/share/awstats/plugins, on peut bien sur les mettre ailleurs.

Modifiez ensuite le fichier /etc/awstats/awstats.nom_du_site.conf et activez les plugins :

LoadPlugin="geoip GEOIP_STANDARD /usr/share/awstats/plugins/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/awstats/plugins/GeoLiteCity.dat"

Si vous avez plusieurs sites, il peut être judicieux de configurer les plugins dans /etc/awstats.conf.local

Il ne reste plus qu’à mettre un petit script bash dans /etc/cron.monthly pour actualiser les bases tous les mois :

#!/bin/sh
# Mise à jour bases GeoIP pour awstats
#set -x
LOCALPATH=/usr/share/awstats/plugins
if [ -f "$LOCALPATH/GeoIP.dat.gz" ]; then
rm -f "$LOCALPATH/GeoIP.dat.gz"
fi
/usr/bin/wget -q --output-document="$LOCALPATH/GeoIP.dat.gz" http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip -f "$LOCALPATH/GeoIP.dat.gz"
if [ -f "$LOCALPATH/GeoLiteCity.dat.gz" ]; then
rm -f "$LOCALPATH/GeoLiteCity.dat.gz"
fi
/usr/bin/wget -q --output-document="$LOCALPATH/GeoLiteCity.dat.gz" http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip -f "$LOCALPATH/GeoLiteCity.dat.gz"

Liens :

How to set up geography-related plug-ins for AWStats.
Install Geo::IP Perl Module on Debian