Installer et configurer awstats

© Christian PAULUS. Document créé le 5 août 2011 , mis à jour le 5 août 2011.

L'amour... il y a ceux qui en parlent et il y a ceux qui le font. A partir de quoi il m'apparaît urgent de me taire. Pierre Desproges

Accueil du site > Astuces > CMS > Installer et configurer awstats

Awstats 7.0 / FreeBSD 8

Pour analyser les journaux (fichiers logs) de votre site web, quelques outils sont à votre disposition dans le monde Open-source : awstats, analog, webalizer, visitors, ...

Le premier est le plus connu, et sans aucun doute le plus exhaustif. Disponible en 43 langues (juillet 2011), les résultats sont complets, certains diront même complexes. De plus, awstats vous propose également d’analyser les journaux d’activités de votre serveur ftp, votre serveur de mail, votre serveur de streaming, et même votre journal système (syslog).

Et vous pouvez gérer toutes ces analyses, une seule installation suffit.

Seule ombre au tableau, il vous faut avoir accès à vos journaux de connexion http. En général, sous Apache, ces fichiers sont dans le répertoire log, ou /var/log.

Installer awstats sur FreeBSD

Classiquement :

# cd /usr/ports
# make update
# cd www/awstats
# make install clean

Le fichier de configuration

Ce fichier peut être placé dans un de ces répertoires :

  • /etc/awstats/
  • /usr/local/etc/awstats/
dans le même répertoire que le script awstats.pl

Le plus propre - le plus facile à maintenir - est /usr/local/etc/awstats/.

Recopiez le fichier de configuration pour votre site :

# cp /usr/local/www/awstats/cgi-bin/awstats.model.conf /usr/local/etc/awstats/awstats.www.quesaco.org.conf

Editez ce dernier fichier et configurez les variables nécessaires - a minima :

  • LogFile : chemin d’accès au fichier de log à analyser (web, ftp ou mail) ;
  • LogType : type de fichier de log (W pour un web, S pour streaming, M pour mail, F pour FTP) ;
  • LogFormat : format du fichier de log (1 pour Apache) ;
  • LogSeparator : séparateur. En général, un espace ( ) ;
  • SiteDomain : nom du site pour ce fichier de log. A noter qu’il est possible d’avoir un seul fichier de log pour tous les sites, mais il est plutôt conseillé d’avoir un log distinct par site ;
  • HostAliases : identifie les alias du site pour ce log ;
  • DnsLookup : demande de résoudre les adresses IP (IPv4 seulement) des visiteurs. Peut ralentir fortement le processus sur de gros sites. (0 = ne pas résoudre, 1 = résoudre, 2 = uniquement à partir du cache DNS) ;
  • DirData : chemin d’accès du répertoire des fichiers de résultats. Sur FreeBSD, en général, on place les bases de données dans /var/db/. Dans ce cas, /var/db/awstats conviendra parfaitement. Ne pas oublier de créer ce répertoire avec les droits d’accès nécessaires à la lecture et l’écriture ;
  • DirCgi : chemin relatif ou absolu des exécutables cgi. En général : « /cgi-bin » ;
  • DirIcons : chemin relatif ou absolu des icones awstats. En général : "/awstatsicons" ;
  • AllowToUpdateStatsFromBrowser : si 1, rajoute un bouton en interface web pour mettre à jour les statistiques. A éviter, sauf à régler très finement les droits d’accès du mode CGI.

D’autres paramètres sont disponibles, optionnellement. Par exemple, si vous désirez donner accès aux statistiques d’un site A à l’utilisateur Alice, et d’un site B à un utilisateur Bernard, consulter les directives AllowAccessFromWebToAuthenticatedUsersOnly et AllowAccessFromWebToFollowingAuthenticatedUsers. SkipHosts est une directive qui vous permet de ne pas compter dans les statistiques votre propre machine, en lui indiquant son adresse IP. SkipFiles permet d’indiquer les fichiers que vous ne désirez pas compter dans les statistiques. Par exemple : « SkipFiles=’robots.txt test.php’ ». Pour filtrer un type de fichier, ne pas le compter comme page vue, compléter la directive NotPageList.

Tester sa configuration et activer le processus

En une ligne dans un terminal :

sudo -u www /usr/local/www/awstats/tools/awstats_updateall.pl -configdir=/usr/local/etc/awstats/ now

Si le résultat est probant (vérifiez la présence des fichiers générés, dans le répertoire public html, et les fichiers de base de données), il ne vous reste plus qu’à l’installer cette action dans la crontab. Par exemple, pour la crontab de l’utilisateur www :

crontab -e -u www

Et dans cette crontab, sur une seule ligne pour une activation toutes les heures :

0 * * * * /usr/local/www/awstats/tools/awstats_updateall.pl -configdir=/usr/local/etc/awstats/ now

Consulter les statistiques via le web

Il y a plusieurs façons de mettre en place un site web. Si vous avez accès au serveur DNS, créer un hôte virtuel sera apprécié par vos utilisateurs. Prenons le cas du site http://stats.foo.bar/ dont le nom traduit bien sa fonction. Dans ce cas, la configuration apache pour ce site virtuel sera du style :

<VirtualHost 192.168.1.1:80>
   ServerName stats.foo.bar
   DocumentRoot /usr/local/www/awstats
   #
   # Directives to allow use of AWStats as a CGI
   Alias /awstatsclasses "/usr/local/www/awstats/classes/"
   Alias /awstatscss "/usr/local/www/awstats/css/"
   Alias /awstatsicons "/usr/local/www/awstats/icons/"
   ScriptAlias / "/usr/local/www/awstats/cgi-bin/"
   #
   # This is to permit URL access to scripts/files in AWStats directory.
   <Directory /usr/local/www/awstats/>
       Options None
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 192.168.1.50
   </Directory>
</VirtualHost>

Remarquez la ligne Allow from 192.168.1.50 qui précise à Apache de ne donner l’accès en consultation qu’à cette adresse IP. Si protéger vos statistiques des regards indiscrets et des moteurs indélicats ne vous intéresse pas, remplacez ces deux lignes (Deny et Allow) par :

               Order allow,deny
               Allow from all

Pour un second serveur de stats, dans un autre domaine, recopiez cette configuration et corrigez ServerName.

Si vous désirez changer l’habillage de awstats (il faut lui reconnaître un look spartiate), regardez du côté de Jawstats ou Mawstats.

Plussoyez !

Les forums sont fermés.