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
:
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.7.1
container_name: elasticsearch
environment:
- node.name=es-node-1
- cluster.name=es-cluster
- 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
- bootstrap.memory_lock=true
- 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.7.1
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
- Connectez-vous avec le mot de passe généré à l'installation ou configuré manuellement.
Optimisation du cluster Elasticsearch
- Activer les shards et réplicas 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.