User Tools

Site Tools


informatique:logiciels:awstats

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/ :

  • LogFile=“/var/log/apache2/access.log” : indique l'endroit où se trouve les fichiers de logs à parser
  • SiteDomain=“pteu.fr” : à remplir avec tous le/les hostname du serveur web ; il peut y en avoir plusieurs mais en général il s'agit de l'URL d'accès au site
  • HostAliases=“localhost 127.0.0.1 votre_IP_publique” : liste tous les moyens d'accès au site (adresse IP, accès loopback, DNS sur l'intranet, alias, etc)
  • LogType=W : Précise le type de log à traiter, par défaut “W” pour un site web, mais Awstats sait également traiter les logs de mail ou FTP par exemple
  • LogFormat=1 : Pour indiquer le format de log utilisé par le serveur web ; pour plus de détails il vaut mieux utiliser le format combined dans Apache puisqu'il intègre les UserAgent.
  • SkipHosts=“127.0.0.1 ::1 REGEX[^192\.168\.]” : pour exclure des traitement les IPs de certains clients, notamment les accès admin ou la supervision qui fausseraient les stats

Pour les logs “combined” :

  • 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.
  • relancer Apache : systemctl restart apache2 ou service apache restart

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
informatique/logiciels/awstats.txt · Last modified: 2020/02/24 10:19 by pteu