在使用 Docker 部署 ELK(Elasticsearch、Logstash、Kibana)堆栈时,正确的服务配置和依赖管理至关重要。本文将分享如何优化 Docker Compose 配置,确保 Kibana 能稳定连接到 Elasticsearch,并提供故障排查建议
cd /opt/docker
vi docker-compose.yaml
#写入
bash
services:
elasticsearch:
image: elasticsearch:6.8.23
restart: unless-stopped
container_name: elasticsearch
ports:
- 9200:9200
environment:
- ES_JAVA_OPTS=-Xms512m -Xmx1024m
- discovery.type=single-node
- network.host=0.0.0.0 # 明确绑定到所有接口
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: kibana:6.8.23
restart: unless-stopped
container_name: kibana
ports:
- 5601:5601
environment:
- SERVER_NAME=kibana
- ELASTICSEARCH_URL=http://elasticsearch:9200 # 关键修改:使用容器名
depends_on:
- elasticsearch
volumes:
esdata:
启动docker
docker compose down
docker compose up -d

浏览器输入ip:5601出现页面则安装成功

通过优化网络绑定、连接配置和依赖管理,可以显著提升 ELK 堆栈的稳定性。关键步骤包括:
- 使用
network.host=0.0.0.0
确保 Elasticsearch 监听所有接口。 - 通过容器名解析服务地址,避免硬编码 IP。
- 添加健康检查,确保依赖服务就绪后再启动。
- 清理旧容器、验证连接并检查日志,快速定位问题。