Mise en place de statistiques Web sur Apache avec Awstats

Cet article a été réalisé avec une Centos 4.6 sur laquelle j’ai activé le dépot DAG WIERS.

Un serveur Apache fonctionne avec plusieurs virtualhosts paramétrés ayant chacun son fichier de log séparé dans le dossier /var/log/httpd.

J’installe des paquets qui me seront utiles avec awstats et awstats lui-même avec les commandes suivantes :

yum -y install perl-Compress-Zlib perl-String-CRC32 perl-Digest-SHA1
yum -y install awstats

Je copie le contenu du fichier /etc/httpd/conf.d/awstats.conf dans mon fichier de configuration générale de mon serveur
pour qu’il soit dans la directive
«  » de ma machine.

Si vous n’avez pas de Virtualhost, vous pouvez le laisser tel quel sur votre serveur si vous modifiez ce paramètre :

#allow from 127.0.0.1
allow from all

Ceci permet de se connecter aux stats depuis le réseau.

Pour ma part, je dois désactiver la config awstats par défaut, en renommant le fichier awstats

mv /etc/httpd/conf.d/awstats.conf /etc/httpd/conf.d/awstats.conf.disable

Il faudra corriger un problème de droits d’accès pour qu’apache puisse lire les logs et écrire les statistiques dans son dossier awstats :

chown -R apache: /var/lib/awstats
chown -R apache: /var/log/httpd

On recharge enfin apache avec la commande /etc/init.d/httpd/reload.

Les fichiers de configuration d’awstats se trouvent dans /etc/awstats.

Ils sont nommés de cette manière là :
awstats.ce_que_je_veux.conf

Par exemple, sur un de mes virtualhosts « awstats.devindesvins.conf » pour le site www.devindesvins.com.

Créez-en un en vous inspirant des exemples en place, et déplacez les modèles de l’install dans un sous dossier que vous créerez si vous souhaitez les « désactiver ».

De mémoire, je n’ai modifié que ces variables depuis ma copie du fichier exemple en awstats.devindesvins.conf :

# Ceci permet de récupérer tous les bouts de fichiers de log créés lors des rotations de log du système.
# fichier-access_log, fichier-access_log.1,
fichier-access_log.2, etc ...
LogFile="/usr/bin/logresolvemerge.pl /var/log/httpd/devindesvins-access_log* |"

# Ces fichiers sont des logs de serveur Web apache
LogType=W
LogFormat=1

# A adapter à son cas bien évidemment,
# ici, je met le nom de mon VirtualHost
SiteDomain="devindesvins.com"
HostAliases="www.devindesvins.com"

# Permettre de faire des résolutions de noms dns pour
# remplacer les adresses ips par leur nom, ou faire
# des stats par pays
DNSLookup=1

# Je personnalise avec mon logo et l'url
# de mon site par défaut
$Logo||='logo.jpg';
$LogoLink||='http://www.caplaser.fr';
BarWidth = 260
BarHeight = 90
StyleSheet=""

# J'active le plugin GeoIP que j'ai installé pour
# localiser les adresses Ip qui se connectent et
# faire des stats par pays.
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"

Awstats installe un script dans cron pour actualiser les stats toutes les heures, nommé /etc/cron.hourly/00awstats.

Pour ma part je le supprime, car je ne veux pas que ce soit root qui lance les stats vu que cela va poser des problèmes de droits par la suite.

Je crée un script qui va lancer les stats tous les soirs seulement, et ceci avec le compte apache.

Pour cela je crée le fichier /etc/cron.daily/awstats avec ce contenu :

#!/bin/bash

#
# Lancement des stats sous le compte apache
#
su -c "awstats_updateall.pl -awstatsprog=/var/www/awstats/awstats.pl now" -s /bin/bash apache >/dev/null

exit 0

Maintenant les statistiques se lanceront toutes les nuits pour chaque fichier de configuration présent dans le dossier /etc/awstats.

Je ne fais pas les stats toutes les heures, car avec les résolutions dns et geoip, cela peut prendre du temps en fonction du nombre de site et le volume des connexions sur ceux-ci.

Je préfère donc que mon serveur travaille de nuit pour ne pas impacter ses performances de jour.

Pour visualiser les stats, il faut se connecter avec votre navigateur sur l’url ressemblant à ceci :

http://IP.DE.MON.SERVEUR/awstats/awstats.pl?config=ma_configuration

Remplacez IP.DE.MON.SERVEUR par le nom dns ou l’ip de votre serveur web et ma_configuration par la partie centrale du fichier /etc/awstats/awstats.ma_configuration.conf

Par exemple, chez moi http://213.190.70.6/awstats/awstats.pl?config=devindesvins.

Exemple de Stat

Laisser un commentaire

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

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