Curator : un outil simple et gratuit pour la maintenance ElasticSearch

Curator : un outil simple et gratuit pour la maintenance ElasticSearch

Curator est un outil développé en Python qui permet d’effectuer de la maintenance sur ElasticSearch. Si vous devez effectuer une tâche de façon périodique, telle que supprimer des index, ou lancer une réindexation, cet outil permet de sélectionner une liste d’indexes selon des filtres, puis d’appliquer l’action que vous avez configurée.

 

Exemple tiré de notre projet :

Nous utilisons une stack ELK (ElasticSearch, LogStash, Kibana) pour la remontée des logs de nos applications. Ces logs, au terme de leur parcours, finissent par être tous indexés dans ElasticSearch.

Chaque jour, un nouvel index est créé (de la forme « logstash-13.02.2018 » par exemple). Cependant, la solution technique est coûteuse. Un service managé AWS gère la partie ElasticSearch+Kibana, et la facturation se calcule en grande partie par la taille de l’espace de stockage.

Un compromis entre espace de stockage et capacité d’analyse a été nécessaire. Nous avons décidé de conserver les logs, et donc les indexes ES, pour une durée maximale de 1 mois.

Pour effectuer cette action de nettoyage des indexes, Curator s’est imposé comme la solution la plus simple d’utilisation. Avec peu de paramétrage, il est possible de filtrer et appliquer des modifications sur les indexes.

Voici comment nous avons procédé

  • Installation de Curator et paramétrage, comme défini dans la documentation (disponible en lien à la fin de cet article)
  • Utilisation d’un fichier exemple (également fourni en lien) , avec une adaptation à notre besoin (durée de conservation des indexes, et pattern des indexes visés)
  • Ajout d’un Cronjob pour exécuter Curator automatiquement tous les jours (à 2h du matin)

Pour tester cette solution, nous avons activé le système sur l’environnement de pré-production. Nous nous sommes heurtés à quelques difficultés, mais le script à rapidement fonctionné.

Quelques méthodes de test :

  • Option A : Regarder les logs :
    • Emplacement : /var/log/curator.log
    • Cherche la ligne suivante : «Job Completed »
  •  Option B :
    • Créer un index de test
    • Configurer l’action Curator pour supprimer cet index
    • Paramétrer le filtre sur 15 minutes

Avantages et Inconvénient

Un des avantages majeurs de cet outil est l’automatisation de tâches répétitives pour un coût nul. En effet, Curator est gratuit, et sa mise en place est très rapide. Le travail de suppression des logs était par le passé assuré par des développeurs, mais avec l’augmentation du flux des logs, ce travail est devenu de plus en plus fréquent. De plus, la suppression étant paramétrée, le risque de supprimer un mauvais index par inadvertance disparait.

Dans le cas de notre projet, nous nous sommes heurtés à un problème de version. Curator 5 n’est compatible qu’à partir de la version 5.5 d’ElasticSearch (aujourd’hui, ES est en version 6.x). Ce point négatif ne concerne donc que les personnes qui ont déjà une stack ELK active. Dans notre cas, nous étions en ES 5.3, et avons migré vers 6.0. A cause de cette migration, il a fallu investiguer sur l’origine de nouvelles erreurs d’indexation, dues à des modifications cassantes du système de mapping des types. Nous avons également dû modifier la configuration de tous les services managés (au nombre de trois), et transférer les données de Kibana (les filtres, les visualisations, et les dashboards).

Conclusion

Curator est un outil simple d’utilisation et efficace, pour peu qu’ElasticSearch soit en v5.5+.

 

Liens utiles

Github : https://github.com/elastic/curator

Installation : https://www.elastic.co/guide/en/elasticsearch/client/curator/current/apt-repository.html

Configuration pour la suppression des index selon leur âge :
https://www.elastic.co/guide/en/elasticsearch/client/curator/current/ex_delete_indices.html

Documentation générale : https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html

Ajouter un commentaire