Mesurez l’audience de votre site web avec AWStats et JAWStats

jawstats

Allez ça fait plusieurs jours que je me tâte à écrire cet article. Aujourd’hui je me lance. Je vous propose d’apprendre à mesurer l’audience de votre site web en utilisant uniquement les logs générés par Apache. Il vous faut donc un accès complet à votre serveur puisque nous allons bidouiller la configuration d’Apache et utiliser un petit soft bien sympa répondant au doux nom d’AWStats.

Comme le dit si bien Wikipédia, AWStat est donc un analyseur de logs web qui va générer des vues graphiques des statistiques d’accès à nos services web. Vous allez voir que nous retrouvons tous les chiffres qu’il est important de connaître en mesure d’audience : visites, visiteurs, hits, pages vues, backlinks…

C’est un outil écrit en Perl qui fonctionne donc sans problème sous Linux et distribué sous licence GNU GPL.

C’est parti !

Installation d’AWStats

Je travaille sur le serveur hébergeant ce site, soit une Debian 8 (testing). L’installation s’effectue simplement, comme d’habitude sous Linux :

sudo apt-get install awstats

Configuration d’AWStats pour un site web

AWStats propose un modèle dans le dossier /etc/awstats/ que nous allons copier, renommer et compléter pour coller à notre site :

sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.www.guillaume-leduc.fr.conf

Le contenu du fichier est très commenté, je ne vais donc pas le copier / coller ici. Par contre voici les valeurs que j’ai modifié pour mon site :

LogFile=/var/log/apache2/fichier_de_log_a_analyser
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="www.guillaume-leduc.fr"
HostAliases="guillaume-leduc.fr www.guillaume-leduc.fr"
DirData="/var/lib/awstats"
DirCgi="/awstats"
SkipFiles="REGEX[^\/wp-admin] /wp-login.php"

Voilà pour le plus important, AWStats propose une belle quantité d’options et de filtrages. Par exemple ici, comme le site tourne avec un WordPress, j’ai désactivé l’analyse pour la partie administration…

Test de la configuration

Normalement vous devriez pouvoir lancer AWStats pour qu’il démarre une première analyse avec la commande suivante :

sudo perl /usr/lib/cgi-bin/awstats.pl -config=www.guillaume-leduc.fr -update

Si vous n’avez pas d’erreur c’est que tout se passe bien (un fichier TXT doit être généré dans /var/lib/awstats/), vous pouvez dès maintenant ajouter une tâche cron pour exécuter l’analyse à intervalle de temps régulier et avoir des données à jour. Sur mon site par exemple, les logs sont analysés toutes les 15 minutes.

#/etc/crontab
15 *    * * *   root    perl /usr/lib/cgi-bin/awstats.pl -config=www.guillaume-leduc.fr -update

Installation d’une interface web

Je sais pas vous mais moi je trouve l’interface par défaut d’AWStats un peu moche… D’ailleurs, si vous partagez mon avis, nous partageons aussi celui de Jon Combe, un développeur web qui en avait marre des simples pages HTML générées par AWStats. Il a donc décidé de développer une interface web un peu plus jolie, et ça s’appelle JAWStats ! La démonstration est par ici 🙂

Installation

L’installation s’effectue comme un site web classique. Téléchargez les sources sur le site et décompressez l’archive là où vous souhaitez l’installer (/var/www/ par défaut).

cd /ou/vous/installez/lapplication/
wget http://static.jawstats.com/src/jawstats-0.7beta.zip
unzip jawstats-0.7beta.zip

Configuration du site et correction de bug

D’après la documentation, copiez le fichier de configuration d’exemple et complétez-le. Voici le mien :

<?php
  // core config parameters
  $sDefaultLanguage      = "fr";
  $sConfigDefaultView    = "thismonth.all";
  $bConfigChangeSites    = true;
  $bConfigUpdateSites    = true;
  $sUpdateSiteFilename   = "xml_update.php";
 
  // individual site configuration
  $aConfig["www.guillaume-leduc.fr"] = array(
    "statspath"   => "/var/lib/awstats/",
    "updatepath"  => "/usr/lib/cgi-bin/",
    "siteurl"     => "https://www.guillaume-leduc.fr",
    "sitename"    => "Le blog de Guillaume",
    "theme"       => "default",
    "fadespeed"   => 250,
    "password"    => "",
    "includes"    => "",
    "language"    => "fr"
  );
?>

La ligne « password » contient le mot de passe demandé lorsque vous demanderez à JAWStats de se mettre à jour.

À noter que la version utilisée ici contient un petit problème à la ligne 257 du fichier index.php. L’auteur a mal ouvert la balise PHP… Corrigez :

<?

en :

<?php

Configuration du vhost Apache

Il ne reste plus que la configuration du vhost Apache pour accéder à JAWStats :

<VirtualHost *:80>
        ServerAdmin     admin@guillaume-leduc.fr
        ServerName      stats.mon-domaine.fr
        DocumentRoot    /ou/vous/avez/intalle/jawstats
 
        <Directory /home/guillaume/html/awstats.guillaume-leduc.fr>
                Options -Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                Require all granted
        </Directory>
 
        CustomLog /var/log/apache2/awstats-access.log "combined"
        ErrorLog /var/log/apache2/awstats-error.log
</VirtualHost>

Vous pouvez sans problème ajouter un système d’authentification grâce à l’authentification Apache si besoin… C’est même conseillé si vous ne voulez pas que n’importe qui puisse accéder à vos statistiques.
Une fois prêt vous pouvez tester la configuration, activer le virtual host et redémarrer Apache :

sudo a2ensite site.conf
sudo apache2ctl configtest
sudo service apache2 reload

Et voilà ! Vous pouvez accéder à votre nouvel outil à l’adresse choisie dans votre vhost !

Amusez-vous bien, et en cas de problème, n’oubliez pas les commentaires 🙂

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email