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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 最全解决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

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

# 临时启动
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看是否成功显示页面

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
97 1
|
1月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
258 1
|
1月前
|
安全 Docker 容器
Docker中运行容器时Operation not permitted报错问题解决
【10月更文挑战第2天】Docker中运行容器时Operation not permitted报错问题解决
289 3
|
1月前
|
存储 Ubuntu JavaScript
如何使用Docker优化你的开发环境配置
如何使用Docker优化你的开发环境配置
|
1月前
|
Docker 容器
利用Docker Compose优化开发环境的配置
在现代软件开发中,环境一致性至关重要。开发人员常需在不同机器间复制环境配置,而Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,确保开发、测试和生产环境一致,简化团队协作,提高开发效率。通过YAML文件配置服务、网络和卷,使用简单命令即可启动和停止服务。本文将介绍Docker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化开发环境。
|
1月前
|
搜索推荐 应用服务中间件 nginx
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)
docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)
|
29天前
|
JavaScript 前端开发 Docker
拿下奇怪的前端报错(二):nvm不可用报错`GLIBC_2.27‘‘GLIBCXX_3.4.20‘not Found?+ 使用docker构建多个前端项目实践
本文介绍了在多版本Node.js环境中使用nvm进行版本管理和遇到的问题,以及通过Docker化构建流程来解决兼容性问题的方法。文中详细描述了构建Docker镜像、启动临时容器复制构建产物的具体步骤,有效解决了不同项目对Node.js版本的不同需求。
|
30天前
|
网络虚拟化 Docker 容器
docker Desktop报错 error pulling image configuration 处理
docker Desktop报错 error pulling image configuration 处理
34 0
|
1月前
|
缓存 Ubuntu 网络安全
docker pull失败:x509: certificate has expired or is not yet
遇到“x509: certificate has expired or is not yet valid”错误时,首要步骤是校正系统时间并确保Docker客户端是最新的。如果问题依旧,检查和更新证书或考虑使用镜像加速服务也是可行的解决方案。通过这些步骤,大多数与证书相关的 `docker pull`问题都能得到有效解决。
315 0
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
22 2