Installer et configurer Awstats pour connaitre les statistiques sur les visiteurs de ses sites web

Le but de ce tutorial est de vous décrire comment avoir des statistiques complète sur les visiteurs de votre site. Pour cela nous allons utiliser un excellent logiciel : Awstats. Pour plus d’informations : Awstats.

Nous allons étudier une installation multi domaine vous permettant d’avoir des statistiques séparés pour chaque domaine de votre serveur.

Nous supposons que vous êtes connecté en ligne de commande avec SSH.

Installation

Tout d’abord on récupère le fichier avec une commande wget.

wget http://umn.dl.sourceforge.net/sourceforge/awstats/awstats-6.3.tgz

On décompresse ensuite le fichier compressé en tar et en gzip

tar xvfz awstats-6.3.tgz

Une fois cela fait, on copie simplement le dossier cgi-bin dans notre cgi-bin utilisé par Apache, on pourrait aussi changer la configuration d’Apache pour faire cela. En effet Awstats est écrit en perl qui n’est autre que du cgi.

cp -r awstats-6.3/wwwroot/cgi-bin/* /usr/lib/cgi-bin/

Configuration

La configuration de awstats se trouve dans le fichier awstats.model.conf, en fait Awstats accepte autant de configurations que l’on souhaite. Il suffit de créer autant de fichiers de configuration que de configurations nécessaires. Nous allons donc créer un fichier par domaine voulu, vous pourriez aussi vouloir avoir 2 domaines dans les mêmes statistiques et cela est tout à fait possible.

cp  awstats.model.conf  awstats.votredomaine.com.conf

On se déplace ensuite dans notre répertoire cgi.

cd /usr/lib/cgi-bin

Maintenant, éditer le fichier awstats.votredomaine.com.conf pour changer quelques paramètres

Tout d’abord nous allons indiquer à Awstats où trouver les logs de Apache. Trouvez la ligne LogFile.

LogFile="/var/log/apache/access.log"

Nous allons ensuite dire quel domaine principal est concerné par les statistiques, ce paramètre n’est pas forcement nécessaire nous allons voir après pourquoi.

SiteDomain="votredomaine.com"

En effet, nous allons indiquer dans HostAliases et de manière identique les domaines que l’on souhaite inclure dans ce fichier de configuration. Awstats va rechercher le nom de ces domaines dans les logs d’Apache. Notez que le terme est sous forme régulière.

HostAliases="REGEXvotredomaine\.com$"

Enfin le plus délicat, le format des Logs. Ici il faut mettre d’accord Apache et Awstats. Si vous hébergez plusieurs domaines sur votre serveur vous avez alors choisi peut être de séparer les logs d’Apache, si ce n’est pas le cas il faut ajouter dans Apache le paramétre %v dans LogFormat indiquant à Apache que les Logs doivent aussi contenir le nom du domaine (virtualname). Je vous renvoi au tutorial d’installation d’Apache en multi domaine pour plus d’informations.

Danes apache

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\" %v" combined

Dans Awstats, la ligne LogFormat doit être « identique » dans le sens ou chaque variable indiqué doit correspondre.

LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %otherquot %virtualname"

Une fois cela réglé, faire ./awstats.pl -config= votredomaine.com –update pour voir si tout se passe bien. Si c’est le cas, vous aurez une réponse de ce genre :

Update for config "./awstats. votredomaine.com.conf"

With data in log file "/var/log/apache/access.log"...

Phase 1 : First bypass old records, searching new record...

Searching new records from beginning of log file...

Jumped lines in file: 0

Parsed lines in file: 74

Found 0 dropped records,

Found 0 corrupted records,

Found 0 old records,

Found 74 new qualified records.

Si vous avez des dropped records et aucun new qualified records alors il y a des problèmes dans le format des logs

Une fois cela fait, vous pouvez accéder à vos stats.

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

Définir une actualisation des statistiques avec cron

Nous allons maintenant dire au système d’exécuter régulièrement awstats pour qu’il mette à jour les statistiques. Nous allons utiliser le CRON pour cela, ce daemon permet d’exécuter à intervalle régulier certaines tâches.

Editer votre CRON (utilisateur root)

Crontab –e

Entrez la ligne suivante

1-51/10 * * * * perl /usr/lib/cgi-bin/awstats.pl -config=votredomaine.com –update

Pour exécuter l’actualisation des statistiques toutes les 10 minutes dans l’intervalle de temps 1-51 minutes. L’explication de cette ligne est simple. Les nombres indiquent à quelle minute doivent être lancé la tâche. Les 4 étoiles indiquent : toutes les heures, tous les jours, tous les mois, toutes les années. Ensuite vient la ligne de commande (la tâche)

Rotation des logs.

Il faut savoir aussi qu’une rotation des fichiers logs s’opèrent sur le système, lors de l’installation d’apache, celui-ci a aussi installé une rotation de ses fichiers logs. Pour ne pas perdre de visiteurs pendant la rotation on doit ajouter des instructions.

Allez dans /etc/logrotate.d/

cd /etc/logrotate.d/

Editer le fichier apache

vi apache

Entrez les lignes suivantes avant la ligne postrotate.

prerotate
         su - root -c "/usr/lib/cgi-bin/awstats.pl -config=cederoms.com -update > /dev/null"
endscript

Voilà, normalement tout est en ordre !