Analyser les logs de votre serveur Web avec AWStats
L’analyse des logs des sites Web est de plus en plus externalisé sur des services en ligne dans la veine de Google Analytics. Bien que ces services soient très bien fait, il peut être utile, pour des raisons techniques ou de confidentialité, de faire cette analyse directement sur vos serveurs. Nous allons donc dans ce billet mettre en place le logiciel AWStats pour qu’il analyse les logs générés par un serveur Apache.
La procédure est faire sur une distribution Ubuntu Server 9.04 mais pourra très bien être adapté sur d’autre versions/distributions.
Installation de AWStats
AWStats existe sous la forme de package Debian like (sinon vous pouvez toujours télécharger et compiler à partir des sources):
sudo aptitude install awstats
Les fichiers de configuration se trouvent dans le répertoire /etc/awstats. On va partir du template awstats.conf pour générer le fichier de configuration pour notre serveur (monbeaudomaine.com).
sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.monbeaudomaine.com.conf
Puis on édite ce fichier, notamment les lignes suivantes:
LogFile=”/var/log/apache2/monbeaudomaine-access.log”
LogFormat=1
SiteDomain=”monbeaudomaine.com”
On finalise l’installation en générant la base de données (stockée dans le répertoire /var/lib/awstats):
sudo /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update
Attention: cette étape peut prendre un certain temps selon la taille du fichier de log.
Puis on automatise la mise à jour (toutes les 10 minutes) de cette base en éditant le fichier crontab /etc/cron.d/awstats (il faut adapter la ligne de commande à votre nom de domaine):
0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.monbeaudomaine.com.conf -a -r /var/log/apache2/monbeaudomaine-access.log ] && /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update >/dev/null
Il faut bien vérifier que www-data a les droits:
- en exécution sur le script /usr/lib/cgi-bin/awstats.pl
- en lecture sur le fichier /etc/awstats/awstats.monbeaudomaine.com.conf
- en lecture sur le fichier /var/log/apache2/monbeaudomaine-access.log
Les nouveaux fichiers de log (générés par logrotate) ne seront pas créés avec les bons droits, il faut donc modifier le fichier /etc/logrotate.d/apache2:
create 640 root www-data
Et vérifier que les répertoire et fichiers existant on les bons droits:
chmod 2755 /var/log/apache2/
chgrp -R www-data /var/log/apache2/
Avant d’accéder à l’interface Web de vos stats, il faut ajouter le fichier de configuration /etc/apache2/conf.d/awstats.conf à Apache:
Alias /awstatsclasses “/usr/share/awstats/lib/”
Alias /awstats-icon/ “/usr/share/awstats/icon/”
Alias /awstatscss “/usr/share/doc/awstats/examples/css”
ScriptAlias /awstats/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin/”>
Options ExecCGI
AllowOverride None
AuthName “AWStats Access”
AuthType Basic
AuthUserFile /etc/awstats/htpasswd.users
Require valid-user
</Directory>
Puis on relance le serveur:
sudo /etc/init.d/apache2 restart
Utilisation de AWStats
Si l’installation c’est bien passé, une navigation vers la page http://localhost/awstats/awstats.pl?config=monbeaudomaine.com devrait afficher vos statistiques.
Si vous avez le message d’erreur suivant:
—
Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.
Setup (‘/etc/awstats/awstats.conf’ file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in ‘docs’ directory).
—
C’est que vous avez surement mal saisi l’URL http://localhost/awstats/awstats.pl?config=monbeaudomaine.com. Il faut bien vérifier que monbeaudomaine.com correspond au fichier de configuration /etc/awstats/awstats.monbeaudomaine.com.conf.
Sources: