Manque d'espace sur le serveur Matomo

a marqué ce sujet comme résolu.

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 :

Les visites par heure aujourd'hui (en bleu) comparées au samedi précédent (en orange).
Les visites par heure aujourd’hui (en bleu) comparées au samedi précédent (en orange).

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.

J’ai profité du déploiement de la nouvelle version de zds-site et de la maintenance mensuelle pour ajouter un disque au serveur hébergeant Matomo.

J’ai rencontré un petit problème. Scaleway a deux systèmes de stockage : du SSD local ou du SSD bloc. Les gigas de stockage sur un SSD local sont moins chers que sur un SSD bloc (je vous ai présenté les tarifs des SSD locaux) et actuellement notre serveur de bêta dispose de deux disques SSD locaux (50 et 50 Go). Mon plan était donc de créer un SSD local et de l’ajouter au serveur hébergeant Matomo (vu ce qu’on a sur le serveur de bêta, ça aurait du être possible). Je ne pouvais pas vraiment tester avant, car il fallait éteindre le serveur. Lorsque j’ai fait la manipulation tout à l’heure, j’ai découvert qu’on ne pouvait pas avoir plus de 20 Go en stockage SSD local associé à un même serveur (et je pense aussi qu’en fait on ne peut avoir plus d’un SSD local par instance).

J’ai donc créé un SSD bloc de 20 Go (au lieu des 25 prévus). Cela coûtera 0,00236 €/h = 1,72 €/mois = 20,64 €/an, soit plus du double de ce que j’avais annoncé. Désolé de vous mettre devant le fait accompli…

J’ai pris 20 Go au lieu de 25 pour que ce soit moins cher (on n’a pas besoin de 25 Go dans l’immédiat) et aussi parce qu’on peut facilement augmenter la taille d’un SSD bloc, lorsqu’on en aura besoin.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte