You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署ES与Kibana时遭遇ECONNREFUSED连接错误求助

解决Elasticsearch连接ECONNREFUSED 9200问题的排查步骤

以下是针对你遇到的FSCrawler无法连接Elasticsearch问题的具体排查和修复步骤:

  • 检查Elasticsearch容器状态与日志
    先确认Elasticsearch是否真的启动成功:

    docker-compose logs elasticsearch
    

    重点看日志里的报错,比如常见的内存不足问题(Elasticsearch默认要求至少2GB内存),如果是这个问题,在.env文件里添加:

    ES_JAVA_OPTS="-Xms1g -Xmx1g"
    

    或者在docker-compose.yml的elasticsearch服务中添加内存限制:

    deploy:
      resources:
        limits:
          memory: 2g
    
  • 验证容器间网络连通性
    进入FSCrawler容器内部,直接测试和Elasticsearch容器的连通性:

    docker-compose exec fscrawler curl http://elasticsearch:9200
    

    这里必须用容器名elasticsearch作为主机名(Docker Compose默认会在自定义网络中解析容器名),如果用宿主机IP可能因为网络隔离导致无法访问。

  • 确认Elasticsearch核心配置
    在docker-compose.yml的elasticsearch服务环境变量中,确保以下参数正确设置:

    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
      - xpack.security.enrollment.enabled=false
      - xpack.security.http.ssl.enabled=false
      - network.host=0.0.0.0
    

    discovery.type=single-node是单节点部署的关键配置,缺失会导致Elasticsearch卡在集群发现阶段无法正常提供服务。

  • 统一容器网络配置
    确保三个服务都加入同一个自定义网络,避免默认网络的隔离问题:

    networks:
      es-cluster:
        driver: bridge
    
    services:
      elasticsearch:
        # 其他配置...
        networks:
          - es-cluster
      kibana:
        # 其他配置...
        networks:
          - es-cluster
      fscrawler:
        # 其他配置...
        networks:
          - es-cluster
    
  • 检查FSCrawler的连接配置
    打开FSCrawler的_settings.json文件,确认elasticsearch地址配置为:

    "elasticsearch": {
      "url": "http://elasticsearch:9200"
    }
    

    不要使用localhost或宿主机IP,容器内的localhost指向容器自身,无法访问宿主机或其他容器。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:35:10