Blogs intéressants

Blog d’Omid Ameri : Dédié à la virtualisation et au système.

Sponsor

PostHeaderIcon Tutoriel | Installation d’un cluster ElasticSearch

Article publié le 28 Mars 2018

Un petit tutoriel qui pourra être utile à ceux qui, comme moi, ont souffert de la prise en main d'ElasticSearch ;-).

Ce tutoriel expliquera la marche à suivre pour monter un cluster ElasticSearch.

Dans l'exemple ci-dessous, je vais monter un cluster ElasticSearch composé de trois nœuds.

 

1) Installation

Installez ElasticSearch sur chaque machine (au moment où ce tutoriel a été rédigé, la version courante d'ElasticSearch est la 6.2)

Installation sous Debian:

Téléchargez et installez la clé GPG:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Ajoutez le répo elasticsearch (à adapter en fonction de la version courante du moment):

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Enfin, Installez ElasticSearch

sudo apt-get update && sudo apt-get install elasticsearch

 

Installation sous RedHat:

Téléchargez et installez la clé GPG:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Ajoutez le répo (à adapter en fonction de la version courante du moment):

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Enfin, installez ElasticSearch

sudo yum install elasticsearch

 

2) Configuration

Chaque machine doit être joignable via le hostname (enregistrement DNS ou fichier host impératif)

- Une fois les noeuds ElasticSearch installés, éditez le fichier /etc/elasticsearch/elasticsearch.yml et remplacez la conf par celle ci-dessous sur chaque nœuds de votre cluster elasticsearch:

cluster.name: moncluster
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

#A sécuriser si nécessaire

network.host: 0.0.0.0
http.port: 9200

# Nombre de noeuds sans compter cette machine
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: [ "<nom dns du noeud 1>", "<nom dns du noeud 2>", "<nom dns du noeud 3>" ]

# Nombre total de nœuds composant votre cluster

gateway.expected_nodes: 3

#Nombre de nœuds sans compter cette machine

gateway.recover_after_nodes: 2
node.name: <nom du noeud>

action.destructive_requires_name: true
bootstrap.memory_lock: true

-  Éditez le fichier de configuration systemd /usr/lib/systemd/system/elasticsearch.service et rajoutez à la fin de ce fichier la ligne suivante:

LimitMEMLOCK=infinity

- Éditez le fichier /etc/security/limits.conf et rajoutez à la fin du fichier les lignes suivantes:

elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nofile 65536
elasticsearch - nproc 2048

- Désactivez le Swap

swapoff -a

- Les paramètres java sont configurable directement via le ficher de configuration /etc/elasticsearch/jvm.options (notamment les paramètres mémoires)

 

Une fois les nœuds paramétrés, redémarrez le service elasticsearch sur chacune de vos machines

service elasticsearch restart

 

3) Vérification du cluster

Avant toute chose, vous pouvez vérifier dans les logs elasticsearch si vos machines communiquent bien entre elles (/var/log/elasticsearch.log) et avoir quelque chose de similaire à la log ci-dessous:

 

[2018-03-28T13:17:54,213][INFO ][o.e.n.Node ] [els02] starting ...

Lire la suite
image_print