按照教程,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
。