Statistique web avec AwStats


globe
Cette procédure explique comment mettre en place des statistiques basées sur le logiciel awstats. Elle a été testée sur une Fedra Core 4 et un serveur Apache 2.0.54.

Le hostname de la machine de test est xblade. Il faudra donc adapter les commandes et la configuration en fonction du nom de votre machine.

Le principal avantage de Awstats, est qu'il génère des stats à partir des logs du serveur Apache. Ainsi, on n'est pas obligé d'insérer du code dans chaque page web d'un site afin de comptabiliser le nombre de visiteurs, par exemple.

1. Installation

Bon bah pour l'installation, c'est plutôt simple :

yum install awstats.noarch

Pour les autres distrib faudra aller voir sur le site web pour récupérer les sources.

2. Configuration

La première commande à taper après l'installation de awstats est :

perl /usr/share/awstats/tools/awstats_configure.pl

Un assistant démarre alors, il faut lui indiquer :

  • le chemin où se trouve le fichier de configuration de apache : /etc/httpd/conf/http.conf
  • Need to create a new config file ? Y
  • Define config file name to create : xblade
  • Define config file path : /etc/awstats

Le script va alors modifier le fichier httpd.conf, en remplacent de la ligne :

CustomLog /yourlogpath/yourlogfile common
par
CustomLog /yourlogpath/yourlogfile combined 

et ajouter les lignes :

Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
<Directory "/usr/share/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from all </Directory>

Il va enfin créer un fichier de configuration dans /etc/awstats. Il faut ensuite éditer le fichier /etc/awstats/awstats.xblade.conf et vérifier certain paramètre comme :

LogFile="/var/log/httpd/access_log"
LogType=W
LogFormat=1
SiteDomain="xblade"

3. Construction ou mise à jour de la base

Si tout est ok, on passe alors à la construction/mise à jour de la base de statistiques avec la commande :

perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=xblade -update

Cela devrait afficher des messages comme :

Update for config "/etc/awstats/awstats.xblade.conf"
With data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 12
Found 12 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.

Il est également possible de réaliser cette action depuis un navigateur web, mais il faudra d'abord mettre AllowToUpdateStatsFromBrowser à 1 dans le fichier de configuration /etc/awstats/awstats.xblade.conf.

4. Création d'une page HTML de rapport

On créé un répertoire où stoker les statistiques : mkdir /var/www/html/stats On lance la commande suivante :

perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=xblade -output -staticlinks > /var/www/html/stats/awstats.xblade.html

On peut ensuite visionner le rapport de statistique sur http://xblade/stats/.

5. Automatisation

Afin d'automatisé ce procédé (mise à jour des stats + génération du rapport toutes les heures) voici un script, nommé update_stats.sh, à mettre dans /etc/cron.hourly/ :

#!/bin/sh
# Déclaration des variables
# Nom de la machine
HOST=xblade
# Emplacement ou mettre les rapports de stats
WWWROOT=/var/www/html/stats
# Répertoire ou se trouve awstats
PATHAWSTATS=/usr/share/awstats/wwwroot/cgi-bin
# Emplacement du fichier de log
LOGFILE=/var/log/httpd/access_log
# On met a jour la base de statistique de awstat
nice -n 15 perl $PATHAWSTATS/awstats.pl -LogFile=$LOGFILE -config=$HOST -update
# On génere la page principal de stats
nice -n 15 perl $PATHAWSTATS/awstats.pl -LogFile=$LOGFILE -config=$HOST -output -staticlinks > $WWWROOT/awstats.$HOST.html 

6. Adaptation

Dans certain cas, il se peut que la configuration des logs de votre serveur Apache est été changée. Il vous faudra alors modifier la variable LogFormat du fichier /etc/awstats/awstats.xblade.conf pour l'adapter au log généré par le serveur Web.

Exemple dans Apache :

LogFormat "%v %h %l %u %t \"%r\" %>s %b %P %T" combined

Adapatation dans awstats :

LogFormat = "%virtualname %host %other %referer %time1 %methodurl %code %bytesd %other %other"

Aller plus loin : site officiel


2 Commentaires pour "Statistique web avec AwStats"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Ta méthode a le mérite de marcher simplement, néammoins il existe une autre méthode qui permet d'avoir accès au script perl directement, je te la poste tout de suite

    RépondreRépondre
    deathdigger , le 13 mars 2006 à 10:57
  •  

    et voilà j'ai retrouvé la bonne méthode :) :
    http://www.redhat.com/archives/f...
    cela permet d'avoir accès à tous les liens

    RépondreRépondre
    deathdigger , le 13 mars 2006 à 11:06
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum