Elasticsearch升级后Docker容器异常及Kibana无法访问求助
Elasticsearch 7.10.1 升级至7.17.6后Kibana无法访问问题
环境概述
- 单服务器部署3节点Elasticsearch集群(es01、es02、es03)
- 搭配1个Kibana实例(kib01)
- 通过修改
.env文件完成版本升级
首次启动异常
执行sudo docker-compose up -d后报错:
Starting es03 ... done Recreating es01 ... done Starting es02 ... done ERROR: for kib01 Container "<container-ID>" is unhealthy. ERROR: Encountered errors while bringing up the project.
系统日志/var/log/messages相关内容:
Sep 9 avahi-daemon[890]: Withdrawing address record for on <ID1>. Sep 9 avahi-daemon[890]: Withdrawing workstation service for <id>. Sep 9 libvirtd: 2022-09-09 : 1468: error : virFileReadAll:1460 : Failed to open file '/sys/class/net/<id>/operstate': No such file or directory Sep 9 libvirtd: 2022-09-09 : 1468: error : virNetDevGetLinkInfo:2552 : unable to read: /sys/class/net/<id>/operstate: No such file or directory Sep 9 kernel: device <ID1> left promiscuous mode Sep 9 kernel: : port 2(<ID1>) entered disabled state Sep 9 avahi-daemon[890]: Withdrawing workstation service for <ID1>. Sep 9 NetworkManager[884]: <info> [] manager: (<ID2>): new Veth device (/org/freedesktop/NetworkManager/Devices/100) Sep 9 NetworkManager[884]: <info> [] device (<ID1>): released from master device Sep 9 kernel: : port 3() entered disabled state
后续操作及新问题
删除原有容器后,从同目录下另一个文件夹执行sudo docker-compose up -d,输出如下,且Elasticsearch集群所有节点健康状态正常,但访问Kibana前端URL提示“无法访问此网站”:
Creating es02 ... done Creating es03 ... done Creating es01 ... done Creating kib01 ... done
排查与解决步骤
1. 检查Kibana容器运行状态
执行docker ps -a确认kib01容器是否正常运行,若容器已退出,查看容器日志定位问题:
docker logs kib01
重点关注Elasticsearch连接配置、端口监听、权限相关报错。
2. 验证Kibana端口映射
检查docker-compose.yml中Kibana的端口映射配置,确认宿主机端口(默认5601)是否正确暴露:
services: kib01: ports: - "5601:5601"
执行ss -tulpn | grep 5601,确认宿主机的5601端口是否被Kibana容器占用。
3. 检查Kibana与Elasticsearch的连通性
进入Kibana容器内部,测试与Elasticsearch集群的连通性:
docker exec -it kib01 curl http://es01:9200
若无法连通,检查docker-compose.yml中Kibana的ELASTICSEARCH_HOSTS配置是否正确指向Elasticsearch集群地址。
4. 排查网络拦截问题
- 检查宿主机防火墙/安全组是否放行5601端口,执行
firewall-cmd --list-ports(firewalld环境)或ufw status(ufw环境)确认。 - 若从外部访问,确认服务器公网IP配置正确,且网络路由无阻断。
- 执行
docker network ls查看集群使用的网络,确认Kibana和Elasticsearch节点在同一Docker网络内。
5. 修正Kibana健康检查配置
针对首次启动的unhealthy错误,检查docker-compose.yml中Kibana的健康检查配置是否适配7.17.6版本,示例正确配置:
services: kib01: healthcheck: test: ["CMD-SHELL", "curl -s http://localhost:5601/api/status | grep -q '\"status\":\"green\"'"] interval: 10s timeout: 10s retries: 6
内容的提问来源于stack exchange,提问作者Boodle
相关产品推荐
相关产品推荐

