Elasticsearch est une solution de moteur de recherche et d’analyse de données distribuée, très utilisée pour indexer, rechercher et analyser des volumes importants de données. Pour assurer la continuité de service, il est essentiel de déployer Elasticsearch en cluster haute disponibilité (HA).
Prérequis
- Au moins 3 serveurs (VM ou physiques)
- 8 Go de RAM minimum par nœud, CPU récent
- Java 17 ou OpenJDK 17 installé
- Connexion réseau rapide et stable entre les nœuds
Architecture recommandée
- 3 nœuds master-eligible pour garantir le quorum
- 2+ nœuds data pour répartir la charge et la redondance
- 1 nœud client/ingest pour l’accès applicatif (facultatif)
- Réplication des shards (indice par défaut : 1 réplica)
Installation
1. Ajout du dépôt officiel
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update && sudo apt install elasticsearch -y
2. Configuration du cluster (/etc/elasticsearch/elasticsearch.yml
)
cluster.name: "mon-cluster-ha"
node.name: "es-node-1"
network.host: 0.0.0.0
discovery.seed_hosts: ["ip_node_1", "ip_node_2", "ip_node_3"]
cluster.initial_master_nodes: ["es-node-1", "es-node-2", "es-node-3"]
node.roles: [master, data]
- Adapter
node.roles
pour chaque serveur selon le rôle.
3. Optimisation de la mémoire
# /etc/elasticsearch/jvm.options.d/jvm.options
-Xms8g
-Xmx8g
4. Démarrage et test
sudo systemctl enable --now elasticsearch
curl http://localhost:9200/_cluster/health?pretty
- Le statut
green
indique un cluster sain.
Mise en place de la haute disponibilité
- Les données sont répliquées sur plusieurs nœuds (sharding + replication)
- Si un nœud tombe, l’accès reste possible via les autres nœuds
- Prévoyez un load balancer (HAProxy, Nginx) pour accéder à l’API de manière tolérante aux pannes
Exemple de configuration HAProxy
frontend es_api
bind *:9200
default_backend es_nodes
backend es_nodes
balance roundrobin
server es1 10.0.0.1:9200 check
server es2 10.0.0.2:9200 check
server es3 10.0.0.3:9200 check
Bonnes pratiques
- Sécurisez le cluster (TLS, mots de passe, X-Pack Security)
- Surveillez l’état avec Kibana ou Prometheus
- Sauvegardez les snapshots via
elasticsearch-curator
- Ne laissez pas de nœud master seul (toujours un nombre impair)
- Documentez la procédure de restauration
Avantages
- Scalabilité horizontale simple
- Reprise automatique après incident
- Performances élevées pour la recherche temps réel
Limites
- Nécessite une bonne gestion des ressources système
- La cohérence dépend du quorum (attention aux split-brain)
- Un cluster sous-dimensionné peut perdre des données lors d’une panne
Conclusion
Déployer Elasticsearch en mode cluster haute disponibilité vous garantit la résilience, la continuité de service et la scalabilité pour tous vos besoins de recherche, analytics et log management.