当前位置: 首页 > 知识库问答 >
问题:

Docker上的Kibana无法连接到Elasticsearch

谭池暝
2023-03-14

我试图创建Kibana和Elasticsearch,似乎Kibana无法识别Elasticsearch。

以下是我的步骤:

1) 创建网络

docker network create mynetwork --driver=bridge

2) 运行Elasticsearch容器

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch_2_4 --network mynetwork elasticsearch:2.4

3) 运行Kibana容器

docker run -i --network mynetwork -p 5601:5601 kibana:4.6

当我通过连接Elasticsearch时,我会得到一个JSON输出http://localhost:9200/通过我的浏览器。

但当我打开http://localhost:5601/我明白了

Unable to connect to Elasticsearch at http://elasticsearch:9200.

另一种方法,

我在尝试时仍然会遇到类似的错误

docker run -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 kibana:4.6

我从哪里得到错误

Unable to connect to Elasticsearch at http://127.0.0.1:9200.

我的博客文章基于公认的答案:https://gunith.github.io/docker-kibana-elasticsearch/

共有3个答案

越飞翮
2023-03-14

我更改了Kibana容器的网络配置,之后工作正常:

简成仁
2023-03-14

测试:

docker run -d -e ELASTICSEARCH_URL=http://yourhostip:9200 -p 5601:5601 kibana:4.6

您可以使用您的主机ip或ifconfig中docker0标识的ip进行测试

当做

宗意蕴
2023-03-14

在容器中运行命令时,对localhost127.0.0.1的含义存在一些误解。因为每个容器都有自己的网络,localhost不是真正的主机系统,而是容器本身。因此,当您运行kibana并将ELASTICSEARCH_URL变量指向localhost:9200时,kibana进程将在kibana容器中查找ELASTICSEARCH,当然它没有在那里运行。

您已经引入了一些在启动容器时引用的自定义网络。在同一网络中运行的所有容器都可以通过其exposed端口上的名称相互引用(请参阅Dockerfiles)。当您将elasticsearch容器命名为elasticsearch_2_4时,您可以将elasticsearch的httpendpoint引用为http://elasticsearch_2_4:9200

docker run -d --network mynetwork -e ELASTICSEARCH_URL=http://elasticsearch_2_4:9200 -p 5601:5601 kibana:4.6

只要不需要直接访问elasticsearch实例,甚至可以省略将端口9200和9300映射到主机的操作。

我还建议使用docker compose来管理所有服务和参数,而不是单独启动所有容器。您还应该考虑将本地文件夹装载为卷,以保持数据。这可能是你的合成文件。如果需要外部网络,请添加网络,否则此设置只会为您创建一个网络。

version: "2"

services:

  elasticsearch:
    image: elasticsearch:2.4
    ports:
      - "9200:9200"
    volumes:
      - ./esdata/:/usr/share/elasticsearch/data/

  kibana:
    image: kibana:4.6
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
 类似资料:
  • 我按照https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docker.html和https://www.elastic.co/guide/en/kibana/6.5/docker.html但它似乎并没有很好地与kibana工作,ES工作正常。 我试着单独启动kibana,但最后我把它添加到了一个docker compose文件中

  • 我试图创建Kibana和Elasticsearch,似乎Kibana无法识别Elasticsearch。 以下是我的步骤: 1) 创建网络 2) 运行Elasticsearch容器 3) 运行Kibana容器 当我通过连接Elasticsearch时,我会得到一个JSON输出http://localhost:9200/通过我的浏览器。 但当我打开http://localhost:5601/我明白了

  • 我试图运行在通过包含文件()在虚拟机中,但我无法连接到,并且在尝试连接失败时收到的消息如下所示: 如果您注意到,docker能够连接到docker compose文件中提到的其他服务,其中一个是前两行显示的。在docker compose文件中调用kibana的命令如下: 如果我做了,它会给我以下信息: 在这里发布这个问题之前,我在google上广泛搜索了这个问题,并尝试了人们对这个问题的各种建议

  • 问题内容: 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI后,我看到了错误,“ Kibana服务器尚未准备好。” 检查Kibana日志,我发现它没有正确连接到ES。任何帮助表示赞赏! 这是 journalctl –unit kibana 的输出: Elasticsearch.yml Kibana.yml 另外,当我运行 ss -tunlp | gre

  • 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI之后,我看到了错误,“Kibana服务器还没有准备好。” 检查Kibana日志,我看到它没有正确连接到ES。感谢任何帮助! 以下是journalctl的输出——单位kibana: 弹性搜索。yml 基巴纳。yml 此外,当我在Kibana启动期间运行ss-tunlp|grep 5601时,我看到Kiban

  • 尝试使用Docker容器将Kibana连接到ES时出错: kibana-product-624|{"type":"log","@time戳":"2018-05-25T14:56:36Z","tags":["警告","elasticsearch","admin"],"pid": 1,"消息":"无法恢复连接:超文本传输协议://elasticsearch: 9200/"}kibana-product