En tant que fanatique d’elasticsearch, j’utilise régulièrement l’outil pour réaliser des POC, tester des applicatifs comme Logstash et Kibana, ou plus généralement, pour découvrir les extraordinaires fonctionnalités offertes par ElasticSearch (percolator, aggregations, sharding, scalability,…).
Cependant, il est souvent compliqué et chronophage de mettre en place un cluster ElasticSearch (vagrant cluster) complet simplement pour un POC ou des tests.
A l’inverse, utiliser la configuration minimale et par défaut d’ES (très rapide à mettre en place et qui fonctionne très bien) a ses limites lorsque l’on souhaite travailler en prenant en compte les problématiques suivantes :
- Sharding sur plusieurs nœuds physiques (routing, filtres, rack, …).
- Configuration réseau d’un cluster (unicast, multicast, ip:port, …)
- Configuration de snapshot/recovery
- Configuration spcécifiques (load balancer, data nodes et master nodes)
- Simulation de coupure réseaux et autres incidents
- …
J’ai donc décidé de créer un projet permettant de lancer un cluster elasticsearch de machines virtuelles (virtualbox/vagrant) en quelques minutes et en une seule commande bash :
vagrant up
Vous devriez alors obtenir un shell ressemblant à ceci :
$ vagrant up Cluster size: 5 Cluster IP: 10.0.0.0 Bringing machine 'vm1' up with 'virtualbox' provider... Bringing machine 'vm2' up with 'virtualbox' provider... ...
ElasticSearch Vagrant cluster
Voici le lien vers le dépôt github du projet : https://github.com/ypereirareis/vagrant-elasticsearch-cluster
La gestion du cluster se fait ensuite en utilisant vagrant et elasticsearch de manière classique. Tout est expliqué sur le dépôt (en anglais) :
- Pré-requis
- Installation
- Configuration
- Plugins
- …
J’illustrerai, prochainement et de façon concrète, différentes configurations, problématiques ou bonnes pratiques à prendre en compte ou mettre en œuvre lorsque l’on travaille avec elasticsearch.
Le projet de cluster ES avec Vagrant vous permettra de rapidement reproduire les exemples et de modifier les configurations comme vous le souhaitez.