Analyser les logs de votre serveur Web avec AWStats

Date: 13/09/2010 | Catégories: Blog,Open-source,Planet-libre,Web | Tags: ,,

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: