Bonsoir tout le monde,
Le serveur qui héberge notre instance de Matomo pour avoir des statistiques sur les consultations du site a manqué de place sur son disque entre 1h30 et 11h21 ce matin. Il nous manque donc les données des visites sur cette période :
Ce qu’il s’est passé
La sauvegarde de la base de données a pris trop de place.
Comment fonctionnent les sauvegardes du serveur Matomo ?
On sauvegarde trois éléments :
- la base de données MariaDB
- les fichiers de configuration de Matomo
- l’application Matomo en elle-même
Les fichiers de configuration et Matomo sont copiés avec un simple rsync
et pèsent ensemble 173 Mo. Pour la base de données, c’est plus compliqué. On utilise mariabackup
qui sauvegarde l’intégralité des bases de données MariaDB dans un format binaire propre à MariaDB. On fait une sauvegarde complète tous les samedis et ensuite une sauvegarde incrémentale chaque jour. La sauvegarde complète fait 2,7 Go et il faut compter entre 100 et 200 Mo par sauvegarde incrémentale. On est donc à environ 3,4 Go par semaine.
Lorsqu’on fait une nouvelle sauvegarde complète, on fait d’abord la nouvelle sauvegarde, puis on efface les sauvegardes de la semaine précédente (comme ça, si la nouvelle sauvegarde plante, il nous reste toujours celle de la semaine précédente). Pendant ce temps on a donc besoin de 3,4+2,7=6,1 Go.
Ensuite, ces sauvegardes sont envoyées sur le serveur de bêta.
Le script exécuté pour les sauvegardes est disponible sur GitHub. Il est lancé par ces deux CRONs :
# m h dom mon dow command
30 1 * * 6 /root/backups.sh full >> /var/log/zds/backups.log 2>&1
30 1 * * 0-5 /root/backups.sh >> /var/log/zds/backups.log 2>&1
Cette nuit, on n’avait plus 6,1 Go comme espace disponible sur le disque, on a donc rempli le disque en faisant la nouvelle sauvegarde complète.
Le correctif rapide
J’ai tout simplement inversé la suppression de l’ancienne sauvegarde et la réalisation de la nouvelle sauvegarde. Ça évite d’avoir besoin temporairement du double d’espace, mais si la sauvegarde plante, on n’a plus rien (localement, on a toujours ce qu’on a envoyé sur le serveur de bêta).
Correctif à long terme
Actuellement, le serveur qui héberge Matomo a un unique disque d’une taille de 19 Go. À l’heure où j’écris ces lignes, seuls 2,8 Go sont disponibles.
Ce qui occupe le plus de place, ce sont les données de MariaDB (/var/lib/mysql/
pèse 9,3 Go) et ses sauvegardes (2,9 Go). Rajoutez ce qu’il faut pour faire fonctionner le système et on se retrouve rapidement à l’étroit !
Je n’ai malheureusement pas de graphique pour montrer l’évolution de l’utilisation de l’espace de stockage au cours du temps (c’est sur ma TODO-liste).
Scaleway (qui héberge le serveur faisant fonctionner Matomo) permet d’ajouter des volumes de stockages aux machines virtuelles. Je propose de rajouter un volume de 25 Go (0,0011€/h = 0,80€/mois = 9,60€/an), qui stockerait directement les données de MariaDB (donc les 9,3 Go). La place libérée sur le disque principal pourra servir aux sauvegardes.
Qu’est-ce que vous en pensez ? Est-ce que le CA est d’accord ?
N’hésitez pas si vous avez des questions ou souhaitez des précisions.