最全解决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版本不一致。

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

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

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

问题解决:

方案一:检查版本

docker images

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

复制代码
# 临时启动
docker run --name kibana -d -p 5601:5601 kibana:8.0.1

# 宿主机 创建一个 用于存储kibana config文件夹
mkdir -p kibana

# docker cp 拷贝 kibana/config 到 宿主机对于的配置文件夹
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起来,然后执行以下命令

复制代码
# 临时启动
docker run --name kibana -d -p 5601:5601 kibana:7.12.1

# 在宿主机的任意一个位置创建用于存储kibana config文件夹
mkdir -p kibana

#拷贝kibana/config 到 宿主机的/data/soft/kibana下
docker cp kibana:/usr/share/kibana/config /data/soft/kibana

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

进入到该文件进行编辑

vim kibana.yml

复制代码
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://容器内部ip:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

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

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

复制代码
docker ps #查看容器内的各个软件的容器id和端口等信息


docker inspect 容器id  #查看该软件的相关信息

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

然后重启kibana

docker restart kibana

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

方案四:重做kibana

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

复制代码
docker stop kibana

docker rm -f <kibana容器id>

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

复制代码
#拉取kibana
docker pull kibana:7.12.1


#配置kibana
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容器(不是删除镜像)

复制代码
docker stop kibana
docker stop elasticsearch

docker rm -f <elasticsearch容器id>
docker rm -f <kibana容器id>

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

复制代码
docker network create es-net

配置elasticsearch

复制代码
#拉取
docker pull elasticsearch:7.12.1
#配置es
docker run -d \
    --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/usr/share/elasticsearch/data \
    -v es-plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    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

复制代码
#拉取
docker pull kibana:7.12.1
#配置
docker run -d \
    --name kibana \
    -e ELASTICSEARCH_HOSTS=http://es:9200 \
    --network=es-net \
    -p 5601:5601 \
    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看是否成功显示页面

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
大志哥1231 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn861 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
TableRow2 天前
参数化搜索的实现原理:从多维索引到查询优化
elasticsearch·全文检索
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造