Où sommes nous ?

Statistique de mon serveur web

Il existe de nombreuses solutions pour afficher les statistiques de visites d'un site web. Les plus connus utilisent du JavaScript, mais je n'utilise pas : déjà parce qu'ils ne sont pas fiables (l'utilisateur peut l'avoir désactivé), et ensuite, car ... on ne sait pas où vous les données. Enfin, plus précisément, on sait trop bien où elles vont et que ça finit toujours par de la pub et de la surveillance.

Mais il y a une solution plus simple et totalement locale : utiliser les logs du serveur Apache. Je les agrège puis, je les stocke dans une base (postgre)SQL pour les afficher facilement dans ma page de statistiques.

En avant ... vers le passé

Nous allons utiliser un programme ... qui date du début du web ! En effet, Analog est sortie en 1995, il a été pendant des années (et reste sans doute) le plus rapide, le plus efficace et le plus puissant des analyseurs de log apache. Abandonné par son auteur en 2004, son site finira par disparaitre après des années de déshérence ... mais le flambeau est repris Amie Edition avec un nouveau site.

Si les rapports qu'il génère sont maintenant très désuets, il sort aussi ses statistiques sous une forme "compatible avec un traitement informatique" (dixit la doc).

La table SQL

                                         Table « public.stat_req »
Colonne | Type | Modificateurs | Stockage | Cible de statistiques | Description
---------+---------+---------------+----------+-----------------------+--------------------------------------
total | bigint | | plain | | total number of requests
semaine | bigint | | plain | | number of request on previous 7 days
image | boolean | | plain | | is it an image ?
uri | text | | extended | | related URI
Index :
"sr_uri" btree (uri)
"sr_uriimg" btree (uri, image)
Contient des OID: non


Le fichier de configuration

Où trouver les logs ...

LOGFILE /var/log/apache2/access_log*
OUTPUT COMPUTER

Suppression des demandes locales et les robots les plus courrants

HOSTEXCLUDE *.local
HOSTEXCLUDE localhost
HOSTEXCLUDE *.chez.moi
HOSTEXCLUDE *.googlebot.com
HOSTEXCLUDE *.search.msn.com
HOSTEXCLUDE *.webmeup.com
HOSTEXCLUDE *.yandex.com
HOSTEXCLUDE *.crawler.*

Suppression des requêtes qui doivent pas apparaître dans les stats.

REQEXCLUDE /Domestik/*
REQEXCLUDE /robots.txt
REQEXCLUDE /Images/*
REQEXCLUDE /images/*
REQEXCLUDE /php/*
REQEXCLUDE /lvdo.php*
REQEXCLUDE /Albumine/*
REQEXCLUDE /lvdo/*
REQEXCLUDE *.gif
REQEXCLUDE *.png
REQEXCLUDE *.css
REQEXCLUDE *.js
REQEXCLUDE */public_html/*
REQEXCLUDE */petits/*

On veut le moins de messages possibles ...

DEBUG OFF
WARNINGS OFF

Configuration des rapports

ALL OFF
REPORTSPAN OFF
GENERAL OFF
REQUEST ON
REQFLOOR        1R
REQCOLS RS

Ce qui donne quelque chose du genre :

r    lRS    1    145    46    /galerie/France/RhoneAlpes/EspKilly/HorsPistes/
r    lRS    1    127    33    /galerie/France/RhoneAlpes/BainsCaille/
r    lRS    1    119    20    /galerie/France/RhoneAlpes/Chamonix/Vallee_Blanche/
r    lRS    1    109    5    /galerie/France/RhoneAlpes/Parmelan/
r    lRS    1    99    23    /galerie/
r    lRS    1    92    13    /galerie/France/Annecy/Veyrier/
r    lRS    1    90    24    /galerie/France/RhoneAlpes/Hauterives/
r    lRS    1    87    57    /BananaPI/TeleInformation/VEBHRX8AAAEAAApEXpwAAAAA.jpg
r    lRS    1    85    22    /info/20100206_Monter_une_clef_USB_manuellement_sous_Ubuntu/
r    lRS    1    74    23    /galerie/France/RhoneAlpes/PtCaille/
r    lRS    1    74    24    /galerie/voyages.php
r    lRS    1    72    4    /galerie/France/RhoneAlpes/Clusaz/

Le code qui va bien

Enfin, il faut mettre dans le crontab de l'utilisateur qui fera tourner le script :

05 00 * * * analog -G +gConfig/Stat_analog.cfg | grep '^r[[:space:]]lRS' | awk 'BEGIN { IGNORECASE = 1; OFS="	"} {  {print $4, $5, ( $NF ~ /.jpg$/ ) ? "t":"f" , $NF } }' | psql www -c 'TRUNCATE stat_req; COPY stat_req FROM STDIN;'


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.