internet statistiques apache

Installer Awstats

avec une Debian (et plus généralement Linux)

http://awstats.sourceforge.net Awstats est un script perl qui parcourt les logs Apache pour en faire des graphiques et des statistiques. Pur l'installer :

aptitude install awstats

Pour différentier les fichiers de confs par site, il faut les nommer en incluant le ServerName configuré dans Apache, par exemple pour le site pteu.fr le fichier doit se nommer awstats.pteu.fr.conf.

Quelques options intéressante à surveiller/modifier dans les fichiers de configuration /etc/awstats/ :

Pour les logs “combined” :

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" '%{User-Agent}i'" combined

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 pourrait utiliser cron mais il est plus judicieux de le lancer juste avant la rotation de log initiée par logrotate, donc on édite le fichier /etc/logrotate.d/apache2 pour y glisser la commande awstats_buildstaticpages.pl en prerotate. Dans mon cas j'ai déjà une gestion de scripts prerotate définie dans ma conf : /var/log/apache2/*.log { [..] prerotate

 if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
    run-parts /etc/logrotate.d/httpd-prerotate; \
 fi;

endscript </code> run-parts exécute tous les scripts trouvés dans le répertoire /etc/logrotate.d/httpd-prerotate, c'est donc dans ce dernier que je vais placer mon script :

vi /etc/logrotate.d/httpd-prerotate/awstat/pteu.fr.sh
 
/usr/share/awstats/tools/awstats_buildstaticpages.pl -config=pteu.fr -update -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/var/www/html/awstats
 
chmod +x /etc/logrotate.d/httpd-prerotate/awstat/pteu.fr.sh

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