Installer Matomo
Divulgâchage : Mesurer l’audience de son site web en restant éthique? c’est possible! Aujourd’hui, on aborde Matomo, une des solutions plébiscitée par la CNIL et surtout 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).
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.
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.
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.
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 pagesetup.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 :
- Un serveur web, ici
apache2
, - Le moteur d’application, ici
PHP
en version 7, avec quelques extensions (gd
,cli
,xml
etmbstring
). - Une base de donnée, ici
mysql
.
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é…
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.
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 :
- Déplacer le contenu de Matomo dans votre
DocumentRoot
, comme sur un serveur mutualisé à l’ancienne. - Changer la configuration
apache2
pour que votreDocumentRoot
pointe sur le répertoire de matomo, - 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.
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.
Base de donnée
Maintenant que l’environnement est au poil, Matomo vous demande les paramètres de connexion à la base de donnée.
- Database Server : L’adresse IP du serveur
hébergeant la base. Chez nous, c’est la même machine (donc on entre
127.0.0.1
) mais si vous avez une machine dédiée, c’est son IP qu’il faudra renseigner, - Login : nom d’utilisateur que nous avons créé précédemment pour la connexion,
- Password : mot de passe que nous avons utilisé pour l’authentification de ce nouvel utilisateur (que vous devriez avoir sauvegardé quelque part),
- Database Name : Le nom de la base que nous avons
créé précédement (et qui remplace avantageusement
matomo_db_name_here
), - Table Prefix : Le préfixe qui sera utilisé pour toutes les tables que Matomo va créé
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.
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é.
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.
- Super user login : Nom d’utilisateur pour l’administrateur,
- Password : Mot de passe pour authentifier les connexions,
- Password (repeat) : à moins d’utiliser un gestionnaire de mot de passe, écrivez-le manuellement et évitez les copier/coller foireux,
- Email : courriel à utiliser pour envoyer des notifications.
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…).
Les deux cases à cocher suivantes ayant pour but de nous abonner aux newsletter, je ne les coche habituellement pas.
Premier site web
Avant dernière étape, l’ajout du premier site dont on veut mesurer l’audience.
- Website name : un nom pour vous aider à voir duquel il s’agit,
- website URL : pour que Matomo puisse vous générer des liens qui pointent au bon endroit,
- Website time zone : pour que les statistiques réparties sur les heures soient correctement localisées,
- Ecommerce : pour que Matomo puisse mieux gérer les statistiques s’il s’agit de commerce (pour nous, c’est non).
Javascript
Votre premier site étant configuré, Matamo vous montre maintenant le bout de code javascript à insérer pour commencer à suivre vos visiteurs.
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 :
- Enable do Not Track support pour respecter le choix de vos visiteurs. Si leur navigateur vous demande de ne pas les suivre, Matamo respectera leur choix. Ne concerne que le javascript.
- anonymize the last byte(s) of visitor IP addresses pour que Matomo se charge d’anonymiser les adresses IP, on reviendra sur cet aspect dans la suite de cet article.
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.