J’utilise InfluxDB comme base de données pour stocker les informations de collectd et telegraf pour faire mon monitoring serveur (j’en avais écris un tutoriel) et j’avais alors à l’époque mis en place une rétention des données de 1 mois, sauf que… aujourd’hui je me rend compte que cette rétention ne semble pas être fonctionnelle !

Alors forcément les données de supervision ici ne sont pas lourdes, mais accumulées pendant 2 ans ça commence à peser quelques gigaoctets et c’est pas vraiment optimal, du coup dans cet article je vous explique comment mettre en place correctement une politique de rétention des données dans InfluxDB.

Sur votre terminal commencez par taper la commande « influx » pour ouvrir la CLI de InfluxDB.

Vous pouvez alors voir les politiques de rétention actuellement en place sur une base de donnée avec la commande suivante :

SHOW RETENTION POLICIES ON nom_base;

Si vous ne vous souvenez plus du nom de votre base vous pouvez les lister la commande

SHOW DATABASES

Dans mon cas je me suis alors rendu compte qu’il y avait bien ma règle de 1 mois que j’avais mis en place à l’origine, mais qu’il y avait également encore la règle par défaut avec une rétention illimitée. Du coup faites bien attention ici à soit supprimer la politique par défaut et d’ensuite ajouter votre règle, soit de tout simplement modifier la règle par défaut ! Les commandes pour réaliser cela sont assez explicites :

  • créer une politique de rétention de 1 mois :
CREATE RETENTION POLICY "nom_de_la_retention" ON "nom_base" DURATION 720h REPLICATION 1
  • modifier une politique de rétention en  24h :
ALTER RETENTION POLICY "nom_de_la_retention" ON "nom_base" DURATION 24h REPLICATION 1
  • supprimer une politique de rétention :
DROP RETENTION POLICY "nom_de_la_retention" ON "nom_base"

Je vous invite tout de même à aller visiter la documentation pour vous l’approprier si vous souhaitez rendre certaines politiques par défaut ou si vous souhaitez gérer la réplication ou le sharding.

Attention une fois que vous aurez modifié ces politiques de rétention des données les changements ne sont pas instantanés et vous remarquerez peut-être que le poids de votre base ne change pas. On pourrait alors croire que les anciennes données ne sont pas purgées mais en fait encore une fois la documentation nous aide bien puisqu’elle explique que par défaut InfluxDB vérifie les politiques de rétention toutes les 30 minutes donc pas d’inquiétude il suffit d’être patient !

Si vous souhaitez modifier cette durée il suffit alors de modifier le fichier de configuration /etc/influxdb/influxdb.conf et de redémarrer influx :

[retention]
enabled = true
check-interval = "30m"

Tout ça c’est rien de bien compliqué mais il y a quelques points d’attention à connaître et que je vous partage ici, au cas où ça pourrait servir 🙂

Commentaires