按照教程,elasticsearch 和 kibana 容器都起了,但是访问 http//localhost:5601
,一直只有冰冷的几个字母:
Kibana server is not ready yet
docker logs kibana
打印日志,报错:
{"type":"log","@timestamp":"2020-06-04T08:25:57Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://172.17.0.2:9200/"}
{"type":"log","@timestamp":"2020-06-04T08:25:57Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}
容器 ip
是没问题的,es 服务也确实起了,为什么呢??这个问题花了我大半天的时间,找遍了网上的教程都, 翻了官网上kibana手册,都没有相关的记录
只能自己摸索
进入kibana容器中
docker exec -it kibana /bin/bash
bash-4.2$ ping 172.17.0.2 #没有问题,能ping通
...
bash-4.2$ curl http://120.79.43.44:9200
curl: (7) Failed connect to 120.79.43.44:9200; No route to host
问题就出在这里!容器之间无法进行通信,猜测是防火墙的问题,再单独搜索这个问题,找到了解决的方案
依次执行以下命令
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service
即把 docker0
加入防火墙白名单
重新启动容器,访问地址 http://localhost:5601 ,显示正在加载 kibana 图像,总算没有了 Kibana server is not ready yet
。