28-11
2009

Manipulation des logs Web pour utiliser Webalizer

Webalizer est un outils de statistique permettant, à partir des logs, de vous donner pas mal d'informations concernant vos visiteurs, leurs provenances. Contrairement à Google Analytics, l'analyse se fait au niveau des Logs du serveur et non pas si le client a activé, ou non le javascript (par exemple les bots). Dans mon cas, j'étais sur un hébergement mutualisé chez OVH, et lors de ma migration sur mon nouveau dédié, j'ai souhaité installé Webalizer. Mon problème est qu'OVH m'a créé un fichier de log par jour (gunzippé) depuis un peu plus d'un an et demi. L'importation risque d'être longue si je fais tout à la main. Sachant que d'un point de vue légal on se doit de conserver les logs pendant une durée de 10 ans, autant penser à faire des backups fréquents. Heureusement, certains ont déjà prévu des scripts permettant d'effectuer toute la manipulation à notre place. Je récupère donc les logs sur le serveur d'OVH (cette opération est plutôt longue et ne sera pas détaillée, pour ma part j'ai utilisé l'extension FireFox DownThemAll). J'upload ensuite les logs sur mon serveur dédié en créant un sous dossier backup_ovh.
cd /var/log/
mkdir backup_ovh
L'opération me prends une petite heure mais les logs finissent par arriver sur le serveur. Par contre, là, pour dire à Webalizer d'analyser automatiquement tous les logs de ce dossier, et dans l'ordre, je vais avoir un peu de mal. Webalizer analyse les logs au jour le jour et les retours en arrière ne sont pas possibles. Il faut donc, soit définir ses logs jours par jours dans le fichier de configuration, soit les merger ensemble chronologiquement. Après un peu de Google, je découvre qu'Awstats propose un outils en perl permettant d'effectuer cette opération. Le script se nomme logresolvemerge.pl et est installé par défaut dans le paquet Awstats, mais nous n'allons pas encombrer notre OS avec un outils en plus, nous allons chercher directement ce script. On prends la version tar.gz disponible sur Sourceforge, on extrait et on récupère le script qui nous intéresse.
cd /tmp/
wget http://sourceforge.net/projects/awstats/files/AWStats/6.95/awstats-6.95.tar.gz/download
tar -xf awstats-6.95.tar.gz
cd awstats-6.95/tools/
mv logresolvemerge.pl /etc/webalizer/logresolvemerge.pl
Voilà, notre script est prêt à être utilisé. Je l'ai placé dans le répertoire de configuration de Webalizer, vous pouvez tout aussi bien le placer dans dossier dans lequel vous avez placé vos backups. Maintenant nous allons passer au merge des Logs.
cd /var/log/backup_ovh/
/etc/webalizer/logresolvemerge.pl /var/log/backup_ovh/admin-serv.net.*.gz > /var/log/backup_ovh/admin-serv.merged.log
On attends que le merge s'effectue (il m'aura fallu environ 10 minutes sur un dual Core), et quelques minutes, notre fichier unique est prêt. Maintenant on configure Webalizer pour utiliser ce fichier unique (je ne passe pas en revue la configuration de Webalizer, j'estime que c'est plutôt simple).
cd /etc/webalizer/
nano admin-serv.net.conf
# Je change
LogFile /var/log/lighttpd/adminserv.log.1.gz
# En
LogFile /var/log/backup_ovh/admin-serv.merged.log
# On sauvegarde
cd /etc/cron.daily/
# On execute webalizer
./webalizer
On vérifie ensuite le résultat à notre adresse de Webalizer.
Webalizer: Stats Usage pour Admin-Serv.net
Voilà, il ne nous reste plus qu'à remettre notre configuration actuelle pour qu'elle fonctionne correctement avec nos stats actuelles et le tour est joué.

 

 

Aucun commentaire pour ce billet.

 

Votre commentaire