Installer Matomo

tbowan

11 mai 2020

Mesurer l’audience de son site web en restant éthique? c’est possible! Aujourd’hui, on aborde Matomo, une des solutions proposée par la CNIL.

On va pas se mentir, lorsqu’on met un site web en ligne, on est toujours content de pouvoir mesurer son audience. Voir quels articles marchent (ou pas), d’où viennent les visiteurs (ou pas) ou encore l’efficacité des réseaux sociaux (ou pas). Toutes ces statistiques qui nous montrent l’engouement pour le site (et ses auteurs) et les axes d’amélioration.

Comme toujours en informatique, il y a pléthore de solutions, plus ou moins coûteuses, plus ou moins efficaces, et surtout, plus ou moins respectueuses de nos vies privées.

Et comme le respect de votre vie privée est vraiment important pour nous, on a choisi d’être transparents en vous montrant ce qu’on en fait (i.e. quelles données et comment les anonymiser).

Après vous avoir montré comment utiliser goaccess, nous allons aujourd’hui vous montrer l’autre outils que nous utilisons : Matomo.

Tableau de bord de Matomo

Comparativement, là où goaccess vise la légèreté, Matomo vise la complétude. Cet outil est donc bien plus lourd mais son interface bien plus riche.

Divulgâchage : Aujourd’hui, on vous montre comment l’installer (à l’ancienne). Pour la customisation et les utilisations plus spécifiques, on verra ça dans des articles spécifiques (qui viendront petit à petit).

Installation

Même s’il est possible de faire cohabiter Matomo et vos applications web dans un même système, il est plus sûr de ne pas mélanger les services. En cas de compromission, ça éviter une contagion trop rapide.

Nous allons donc partir sur une installation sur un système nouvellement installé, une ubuntu 18.04 dans notre cas mais les étapes ne varieront pas beaucoup d’un environnement à l’autre.

Matamo s’installe à l’ancienne, illustration chez pixabay

Prérequis logiciels

Matomo n’étant pas fourni sous forme de paquet avec gestion des dépendances, il faut donc les gérer nous même et les installer manuellement.

C’est culturel dans le développement des applications web, et d’autant plus marqué chez les vieilles applications : pour permettre l’installation dans le plus de cas possibles, ces applications ont initialement été fournies dans des tgz à extraire en production et contenant une page setup.php pour la configuration.

Heureusement, il y a une page de documentation officielle qui liste ces prérequis qu’on peut installer simplement avec les gestionnaires de paquets :

sudo apt-get install apache2 php7 php7-curl php7-gd php7-cli mysql-server php7-mysql php-xml php7-mbstring

Si vous aviez déjà installé le serveur apache2, il est nécessaire de le redémarrer pour qu’il puisse prendre en charge les scripts PHP. Si vous avez un doute, redémarrez-le, ça mange pas de pain…

sudo systemctl restart apache2

Ubuntu 20.04 : Matomo utilise python2 via la commande python, sur ce système, vous devez donc l’installer et placer un lien symbolique qui va bien :

# Only for Ubuntu 20.04
sudo apt-get install python2
sudo ln -s /usr/bin/python2 /usr/bin/python

Base de donnée SQL

Matomo se chargera de créer les tables et ce dont il a besoin, mais pour ça, il faut lui créer une base de donnée et un compte pour qu’il puisse s’y connecter.

Encore une fois, la page de documentation officielle nous fourni la liste des commandes à exécuter pour mettre votre base dans le bon état.

Commencez par vous connecter à votre base de donnée :

sudo mysql

Vous pouvez alors créer une nouvelle base de donnée, le nom matomo_db_name_here peut bien sûr être remplacé par quelque chose de plus adapté1

CREATE DATABASE matomo_db_name_here;

Il est alors temps d’ajouter un utilisateur spécifique pour Matomo. Toujours dans l’idée de cloisonnement pour éviter qu’une compromission se propage trop vite.

Vous devriez changer le mot de passe my-strong-password-here. Je ne saurais trop vous conseiller non plus de sauvegarder ce dit mot de passe dans un coffre (physique ou numérique).

Vous pourriez aussi changer le nom d’utilisateur mais personnellement, je ne suis pas fan de la sécurité par l’obscurité.

CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'my-strong-password-here';

Reste encore à donner les droits à cet utilisateur sur la base qu’on lui a créé.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON matomo_db_name_here.* TO 'matomo'@'localhost';

C’est optionnel, mais puisque ça peut accélérer la génération des rapports, je vous conseille d’attribuer également les droits FILE.

GRANT FILE ON *.* TO 'matomo'@'localhost';

Extraction des fichiers

Comme je vous l’avais annoncé, cette application s’installe à l’ancienne. Vous devez télécharger l’archive et la décompresser dans votre répertoire web.

Ici encore, la page de documentation officielle (ça fait beaucoup de pages, je sais) nous donne toutes les instructions. Le plus simple, c’est encore via une ligne de commande.

wget https://builds.matomo.org/matomo.zip && unzip matomo.zip

Comme ça crée un répertoire matomo avec tout le nécessaire dedans, ça ne sera pas directement accessible via le web. Ici, trois solutions :

  1. Déplacer le contenu de Matomo dans votre DocumentRoot, comme sur un serveur mutualisé à l’ancienne.
  2. Changer la configuration apache2 pour que votre DocumentRoot pointe sur le répertoire de matomo,
  3. Changer le DocumentRoot en lien symbolique et le faire pointer vers votre répertoire.

Personnellement c’est cette troisième version que je préfère. Je met le répertoire matomo dans /var/www et je fait un lien de html vers matomo.

L’intérêt étant de pouvoir installer plusieurs applications les unes à côté des autres pour les tester facilement. Peu utile en prod mais en gardant l’habitude, tous mes serveurs sont homogènes.

Dernière chose avant de poursuivre, changer le propriétaire et donnez ce répertoire à apache2, c’est bien plus pratique pour la suite :

sudo chown -R www-data:www-data /var/www/matomo

Configuration initiale

Maintenant que l’application est installée, la suite se déroule via l’interface web. Avec n’importe quel navigateur, entrez l’adresse de votre serveur et de l’application correspondante. Dans le genre http://matomo.example.com/.

Bienvenue

Le premier écran vous permet déjà de voir que l’application fonctionne et vous propose un bouton NEXT pour poursuivre la configuration.

Bienvenue

Vérification

Dans le deuxième écran, Matomo vérifie que son environnement d’exécution est compatible. Version de PHP, extensions, droits d’accès, …

Si vous avez suivi mes instructions, tout devrait être au vert. Sinon, c’est qu’un composant manque et dans ce cas, Matomo vous affichera un message d’erreur avec tous les détails pour résoudre le problème.

Vérification système

Base de donnée

Maintenant que l’environnement est au poil, Matomo vous demande les paramètres de connexion à la base de donnée.

Le « préfixe des noms des tables » est aussi un biais culturel historique. Au début des applications web, sur les serveurs dédiés, on faisait souvent cohabiter plusieurs applications dans la même base. Pour éviter les collisions, il fallait alors utiliser un préfixe commun aux tables d’une même application.

Configuration de la base de donnée

Création des tables

L’étape suivante est automatique et permet à Matomo de créer les tables dont il a besoin. Il vous annonce donc, logiquement, que tout s’est bien passé.

Création des tables

Super Utilisateur

Maintenant que Matomo peut se connecter à la base, et qu’il a créé les tables et autres structures nécessaires, il est temps de configurer le compte pour administrer l’outil.

Les deux cases à cocher suivantes ayant pour but de nous abonner aux newsletter, je ne les coche habituellement pas.

Administrateur de l’application

Premier site web

Avant dernière étape, l’ajout du premier site dont on veut mesurer l’audience.

Site web à mesurer

Javascript

Votre premier site étant configuré, Matamo vous montre maintenant le bout de code javascript à insérer pour commencer à suivre vos visiteurs.

Javascript

Ces 15 lignes de code, une fois insérées dans toutes vos pages, seront exécutées par vos visiteurs pour qu’ils envoient directement leurs informations à Matomo (le vôtre, qui doit donc être joignable depuis Internet). Ce faisant, vous contournez quelques limitations (liens no follow), améliorez certaines mesures (détection des bots) et bénéficiez de quelques fonctionnalités supplémentaires (statistiques en temps réel).

Chez les arsouyes, on est pas fan de ce décompte intrusif et on considère que le Javascript ne devrait être utilisé que pour apporter des fonctionnalités utiles aux visiteurs (et non aux éditeurs). On n’utilise donc pas ce bout de code.

Fin de configuration

Le dernier écran clôt la configuration et vous propose deux derniers réglages en lien avec le RGPD, que vous devriez-donc cocher si ce n’est pas déjà fait :

Félicitations

Et après ?

Si vous avez inséré le code Javascript dans vos pages, vous devriez voir les premières statistiques arriver au fur et à mesure que vos visiteurs arrivent.

Par contre, vous n’êtes pas au bout de vos peine car il reste quelques petites personnalisations à faire. Certaines sont plutôt obligatoires (i.e. RGPD et HTTPS). D’autres plus personnelles comme l’utilisation des logs d’accès pour éviter le javascript.

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

26 mai 2020 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.

Configurer HTTPS pour Matomo

15 Juin 2020 Obligatoire si vous utilisez le traceur javascript, recommandé quoi qu’il arrive, voici comment sécuriser la communication avec Matomo via HTTPS, oui, c’est encore une histoire de certificats…

Anonymiser les adresses IP pour faire des statistiques

23 Mars 2020 Je ne sais pas vous, mais moi, j’adore faire des statistiques. Le problème, c’est lorsqu’on traite de données personnelles. Aujourd’hui, je vais vous expliquer pourquoi et comment anonymiser ces adresses.


  1. On m’informe dans l’oreillette que certaines installations ont utilisé ce nom tel quel. Ne vous inquiétez pas, ça marchera très bien quand même.↩︎

  2. Parfois, le mot de passe entré ne correspond pas à ce qu’on croyait avoir écrit. Les doigts peuvent se tromper, ou la configuration du clavier ne pas être celle qu’on pense (i.e. avoir sélectionné finois au lieu de français qui sont proche dans les listes…).↩︎