Qu’est ce que AWStats ?

Comme Google Analytic, Awstats (http://awstats.sourceforge.net/) est un projet open source qui permet de gérer les statistiques de son site web,
à partir des fichiers logs générés par le serveur d'hébergement du site (généralement apache).
Il peut être consulté via un CGI ou génèrer des pages HTML statiques.

Awstats peut gérer aussi bien les accès à la partie web, mais aussi le FTP ou les mails.
On peut aussi appliquer des filtres d’inclusion ou d’exclusion sur la liste complète des URL consultées.

Voici quelques unes de ses fonctionnalités web par rubrique :

  • Historique : mensuel, hebdomadaire, journalier, horaire.
  • Visiteur : pays, hôte, dernière visite, robots ...
  • Navigation : durée des visites, dernière visite, fichiers vus, page d’entrée et de sortie, page les plus consultées...
  • Provenance : origine, moteurs de recherche, sites, mots recherchés, pays...
  • Occupation du serveur : Jour de la semaine et Heure (pages, hits, KB pour chaque heure),
  • Configuration matérielle des visiteurs : taille de l'écran, browser utilisé avec support utilisé (flash, real,java,pdf ...), système d’exploitation, navigateurs (dont la version)...
  • Rapport de cluster pour le load balancing.

Installation sur une Debian GNU Linux :

Configuration de Awstat

J'ai trouvé plusieurs configurations sur le net et je vous en propose une issue du site http://wiki.bargeo.fr/doku.php?id=configuration:awstats

Le fichier de configuration par défaut, /etc/awstats/awstats.conf est automatiquement analysé par l'intermédiaire du cron.d. Pour éviter toute interférence lors d'une mise à jour, je n'utilise pas ce fichier.

Dans le cas d'un serveur hébergeant plusieurs hôtes virtuels, il est plus pratique de définir des options communes aux différents sites. Pour cela, il suffit d'utiliser le fichier /etc/awstats/awstats.conf.local, fourni dans cet objectif par le paquet. Ce fichier n'est pas modifié lors des mises à jour.

Lorsque l'on a plusieurs virtual hosts, on peut tout de même avoir envie de consulter des données globales, surtout concernant la bande passante utilisée. Pour cela, j'utilise un fichier de configuration utilisant une expression régulière simple qui n'ignore aucun hôte.
Accès aux fichiers de logs / Logrotate

Awstats a besoin d'accéder en lecture au fichiers de logs pour les analyser. Par défaut, ils sont accessibles uniquement à l'utilisateur root et au groupe adm. On pourrait ajouter l'utilisateur www-data au groupe adm, mais ce n'est pas la solution proposée ici. Nous allons modifier les droits du fichier concerné par l'intermédiaire de la configuration de logrotate.

Nous définissons aussi une tâche prerotate, qui est exécutée avant le changement de fichier de log afin de ne pas perdre de statistiques. Avec ce système il est toujours possible de perdre quelques hits, qui auraient lieu entre le lancement de la tâche prerotate et le changement du fichier de log en lui-même. A moins de n'avoir un site à très forte fréquentation les statistiques sont calculées assez rapidement et il faut vraiment être très exigeant pour considérer cela comme un problème !
Mise à jour des statistiques

Pour mettre à jour les statistiques, j'utilise le fichier /usr/share/doc/awstats/examples/awstats_updateall.pl, fourni par le paquet. J'ai copié ce fichier dans mon répertoire personnel, pour éviter d'éventuels soucis lors d'une mise à jour. Enfin, pour simplifier la lisibilité dans le cron, j'ai créé un fichier sh qui lance le précédent.

Dans cet exemple, les fichiers de données appartiennent à www-data. Cela n'est utilisé que si l'on autorise la mise à jour des statistiques depuis le navigateur. C'est une option de configuration d'Awstats.

Consultation

Pour la consultation des statistiques, la méthode proposée est celle dynamique à travers l'utilisation du script CGI. Il est important de protéger l'accès car il peut y avoir des problèmes de sécurité. Le plus simple est d'inclure le script dans un autre hôte prédéfini comme dans la configuration proposée ci-dessous.

Mode linéaire

   * Fichiers de configuration des sites dans : /etc/awstats.
   * Fichiers des données awstats appartiennent à www-data et sont dans : /home/var/awstats.
   * Autre scripts : /home/awstats.

Se connecter en root.

apt-get update
apt-get install awstats
mkdir /home/awstats
mkdir /home/var/awstats
chown www-data:www-data /home/var/awstats
cp /usr/share/doc/awstats/examples/awstats_updateall.pl /home/awstats/awstats_updateall.pl
vim /home/awstats/update_stats.sh

Ce fichier doit contenir le code suivant et sera utilisé dans le cron pour déclencher la mise à jour de toutes les statistiques.

#!/bin/bash
 
su - www-data -c "/usr/bin/perl /home/awstats/awstats_updateall.pl -awstatsprog=/usr/lib/cgi-bin/awstats.pl -configdir=/etc/awstats now -excludeconf=awstats.conf"
vim /etc/logrotate.d/apache2

Ce fichier doit déjà exister. Il faut le modifier pour obtenir quelque chose approchant celui ci-dessous.
Les lignes importantes sont create et celles allant de prerotate à endscript.

/var/log/apache2/*.log {
     weekly
     missingok
     rotate 52
     compress
     delaycompress
     notifempty
     create 644 root adm
     sharedscripts
     prerotate
         /home/awstats/update_stats.sh > /dev/null
     endscript
     postrotate
         if [ -f /var/run/apache2.pid ]; then
             /etc/init.d/apache2 restart > /dev/null
         fi
     endscript
 }
vim /etc/logrotate.d/pure-ftpd-common

Même remarque que pour le fichier de configuration du logrotate d'Apache.

/var/log/pure-ftpd/transfer.log {
    weekly
    missingok
    rotate 7
    compress
    delaycompress
    create 644 root adm
    prerotate
        su - www-data -c "/usr/lib/cgi-bin/awstats.pl -config=ftp -update > /dev/null"
    endscript
    postrotate
        /usr/sbin/pure-ftpd-control restart >/dev/null
    endscript
    notifempty
}
chmod 644 /var/log/apache2/access.log
chmod 644 /var/log/pure-ftpd/transfer.log
crontab -e

Dans la crontab du root, ajouter la ligne ci-dessous.

0 3 * * * /home/awstats/update_stats.sh > /dev/null
vim /etc/apache2/httpd.conf

Fichier de configuration d'Apache non modifié lors des mises à jour et dans lequel on ajoute les lignes suivantes :

# Log Format to include virtual host name
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" virtual_combined
 
CustomLog /var/log/apache2/access.log virtual_combined

Il faut ensuite vérifier pour chaque virtual host que la directive CustomLog n'est pas redéfinie ou alors qu'elle l'est de la même manière que ci-dessus.

Configuration pour la consultation

Dans le virtual host concerné ( cd /etc/apache2/sites-available puis vim default) ajouter les lignes suivantes, qui permettent d'accéder aux statistiques.

ScriptAliasMatch ^/awstats\.pl$ /usr/lib/cgi-bin/awstats.pl
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
 
        AuthUserFile /chemin/vers/fichier/htpasswd
        AuthName "Restricted Access"
        AuthType Basic
        Require user alban
    </Directory>
    Alias /awstats-icon/ /usr/share/awstats/icon/
    <Directory /usr/share/awstats/icon>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

Pour faire une page listant toutes les statistiques disponibles, il suffit d'utiliser le code php suivant :

<p>Statistiques Awstats disponibles :
        <ul>
        <?php
        $liste = scandir('/etc/awstats');
        foreach ($liste as $fichier) {
            if (preg_match('/^awstats\.(.*)\.conf$/', $fichier, $tmp)) {
                echo '<li><a href="awstats.pl?config='.$tmp[1].'">'. $tmp[1] . '</a></li>';
            }
        }
        ?>
        </ul>
    </p>

Fichiers de configuration d'Awstats

Le fichier commun qui est inclus dans les autres : awstats.conf.local.

Le fichier utilisé pour la configuration ftp : awstats.ftp.conf.
Fichier pour tous les sites

On peut créer ce fichier sous un nom quelconque : /etc/awstats/awstats.tout_site.conf.

#-----------------------------------------------------------------------------
# INCLUDES
#-----------------------------------------------------------------------------
 
# You can include other config files using the directive with the name of the
# config file.
# This is particularly usefull for users who have a lot of virtual servers, so
# a lot of config files and want to maintain common values in only one file.
# Note that when a variable is defined both in a config file and in an
# included file, AWStats will use the last value read for parameters that
# contains one value and AWStats will concat all values from both files for
# parameters that are lists of value.
#
 
Include "/etc/awstats/awstats.conf.local"
 
 
#-----------------------------------------------------------------------------
# MAIN SETUP SECTION (Required to make AWStats work)
#-----------------------------------------------------------------------------
 
# "SiteDomain" must contain the main domain name, or the main intranet web
# server name, used to reach the web site.
# If you share the same log file for several virtual web servers, this
# parameter is used to tell AWStats to filter record that contains records for
# this virtual host name only (So check that this virtual hostname can be
# found in your log file and use a personalized log format that include the
# %virtualname tag).
# But for multi hosting a better solution is to have one log file for each
# virtual web server. In this case, this parameter is only used to generate
# full URL's links when ShowLinksOnUrl option is set to 1.
# If analysing mail log, enter here the domain name of mail server.
# Example: "myintranetserver"
# Example: "www.domain.com"
# Example: "ftp.domain.com"
# Example: "domain.com"
#
SiteDomain="localhost"
 
# Enter here all other possible domain names, addresses or virtual host
# aliases someone can use to access your site. Try to keep only the minimum
# number of possible names/addresses to have the best performances.
# You can repeat the "SiteDomain" value in this list.
# This parameter is used to analyze referer field in log file and to help
# AWStats to know if a referer URL is a local URL of same site or an URL of
# another site.
# Note: Use space between each value.
# Note: You can use regular expression values writing value with REGEX[value].
# Note: You can also use @/mypath/myfile if list of aliases are in a file.
# Example: "www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]"
#
HostAliases="REGEX[^.*$]"
 
 
# This parameter give the list of all authorized authenticated users to view
# statistics for this domain/config file. This parameter is used only if
# AllowAccessFromWebToAuthenticatedUsersOnly is set to 1.
# Change : Effective immediatly
# Example: "user1 user2"
# Example: "__REMOTE_USER__"
# Default: ""
#
AllowAccessFromWebToFollowingAuthenticatedUsers="alban toto martin dupont durant durand"

Url permettant d'accéder à vos statistiques :

http://www.votreserveur.com/cgi-bin/awstats.pl?config=votredomaine.com

ou Tester directement l'analyse des logs

sudo /usr/lib/cgi-bin/awstats.pl -config=ma_machine.mon_domaine.mon_pays –update

Jawstats

On peut aussi mentionner jawstats qui se base sur awstat.
JAWStats est gratuit et open source, il produit des informations claires et faciles à comprendre grâce à des tableaux et des graphiques sur les visiteurs de votre site web.
Je vous renvoie à l'url pour voir plus en détail son fonctionnement http://www.jawstats.com/ .
Il est encore actuellement en version beta 0.7.

Voici la page pour son installation :

http://www.jawstats.com/documentation

Quelques points importants pour comprendre et analyser les statistiques de son site Web.

Ce n'est pas toujours évident pour les non initiés de comprendre comment fonctionnent les statistiques de leur site web.
Voici en quelques points une petite explication sur les principaux mots clés que vous trouverez sur de nombreux systèmes de statistiques.

L'un des points importants à bien connaître c'est la différence entre une visite, un visiteur unique et les pages vues.
Un visiteur unique est une personne qui peut effectuer plusieurs visites par jour et consulter plusieurs pages par visite.
Exemple :

Nous sommes le 13 juillet et pendant que la plupart de nos collègues font le pont, Denis visite votre site web à 9h00 et consulte 4 pages.
Il se reconnecte ensuite à 12H00 et consulte à nouveau 3 pages.

Voici comment vont être interprétées vos statistiques:

  • 1 visiteur unique (Denis, tous les autres sont à la plage 😉 )
  • 2 visites (une à 9H, la seconde à 12H)
  • 7 pages vues (4 pages à 9H et 3 pages à 12H)

Le nombre de pages vues sera toujours supérieur ou égal au nombre de visites qui lui même sera supérieur à celui des visiteurs uniques.
Un nombre de visites supérieur au nombre de visiteurs uniques signifie que les internautes sont intéressés par votre site et qu'ils reviennent plusieurs fois par jour.
Il y a sûrement plusieurs raison à cela, votre site est mis à jour plusieur fois par jour ou alors vous avez des services très intéressants.

La différence entre visites et pages vues vous indiquera si votre site intéresse vos visiteurs.
Cependant il faut aussi recouper ces informations avec d'autres indicateurs comme « la moyenne de pages vues par visite » et la « durée moyenne des visites ».

Moyenne de pages vues par visite:

Plus votre moyenne est élevée, plus les visiteurs naviguent sur votre site.
Il y a 2 interprétations possibles : soit votre site les intéresse, soit votre navigation n'est pas facile et l'internaute doit chercher l'information pour accéder à la bonne page.

Durée moyenne des visites:

Plus cette durée est élevée, plus les internautes prennent le temps de lire les informations présentes sur le site.
Un faible indicateur montrera que le contenu ne les intéresse pas où qu'ils n'ont pas trouvé ce qu'ils cherchaient.

Heure du serveur:

Cela permet de voir le trafic sur votre serveur, et surtout prévoir les heures creuses de l'activité de votre site pour effectuer les travaux de maintenance.

Heures locales:

Cette indication vous permettra de mieux connaître vos visiteurs.
S'ils se connectent en journée, on peut penser qu'ils s'agit d'employés de bureau ou de personnes au foyer.
S'ils se connectent en soirée, on peut penser qu'ils s'agit de travailleurs n'ayant pas de connexion la journée et s'ils se connectent la nuit on peut penser qu'il s'agit d'une population plus jeune.

Localisation:

Connaître le lieu de connexion de vos visiteurs peut vous permettre de savoir si votre site intéresse les Français,
les communautés francophones, ou le monde entier. S'il est valable de faire un site multilingue ou si vos produits intéresseraient des marchés plus éloignés.
Attention aussi aux robots qui peuvent parfois fausser les résultats.

Suivi du visiteur:

Pages d'entrée:

C'est la première page qu'un visiteur voit en arrivant sur votre site, en général c'est la page d'accueil.
Mais cela peut être aussi d'autres pages conseillées par d'autres sites.
Elle permet également de déterminer quelles pages sortent le plus fréquemment dans les moteurs de recherche.

Pages de sortie:

C'est la dernière page qu'un visiteur a vu avant de quitter votre site. Si c'est souvent la même page il faut essayer de
comprendre pourquoi elle fait fuir les internautes. Il peut y avoir plusieurs raisons :
un problème d'affichage, des erreurs javascript, une page mal designée ou utilisant une technologie peu répandue ...

Configuration matérielle:

Permet d'optimiser son site en fonction de la configuration matérielle de ses visiteurs.

Navigateur:

Définir le pourcentage de visites par navigateur vous permettra d'étudier l'utilité de rendre votre site compatible ou pas à certains logiciels de navigation.

Résolution:

Idem que pour les navigateurs, essayez de voir si votre site est correctement visible pour tout type de résolution.
Exemple : si vous faites un site optimisé pour du 1024 et que vos visiteurs sont encore en 800*600 (si si il y en a encore).

Provenance:

La provenance est un point fondamental qu'il faut bien analyser afin de faire évoluer son trafic.

Accès direct:

Plus son nombre est élévé plus votre votre site est connu, ou devrais-je plutôt dire son url est connue.
Il peut y avoir plusieurs raisons : les utilisateurs ont ajouté votre site dans leurs favoris, vous avez une newsletter qui intéresse du monde et génére du trafic, ...

Référents ou sites externes:

Permet de connaître les sites qui font référence au votre.
Le but est alors de nouer des partenariats avec des sites de même nature afin de générer plus de trafic.

Moteurs de recherche:

Si votre site est bien référencé et que votre référencement est efficace, les moteurs de recherche généreront beaucoup de trafic.
Les mots clés sont aussi très important, il faut vérifier si les mots clés correspondent bien au contenu de votre site.

Il existe d'autres indicateurs mais cette petite liste vous permettra d'y voir un peu plus clair dans l'analyse de vos résultats.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.