Base de données
Infrastructure
Monitoring

Déployer un cluster Elasticsearch haute performance avec Kibana et Docker

4 juillet 2025

2 min de lecture

Elasticsearch est une solution puissante et populaire pour la gestion des logs, la recherche plein texte et l'analyse de données. Ce guide explique comment déployer un cluster Elasticsearch performant avec Kibana via Docker Compose.

Prérequis

  • Serveur Linux avec Docker et Docker Compose
  • 3 nœuds minimum pour Elasticsearch
  • Ressources recommandées : 4 vCPU, 16 Go de RAM par nœud

Configuration Docker Compose

Créer docker-compose.yml :

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
    container_name: elasticsearch
    environment:
      - node.name=es-node-1
      - cluster.name=es-cluster
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - ES_JAVA_OPTS=-Xms8g -Xmx8g
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:8.12.0
    container_name: kibana
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    ports:
      - 5601:5601
    networks:
      - elastic

networks:
  elastic:
    driver: bridge

volumes:
  esdata1:
    driver: local

Démarrage du cluster

docker compose up -d

Vérifier le statut du cluster

curl -X GET "localhost:9200/_cluster/health?pretty"

Accéder à Kibana

  • URL : http://VOTRE_IP:5601
  • Avec la sécurité désactivée, aucune authentification n'est requise. Pour un environnement de production, activez xpack.security.enabled=true et configurez les certificats SSL.

Passage en cluster multi-nœuds

Pour un cluster de production avec plusieurs nœuds, remplacez discovery.type=single-node par :

environment:
  - discovery.seed_hosts=es-node-1,es-node-2,es-node-3
  - cluster.initial_master_nodes=es-node-1,es-node-2,es-node-3

Dupliquez ensuite le service elasticsearch pour chaque nœud en changeant node.name.

Optimisation du cluster Elasticsearch

  • Activer les shards et répliques adaptés à votre infrastructure
  • Utiliser un stockage SSD rapide
  • Configurer les index lifecycle policies (ILM)

Sécurité avancée

  • Activer l'authentification avec SSL/TLS
  • Déployer Elasticsearch derrière un reverse proxy (Nginx, Traefik)
  • Mettre en place des utilisateurs avec permissions via Kibana

Surveillance et alertes

  • Intégrer la stack Prometheus/Grafana avec Elasticsearch Exporter
  • Configurer des alertes via Kibana Alerts

Cas d'utilisation typiques

  • Centralisation des logs avec Filebeat ou Logstash
  • Monitoring applicatif et système
  • Recherche rapide et analytique en temps réel

Conclusion

Déployer un cluster Elasticsearch avec Kibana permet de centraliser, indexer et analyser efficacement de grandes quantités de données, indispensable pour une gestion optimale des logs et des recherches.

Pour approfondir l'architecture de votre cluster, consultez notre guide sur le cluster Elasticsearch HA et intégrez une stack monitoring Prometheus pour la supervision.

Besoin d'aide sur ce sujet ?

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

Contactez-nous

Articles similaires