Login Logout

Howto Matomo

Matomo est une application web affichant des statistiques de consultation de pages web tout en protégeant les données et la vie privée des internautes.

Installer Matomo

Pré-requis

Il y a besoin de ces pré-requis pour Debian 11 (Bullseye) :

# apt install php php-curl php-gd php-cli php-mysql php-xml php-mbstring

Nous préconisons d’utiliser Matomo avec Apache-ITK et MariaDB.

Pour Apache-ITK on désactive la gestion des droits pour faciliter les mises à jour :

AssignUserID example example

Déployer

Se connecter avec le compte UNIX dédié, télécharger l’application et le dézipper en supposant que le DocumentRoot soit par exemple /home/compte_unix/www/ :

# su - compte_unix
$ wget https://builds.matomo.org/matomo.zip && unzip matomo.zip
$ mv -i matomo www

Il reste à suivre les instructions de son installation via https://domaine-matomo-instance.com

Configurer

Forcer le SSL

Pour augmenter d’un cran le niveau de sécurité, on ajoute dans /home/matomo/www/config/config.ini.php ces directives :

[General]
force_ssl = 1

Ajouter un utilisateur admin

Si on est bloqué, on peut insérer un nouvel utilisateur admin dans la base avec un mot de passe temporaire (à changer après la première connexion) :

$ php -r 'echo password_hash(md5(<TMP_PASS>), PASSWORD_DEFAULT) . "\n";'
$2y$10$v2HBGALslnw5ZeRaQDpon.xmQOZcRpxkYkrvlTs41j2F.THyLQhn6

$ mysql
MariaDB [(none)]> use matomo;
MariaDB [matomo_prod]> INSERT INTO `matomo_user` (login, password, email, superuser_access) VALUES ('<NEW_OGIN>', '<PASS_HASH>', '<MAIL>', 1);

Activer l’archivage

Désactiver l’archivage via l’interface web dans : administration (roue cranté) -> Système -> paramètres généraux -> Paramètres d’archivage -> mettre sur Non

Puis ajouter cette tâche dans la crontab de l’utilisateur :

MAITO="foo@bar.com"
30 * * * * /usr/bin/php /home/matomo/www/console core:archive --url=https://domaine-matomo-instance.com

Configurer les dumps

Si vous utilisez mysqldump pour sauvegarder vos bases de données, il faut utiliser les options --single-transaction --skip-lock-tables, sans quoi vous risquez d’avoir un timeout de Matomo pendant la durée des dumps à cause du lock des tables par mysqldump.

Mettre-à-jour

On peut facilement mettre à jour Matomo depuis l’interface d’administration en un seul click. Il faut avant s’assurer que le répertoire racine de Matomo soit bien avec les droits en 755

Ensuite il faut se connecter en tant que “super user” ou “admin” à Matomo et aller dans la section « Administration », si une nouvelle mise à jour est disponible, elle est proposée, donc cliquer sur “Update Automatically”.

Mise à jour sur les serveurs Matomo à fort trafic

Pour les serveurs à fort trafic, la mise à jour de Matomo peut prendre entre plusieurs minutes à plusieurs heures, il est donc recommandé de lancer la mise à jour en ligne de commande.

Vous pouvez mettre à jour Matomo en cli de cette façon :

$ php /home/matomo/www/console core:update

Il est recommandé également pour les serveurs a haut trafic, de désactiver le tracking des visiteurs et l’interface web de cette façon :

[Tracker]
record_statistics = 0

[General]
maintenance_mode = 1

Lorsque Matomo est en maintenance_mode=1 le endpoint de l’API index.php retourne une 503. Si Matomo est derrière un load-balancer de type Haproxy, il faut rajouter la variable multi_server_environment=1 pour que Matomo renvoie une 200

Cela garantira que les mises à jour du schéma de base de données sont terminées dès que possible et sans erreurs de lecture/écriture simultanées.

Lorsque la mise à jour est terminé, ne pas oublier de désactiver le mode maintenance et de réactiver le tracking.

Une fois la mise à jour terminée

Lorsque la mise à jour s’est terminé avec succès, il est recommandé d’aller dans Admin > Diagnostics > System check et d’examiner les recommandations faites par Matomo.

Par exemple, la vérification de l’intégrité des fichiers peut indiquer qu’il reste des fichiers de la version précédente qui peuvent désormais être supprimés.