You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

修改Elasticsearch端口后Kibana无法连接问题求助

解决Kibana无法连接修改端口后的Elasticsearch问题

我一眼就看出问题所在了——你搞混了Docker容器端口映射和容器间通信的端口逻辑!

错误原因

当你在Docker Compose里配置ports: - 34343:9200时,34343主机对外暴露的端口,而Elasticsearch容器内部实际监听的还是默认的9200端口。Kibana和Elasticsearch同属一个Docker网络,直接通过服务名/容器名通信时,必须使用容器内部的端口,而不是主机映射的端口。

你之前配置的ELASTICSEARCH_HOSTS=http://elasticsearch:34343,相当于让Kibana去请求Elasticsearch容器的34343端口,但这个端口在容器内部根本没开放,自然会出现ECONNREFUSED错误。

正确配置方案

把Kibana的ELASTICSEARCH_HOSTS改成指向Elasticsearch容器内部的9200端口即可,不管用服务名还是容器名都可以:

修改后的Docker Compose

version: '3.7'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3
    container_name: my_elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      - discovery.type=single-node
    ports:
      - 34343:9200  # 主机端口映射不变,不影响容器间通信
  kibana:
    image: docker.elastic.co/kibana/kibana:7.16.3
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200  # 用服务名+内部端口
      # 或者用容器名:ELASTICSEARCH_HOSTS=http://my_elasticsearch:9200
    ports:
      - 5666:5601

验证方法

  1. 重启服务:docker-compose down && docker-compose up -d
  2. 查看Kibana日志:docker-compose logs kibana,如果看到类似Status changed from yellow to green - Ready的日志,说明连接成功
  3. 访问主机的http://localhost:5666,应该能正常打开Kibana界面

内容的提问来源于stack exchange,提问作者Abe

火山引擎 最新活动