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.
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).
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
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/
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 : 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 au total. |
Vous pouvez
laissez un commentaire
sur cette page.