This is an old revision of the document!
internet statistiques apache
Installer Awstats
avec une Debian (et plus généralement Linux)
http://awstats.sourceforge.net Awstats est un script perl qui interprète les logs Apache pour en faire des graphiques et des statistiques. Pur l'installer :
aptitude install awstats
On va ensuite modifier quelques options dans le fichier de configuration /etc/awstats.conf
:
LogFile="/var/log/apache2/access.log" SiteDomain="hostname" HostAliases="localhost 127.0.0.1 votre_IP_publique" LogType=W
Ce qui correspond, dans l'ordre :
- le chemin vers le fichier de log d'Apache
- préciser votre hostname (par exemple “pteu.hd.free.fr”)
- éventuellement
- on spécifie qu'on utilise un log de serveur web (par défaut c'est déjà spécifié)
Pour obtenir des stats plus précises (notamment les OS et navigateurs des internautes), on va utiliser le format combined des log d'Apache. Ils enregistrent plus d'informations et prennent donc plus de place. On spécifie le format du log avec la directive :
LogFormat=1
Il faut s'assurer que le format des logs créés par Apache sont “conformes” : dans le fichier de config général d'Apache 2 /etc/apache2/apache2.conf
, décommentez (si besoin) la ligne :
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" '%{User-Agent}i'" combined
Dans le fichier de conf spécifique de votre vhost (/etc/apache2/sites-available/default
par défaut), vérifiez que la directive
CustomLog /var/log/apache2/access.log combined
est bien présente.
Si vous avez modifié quelque chose dans l'un ou l'autre des fichiers de conf, n'oubliez pas de relancer apache :
/etc/init.d/apache2 reload
Lancez ensuite la commande suivante
/usr/lib/cgi-bin/awstats.pl -config=<hostname> -update
<hostname> est le SiteDomain spécifié plus haut
Les statistiques sont disponibles à l'adresse <hostname>/cgi-bin/awstats.pl?config=<hostname>
Vu que le script est assez lourd, il peut être judicieux de ne générer qu'une seule fois par jour un rapport, sous forme de fichier html statique :
/usr/lib/cgi-bin/awstats.pl -config=<hostname> -update -output -staticlinks > awstats.html
En plaçant ce fichier dans la racine du serveur web on pourra y accéder par http://hostname/awstats.html .
Pour générer toutes les stats (pas uniquement les stats générales), on utilise la commande http://awstats.sourceforge.net/docs/awstats_tools.html#awstats_buildstaticpages awstats_buildstaticpages :
/usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=hostname -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/path/to/htdocs/awstats/
Pour automatiser la création de pages html, on utilise http://fr.wikipedia.org/wiki/Cron cron : On édite la crontab :
crontab -e
Et on rajoute cette ligne qui exécutera la commande à 1h00 du matin tous les jours :
0 1 * * * /usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=<hostname> -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/path/vers/htdocs/awstats/
Ensuite on redémarre le service cron (en fait ce n'est pas nécessaire) :
/etc/init.d/cron restart
Pour Squid
Dans le fichier squid.conf
, on active les log “combined” (décommenter la ligne) :
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
Puis dans le fichier de conf de awstats (par défaut /etc/awstats.conf
) :
LogFormat=1