• 最全解决docker配置kibana报错 Kibana server is not ready yet


     问题复现:

    在浏览器输入http://192.168.101.65:5601/ 访问kibana报错

    Kibana server is not ready yet

    问题报错:

    首先查看kibana的日志

    docker logs kibana

    看到报错如下: 

    {"type":"log","@timestamp":"2023-10-07T07:03:20+00:00","tags":["warning","elasticsearch"],"pid":6,"message":"No living connections"}
    {"type":"log","@timestamp":"2023-10-07T07:03:20+00:00","tags":["warning","plugins","licensing"],"pid":6,"message":"License information could not be obtained from Elasticsearch due to Error: No Living connections error"}
    {"type":"log","@timestamp":"2023-10-07T07:03:49+00:00","tags":["warning","elasticsearch"],"pid":6,"message":"Unable to revive connection: http://es:9200/"}

     那就大概明白是和elasticsearch的连接有问题

    可能出现问题的地方有:

    1. Elasticsearch没有启动。

    2.Elasticsearch和Kibana版本不一致。

    2. Kibana未能连接到Elasticsearch。默认情况下,Elasticsearch使用端口9200和9300。

    4. Elasticsearch的索引不可用。请尝试通过访问`http://localhost:9200/.kibana`来访问看看能否有信息。

    5. Kibana的配置文件存在问题。请检查Kibana配置文件中是否有任何错误或不正确的设置。您可以在Kibana日志文件中查找更多信息,该文件通常位于Kibana安装目录下的logs文件夹中。
     

    问题解决:

    方案一:检查版本

    docker images

    检查镜像,可以看到版本是一致的,因此不是这个问题 

    1. # 临时启动
    2. docker run --name kibana -d -p 5601:5601 kibana:8.0.1
    3. # 宿主机 创建一个 用于存储kibana config文件夹
    4. mkdir -p kibana
    5. # docker cp 拷贝 kibana/config 到 宿主机对于的配置文件夹
    6. docker cp kibana:/usr/share/kibana/config /data/soft/kibana

     方案二:检查是否连接上elasticsearch和kibana 

    先输入192.168.101.65:9200看看elasticsearch是否正常启动,一般不出现error就是连接上了

    在输入192.168.101.65:9200/.kibana查看elasticsearch是否连接上了kibana,出现以下数据基本就没有问题了

    然后输入192.168.101.65:5601看是否成功显示

    方案三:检查kibana的配置

    首先你得知道自己的kibana的yaml配置在哪,先运行kibana起来,然后执行以下命令

    1. # 临时启动
    2. docker run --name kibana -d -p 5601:5601 kibana:7.12.1
    3. # 在宿主机的任意一个位置创建用于存储kibana config文件夹
    4. mkdir -p kibana
    5. #拷贝kibana/config 到 宿主机的/data/soft/kibana下
    6. docker cp kibana:/usr/share/kibana/config /data/soft/kibana

    然后进入到该目录下,出现以下文件即可

    进入到该文件进行编辑 

    vim kibana.yml 

    1. server.name: kibana
    2. server.host: "0"
    3. elasticsearch.hosts: ["http://容器内部ip:9200"]
    4. xpack.monitoring.ui.container.elasticsearch.enabled: true

    注意!!!这里的容器内部ip是docker赋予改容器的ip而不是虚拟机或者本机的ip,当然如果你不是docker部署的就是本机ip。

    如果是docker配置的,可以输入以下命令查看elasticsearch的容器内部ip

    1. docker ps #查看容器内的各个软件的容器id和端口等信息
    2. docker inspect 容器id #查看该软件的相关信息

    记住这个信息,然后去到kibana.yml 中配置

    然后重启kibana

    docker restart kibana

     在重复方案二的步骤查看是否连接成功

    方案四:重做kibana 

    停止kibana,再从docker中删除kibana容器

    1. docker stop kibana
    2. docker rm -f <kibana容器id>

    再重新拉回kibana然后配置kibana(记得修改里面的ELASTICSEARCH_HOSTS和版本号)

    1. #拉取kibana
    2. docker pull kibana:7.12.1
    3. #配置kibana
    4. docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://172.18.0.2:9200 -p 5601:5601 kibana:7.12.1

    方案五:重做elasticsearch和kibana 

    首先分别停止elasticsearch和kibana,再从docker中删除elasticsearch和kibana容器(不是删除镜像)

    1. docker stop kibana
    2. docker stop elasticsearch
    3. docker rm -f <elasticsearch容器id>
    4. docker rm -f <kibana容器id>

    先创建一个网络,方便es和kibana容器互联

    docker network create es-net

    配置elasticsearch

    1. #拉取
    2. docker pull elasticsearch:7.12.1
    3. #配置es
    4. docker run -d \
    5. --name es \
    6. -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    7. -e "discovery.type=single-node" \
    8. -v es-data:/usr/share/elasticsearch/data \
    9. -v es-plugins:/usr/share/elasticsearch/plugins \
    10. --privileged \
    11. --network es-net \
    12. -p 9200:9200 \
    13. elasticsearch:7.12.1

    命令解释:

    • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":配置JVM的堆内存大小,默认是1G,但是最好不要低于512M
    • -e "discovery.type=single-node":单点部署
    • -v es-data:/usr/share/elasticsearch/data:数据卷挂载,绑定es的数据目录
    • -v es-plugins:/usr/share/elasticsearch/plugins:数据卷挂载,绑定es的插件目录
    • -privileged:授予逻辑卷访问权
    • --network es-net:让ES加入到这个网络当中
    • -p 9200:暴露的HTTP协议端口,供我们用户访问的

    输入以下命令启动elasticsearch

    docker start es

    然后访问192.168.101.65:9200看看elasticsearch看到以下情况即正常启动

    再配置kibana

    1. #拉取
    2. docker pull kibana:7.12.1
    3. #配置
    4. docker run -d \
    5. --name kibana \
    6. -e ELASTICSEARCH_HOSTS=http://es:9200 \
    7. --network=es-net \
    8. -p 5601:5601 \
    9. kibana:7.12.1

    命令解释:

    • --network=es-net:让kibana加入es-net这个网络,与ES在同一个网络中
    • -e ELASTICSEARCH_HOSTS=http://es:9200:设置ES的地址,因为kibana和ES在同一个网络,因此可以直接用容器名访问ES
    • -p 5601:5601:端口映射配置

    输入以下信息启动kibana

    docker start kibana

    然后输入192.168.101.65:5601看是否成功显示页面

  • 相关阅读:
    WebGL程序员兼职副业平台推荐
    Pytorch学习笔记 (参考官方教程)
    golang运行期间重新加载环境变量
    盘点一下今年世界杯中国赞助商及联名入圈品牌
    通信原理 | 滤波器:滤波器的概念、理想滤波器和实际滤波器
    全国211院校考研信息汇总整理
    centos9 stream 下 rabbitmq高可用集群搭建及使用
    PythonAppium自动化测试环境搭建
    Avalonia 部署到麒麟信安操作系统
    Matlab:运算符和字符
  • 原文地址:https://blog.csdn.net/m0_62314761/article/details/133639930