Déployer un cluster Elasticsearch haute disponibilité

Publié le 9 juillet 2025

Base de données
Haute disponibilité

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

  1. Sécurisez le cluster (TLS, mots de passe, X-Pack Security)
  2. Surveillez l’état avec Kibana ou Prometheus
  3. Sauvegardez les snapshots via elasticsearch-curator
  4. Ne laissez pas de nœud master seul (toujours un nombre impair)
  5. 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.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser