配置SSL后Kibana始终连接127.0.0.1:9200失败问题排查
排查与解决步骤
1. 确认Kibana配置文件是否被正确加载
- 检查docker-compose中Kibana的配置挂载路径是否正确,示例配置:
kibana: image: docker.elastic.co/kibana/kibana:8.x.x volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml # 确保本地配置文件映射到容器内正确路径 networks: - es-network # 必须和ES集群处于同一Docker网络 - 进入Kibana容器查看实际加载的配置内容:
重点确认docker exec -it <kibana-container-id> cat /usr/share/kibana/config/kibana.ymlelasticsearch.hosts是否为ES集群的正确地址(比如https://es-node1:9200,https://es-node2:9200,https://es-node3:9200),而非默认的http://127.0.0.1:9200。
2. 补全SSL相关配置(核心)
配置SSL后仅修改elasticsearch.hosts不足以正常连接,必须添加证书验证参数,否则Kibana可能因连接失败 fallback 到默认地址:
在kibana.yml中补充以下配置:
elasticsearch.hosts: ["https://es-node1:9200", "https://es-node2:9200", "https://es-node3:9200"] elasticsearch.ssl.certificateAuthorities: ["/usr/share/kibana/config/ca.crt"] # 挂载的ES根证书路径 elasticsearch.ssl.verificationMode: full # 测试阶段可临时设为none,生产环境建议保持full elasticsearch.username: "kibana_system" # 使用ES集群中预创建的kibana_system用户 elasticsearch.password: "your-kibana-system-password" # 对应用户的密码
同时确保证书文件已正确挂载到Kibana容器,在docker-compose的Kibana服务中添加证书挂载:
volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml - ./certs/ca.crt:/usr/share/kibana/config/ca.crt # 路径需和配置文件中一致
3. 验证Docker网络连通性
- 确保所有ES节点和Kibana服务都加入同一个Docker网络(比如上述配置中的
es-network)。 - 在Kibana容器内测试ES节点的连通性:
如果无法连通,检查ES节点的容器名是否正确、ES节点是否在同一网络,以及ES节点的9200端口是否在容器内正常监听。docker exec -it <kibana-container-id> curl -k https://es-node1:9200 # -k跳过证书验证,仅测试网络连通
4. 检查ES集群的SSL配置正确性
- 确认ES节点的
elasticsearch.yml已开启SSL并配置有效证书:xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.client_authentication: required xpack.security.transport.ssl.keystore.path: certs/es-node1.p12 xpack.security.transport.ssl.truststore.path: certs/es-node1.p12 xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: certs/es-node1.p12 xpack.security.http.ssl.truststore.path: certs/es-node1.p12 - 核对证书创建过程(对应你提供的截图),确保容器内证书路径正确、文件权限为可读。
5. 清理缓存并重启容器
若之前的配置修改未生效,可能是容器缓存导致:
docker-compose down -v # 彻底删除容器、数据卷 docker-compose up -d # 重新启动所有服务
启动后查看Kibana日志定位问题:
docker logs -f <kibana-container-id>
重点关注配置加载日志、SSL连接错误详情,进一步排查具体问题。
内容的提问来源于stack exchange,提问作者guapi
相关产品推荐
相关产品推荐

