背景
网页中访问kinaba http://localhost:5601 ,一直提示“Kibana server is not ready yet”。
执行如下命令查看kibana日志,
docker logs kibana
发现有提示:
正文
怀疑是不是容器重启后,各容器内部ip变化了导致。
1、故执行如下命令查看elasticsearch容器内部ip,发现果然是kibana.yaml配置文件中的es容器ip与现在实际的es容器ip不一致造成的。
docker inspect --format '{{ .NetworkSettings.IPAddress }}' es容器ID
// 查看es容器id
docker ps
2、进入kibana容器,更新kibana.yaml配置文件。执行如下命令进入并编辑kibana.yaml,
docker exec -it kibana容器id /bin/bash
cd config
vi kibana.yml
将下图所选部分的ip地址更换成实际的es容器ip地址,保存并退出kibana。
3、停止kibana服务,删除kibana容器,重新启动运行kibana。
// 3.1 停止kibana服务
docker stop kibana容器id
// 3.2 删除kibana容器。(不是删除kibana镜像!不是删除kibana镜像!不是删除kibana镜像!)
docker rm -f kibana容器id
// 3.3 启用运行kibana
docker run --name kibana -e ELASTICSEARCH_HOST=http://es内部容器ip:9200 -p 5601:5601 -d kibana:7.7.0
// 注意:上面3.3中命令‘kibana:’后面是kibana的版本号。为保险起见,建议elasticsearch与kibana的版本保持一致。
4、浏览器重新访问 http://localhost:5601 ,多刷新几次,即可正常访问kibana。