Auteur:


Date:
13/09/2010

Catégories:
Blog
Open-source
Planet-libre
Web

Tags:



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:

  • http://www.woueb.net Romain

    A noter qu’il est possible de faire un export en HTML, ce qui est plus “secure” qu’un CGI.

    Ce qui est pas mal aussi c’est l’authentification avec le paramètre : AllowAccessFromWebToFollowingAuthenticatedUsers

  • http://blog.cheramy.name/ guidtz

    Bonjour,

    pour l’affichage des stats j’utilise de plus en plus jawstats (http://www.jawstats.com/) qui permet d’afficher les stats d’awstats de façon plus visuelle pour un client que la page classique d’awstats.

    Slts

  • Nico

    Manque pas un documentroot sur le fichier de conf apache, je n’arrive pas à accéder à la page ?
    Sinon ça a l’air top

  • Albert

    a souligner quand même que jawstats (et mawstats d’ailleurs) n’est plus maintenu, ce qui est bien regrettable vu la jolie interface qu’il apportait… et les évolutions qu’il aurait pu suivre…

  • http://blog.cheramy.name/ guidtz

    @Albert oui et c’est bien dommage …

  • http://www.dsfc.net Denis

    A signaler le support que j’ai produit sur Awstats au format Pdf et l’article sur mon blog sur l’utilisation d’Awstats !

    -> http://www.dsfc.net/wp-content/uploads/supports/mise-en-oeuvre-awstats.pdf

    -> http://www.dsfc.net/logiciel-libre/awstats/mise-en-oeuvre-awstats/

  • http://www.ml-djoudi.com ml-djoudi

    Bonjour,

    Merci pour ce billet.
    J’ai une question à propos du crontab, dans le cas où on a un grand nombre de VHosts, le fichier vas être rapidement rempli, donc es ce qu’il y a une possibilité de mettre une seul commande pour exécuter tous les configs awstats?

  • Sylvain

    décidement, ton blog réponds à mes attentes en ce moment, aprés varnish, awstats … merci beaucoup ! ça marche pour moi, configuré dans un sous-domaine.

  • larege

    Bon travail
    Un grand merci pour vos tutos sont claire et précis, je viens souvent sur votre site pour m’informer et régler des problèmes.
    Longue vie aux logiciel libre et vivre la liberté d’expression.