记录docker 容器 kibana 不能访问

1,877 阅读2分钟

这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

kibana .png

记录一下问题排查以及修复方案

之前在服务器安装的 kibana 和 elasticsearch docker容器今天突然通过kibana访问不到,首先通过postman先测试一下elasticsearch是不是挂掉了。发现可以正常访问,那麽问题就出现在了 kibana那边了我们访问kibana 发现提示 Kibana server is not ready yet

image.png 出现这个问题原因大多数是这两个原因导致的:

  1. kinbana 的版本和elasticsearch 的版本不匹配
  2. kinbana 容器不能访问到 elasticsearch

下面我们一个一个排查 先使用 docker 命令查看运行中的容器 (首先确保这两个容器正常运行)

docker ps -a 

image.png 可以看到两个容器都正常运行而且版本一致排除掉了第一种可能

排查问题定位问题最好的帮手还是日志

docker logs kibana

docker logs 容器名称或者ID

image.png 可以看到日志中 连接不到 elasticsearch(这里是因为我电脑的IP变动导致虚拟机的IP也变动了,使用的网络方式是桥接模式导致)
进入容器内部修改elasticsearch的链接地址 confg目录下的kibana.yml文件

docker exec -it kibana /bin/bash

image.png 这里修改保存重启后发现可以正常访问了

image.png 如果上面修改完成后还是不能正常访问,那么就剩下终极大招了😂😂😂😂
删除掉kibana 这个容器重新运行一个设置一下es的访问地址和端口(因为只是一个可视化工具😂😂)

#删除容器
docker rm 容器名称或者ID
# 注意这里的IP需要查看一下elasticsearch的内网IP负责可能会出现链接不到

docker run --name kibana  -e ELASTICSEARCH_HOSTS=http://172.17.0.6:9200 -p 5601:5601  -d kibana:7.4.2

查看 elasticsearch 在虚拟机的内网IP

docker inspect elasticsearch |grep IPAddress

image.png 这样设置上elasticsearch的访问地址就没有问题了,排查问题最好最直接的方式还是查看日志,才能快速准确定位到问题。只有定位到问题才能更快的解决问题。
实践是检验真理的唯一准则,感兴趣的可以去试试呀!明天见咯 😃😃😃😃