Tutoriel : comment configurer un cluster ElasticSearch en quelques étapes
ElasticSearch utilise YAML pour la configuration des scripts. Suivez ces étapes pour configurer un cluster ElasticSearch avec deux nœuds.
Les outils de gestion et de monitoring sont devenus des briques clé pour prendre le pouls du SI. Ils garantissent un niveau élevé de performance et de disponibilité. Ils sont clé dans la bonne tenue des SLA : plus les outils informatiques sont fiables, plus fiable sera l'environnement applicatif. Les clusters multinœuds font partie de cette forme de résilience recherchée.
Ce tutoriel vous en livre les bases et vous permettant de met en place un cluster à deux nœuds pour ElasticSearch. Cet article porte sur l’installation d’ElasticSearch sur deux systèmes Ubuntu et la connexion de ces nœuds ElasticSearch pour fonctionner en cluster.
ElasticSearch offre des fonctionnalités de recherche pour la gestion et le monitoring des systèmes. Il fait partie de la pile Elastic Stack, anciennement ELK stack, d’ElasticSearch, qui comprend Logstash et Kibana. ElasticSearch permet le stockage et l'extraction de données et supporte plusieurs types de recherches.
Pour créer un cluster ElasticSearch, il faut commencer par la configuration de l'hébergement et installer l'outil de recherche. Ensuite, il faut configurer un cluster ElasticSearch, et l’exécuter pour s’assurer que les nœuds fonctionnent correctement.
Préparer le déploiement
Pour configurer les nœuds ElasticSearch, il convient d’ouvrir les ports TCP 9200 et 9300. Le port 9200 est l'interface REST, où sont envoyées les commandes curl. La ligne de commande curl est la façon dont on communique avec ElasticSearch. L'outil utilise le port 9300 pour les communications de nœud à nœud. Avec ces ports ouverts, les deux nœuds hébergeant ElasticSearch peuvent se parler et l'administrateur peut gérer le cluster.
Ajouter la clé au repository, puis installer ElasticSearch avec apt-get :
wget -qO - https://artifacts.elastic.co/GPG-KEY-ElasticSearch | sudo apt-key add -
sudo apt-get update
sudo apt-get install ElasticSearch
Puis, il convient d’installer le plugin File-Based Discovery, qui demande à ElasticSearch de regarder dans le fichier /etc/ElasticSearch/discovery-file/unicast_hosts.txt pour les adresses IP des autres nœuds du cluster. Pour installer le plugin, utiliser cd pour pointer vers le bon répertoire :
cd /usr/share/ElasticSearch/
sudo bin/ElasticSearch-plugin install discovery-file
Les utilisateurs d'AWS peuvent avoir recours au plugin Elastic Compute Cloud (EC2) Discovery, s'ils le préfèrent. Bien que vous n'ayez pas besoin de configurer des règles utilisateur spéciales, celles-ci permettent un contrôle granulaire.
Il faut ensuite utiliser vim pour éditer le fichier de découverte unicast_hosts.txt, et entrer les adresses IP de chaque serveur qui hébergera ElasticSearch, comme indiqué dans le code ci-dessous. Ces serveurs sont les nœuds qui doivent communiquer entre eux. Sur AWS EC2, les serveurs ont une adresse IP 172.* lorsque est exécuté ifconfig pour configurer les interfaces réseau. Cette adresse est différente de l'adresse IP publique attribuée à chaque serveur.
sudo vim /etc/ElasticSearch/discovery-file/unicast_hosts.txt
#10.10.10.5:10005
172.31.46.15
172.31.47.43
Configurer le cluster ElasticSearch
L'environnement étant configuré pour deux nœuds ElasticSearch, il faut désormais compléter le fichier ElasticSearch.yml avec les informations du cluster, toujours avec la commande vim.
Dans ce tutoriel, nous ajoutons un nom de cluster, un nom de noeud et des informations sur le rôle du noeud et comment il gère les données (voir le tableau).
Exécuter ElasticSearch
Une fois le cluster configuré et les nœuds prêts pour communiquer entre eux, lancez ElasticSearch sur chaque serveur :
sudo service ElasticSearch start
Il est ensuite nécessaire de vérifier si les logs contiennent des erreurs. Le nom du fichier log est le nom du serveur - paris, comme indiqué ci-dessus, pour ce noeud - avec le suffixe .log. La commande tail extrait des informations à partir d'un fichier :
sudo tail –/var/log/ElasticSearch/paris.log
Exécutez la commande curl ci-dessous pour voir si les deux serveurs configurés comme nœuds ElasticSearch apparaissent dans la requête d'état du cluster :
curl -XGET http://(IP address):9200/_cluster/state
Cela doit afficher deux nœuds :
ElasticSearch est maintenant configuré pour fonctionner sur un cluster à deux nœuds. Il y a d'autres éléments à apprendre pour gérer efficacement ElasticSearch, comme la façon de travailler avec des shards et des types d'index. Mais c’est déjà un début.