Mesurer son audience avec ses logs d’accès et Matomo

Divulgâchage : Mesurer l’audience de son site web sans javascrit ? c’est possible via ses journaux d’accès ! Aujourd’hui, on vous montre comment les utiliser avec Matomo. Après avoir récupérer ces fichiers journaux, on utilise la ligne de commande pour envoyer leur contenu à Matomo puis pour lui demander d’archive ses statistiques.

Pour mesurer l’audience de notre application, nous avons installé Matomo. Après avoir préparé notre système, installé les fichiers et configuré Matamo, est venue la question d’insérer un tracker en javascript…

Comme vous vous en doutez, on est pas fan de ces méthodes intrusives et on a donc royalement snobé cette étape de l’installation. Problème, aucune mesure statistique ne remonte et notre tableau de bord était donc désespérément vide…

Utiliser les traces. ddzphoto @ pixabay

Il nous fallait donc une autre méthode, plus passive et respectueuse de nos utilisateurs. Ça tombe bien, Matomo en propose une en lisant les journaux du serveur.

Les journaux d’accès

Pour nos chers lecteurs qui ne voient pas de quoi il s’agit, les serveurs web (apache, IIS, nginx, …) fournissent un journal des accès. Comme ses homologues, journaux intimes ou journaux de bords, il s’agit d’un document qui liste tous les faits marquants au fur et à mesure qu’ils se produisent.

Contrairement aux journaux intimes, les machines n’ayant pas de sensibilité artistique ou philosophique, ces journaux sont froids et sans vie.

Ainsi, chaque fois qu’un visiteur demande un accès à une ressource de votre application web, le serveur va journaliser cette demande et sa réponse (en tout cas, son statut et sa taille). Ce fichier contenant toute l’activité sur votre site web, on peut l’utiliser pour construire des statistiques de visites (i.e. avec goaccess qui est conçu pour ça).

Ces journaux contenant l’adresse IP du visiteurs, ils sont couverts par le RGPD, vous devrez les anonymiser pour vous en servir pour mesurer votre audience.

Suivant le serveur et le système sur lequel il fonctionne, ces fichiers sont enregistrés dans des répertoires différents :

Si vous utilisez les services d’un hébergeur tiers, il faudra voir avec lui quelle est son interface pour lire et récupérer ces fichiers (i.e. comment les récupérer chez kimsufi).

Pour la suite, je vais partir du principe que vos journaux sont disponibles depuis le serveur sur lequel vous avez installé Matomo. Que vous l’installiez directement sur votre serveur web, ou que vous rapatriez les journaux avec une tâche planifiée.

Envoyer les journaux à Matomo

Maintenant que les journaux sont disponibles, il faut les envoyer à Matomo pour qu’il les lise, mette à jour sa base de données et produise les rapports d’audience. Les grandes lignes sont décrites dans la documentation officielle.

Obtenir l’ID du site

Comme Matomo est conçu pour mesurer l’audience de plusieurs sites, vous allez avoir besoin de l’identifiant du site correspondant à vos journaux.

Cette information vous est montrée lorsque vous configurez un nouveau site mais si vous ne l’avez pas notée, vous pouvez la retrouver via les menus d’administration.

Pour voir l’ID du site, vous devez vous rendre dans l’interface d’administration de Matomo, via le menu en haut à droite (icône de roue crantée si votre écran est large, ou simplement « Administration » sinon). Ensuite, via le menu à gauche, cherchez la section « Sites web » et cliquez sur « Gérer ». Vous obtiendrez alors la liste des sites mesurés avec, sous le nom du site, l’ID.

Liste des site web gérés

Intégrer les logs

Avec les journaux d’accès et l’ID du site, nous allons pouvoir utiliser le script officiel conçu pour envoyer vos journaux dans matomo.

La version de python utilisée par ce script dépend de la version de matomo :

  • Matomo 3 nécessite python 2,
  • Matomo 4 nécessite python 3.

Le script dispose d’une aide (via l’argument --help ou sa page sur github), comme je l’utilise en local, je n’ai pas besoin de beaucoup d’options :

sudo -u www-data                                      \
    /var/www/matomo/misc/log-analytics/import_logs.py \
        --url=https://votredomaine                    \
        --idsite=1                                    \
        --enable-static                               \
        access.log

Le sudo est facultatif mais bien pratique. Sans lui, je devrais fournir un nom d’utilisateur et un mot de passe (dans les arguments 😢) pour que le script se connecte à Matomo. Avec sudo, le script n’a pas besoin de ces identifiants et va chercher un token dans les fichiers. Et pour éviter d’utiliser les droits de l’administrateur lorsque ça n’est pas nécessaire, j’utilise -u www-data pour n’utiliser que les droits du serveur web.

Archivage des mesures

Une fois les logs insérés dans la base, Matomo doit encore les archiver. D’habitude, il le fait au fil de l’eau lorsque vous visualisez les pages de statistiques. Pour les petits sites, ou si vous importez vos statistiques très souvent (toutes les 5 minutes), le processus est rapide et personne ne s’en rend compte.

Avec nos journaux, ça ne marche plus aussi bien. Les journaux contenant beaucoup d’événements insérés en une seule fois, l’archivage est long. Croyez-moi, ça se ressent et c’est plutôt pénible de devoir attendre bêtement pour avoir le tableau de bord.

Heureusement, vous pouvez déclencher ce processus directement en ligne de commande. En le faisant juste après l’import, Matomo n’aura plus besoin de le faire lors de vos visites. Le script correspondant a plein d’options mais une seule est nécessaire dans notre cas :

sudo -u www-data                         \
    /var/www/matomo/console core:archive \
        --url='https://votredomaine'

Et puisqu’on lance l’archivage nous-même, on va configurer Matomo pour ne plus déclencher le processus lorsqu’on regarde ses statistiques. Pour ça, on va dans le menu d’administration puis dans la section « Système » on clique sur « Paramètres généraux ».

archive

Et après ?

Dans l’idéal, il faudrait appeler automatiquement ces deux lignes de commandes via une tâche planifiée (genre crontab). Toutes les nuits, par exemple, pour récupérer les journaux, les envoyer à matomo et archiver les statistiques.

Vous pourrez alors voir chaque matin les statistiques de visites de la veille. Voir quels sujets marchent mieux que d’autres, les tendances de vos visiteurs et ce genre de choses.

Et puisque vous avez évité le javascript, profitez-en pour anonymisez les adresses IP. Non seulement c’est plus respectueux, mais ça vous évite de devoir afficher un popup de consentement.