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

如何使用Python获取企业Elasticsearch数据及连接报错排查

报错核心原因

你两次连接使用的端口5601是Kibana的默认服务端口,而Elasticsearch Python客户端需要直接连接Elasticsearch本身的服务端口,二者不能混用,这是报错的根本原因。

两个报错的具体解释:

  • ConnectionError(WinError 10061):你尝试连接的10.251.0.135:5601没有对应的服务监听,IP或端口不可达。
  • TransportError(302, ''):你访问的10.251.0.134:5601是正常运行的Kibana服务,Kibana收到ES客户端的API请求后返回了302跳转(一般跳转到登录页或首页),无法响应ES客户端的请求,所以抛出传输错误。

你可以正常访问Kibana仅代表Kibana的端口对你开放,不代表你可以用Kibana的地址连接ES客户端,Kibana是独立的可视化服务,本身会在后台和ES通信,和你本地直接连ES的逻辑无关。

解决方案
  1. 首先确认Elasticsearch服务本身的部署信息:包括IP地址、HTTP服务端口(默认为9200)、访问协议(HTTP/HTTPS)、是否需要账号密码认证,不清楚可以找负责部署ES的运维人员索要。
  2. 修正Python连接代码,不同场景的示例如下:
    • 场景1:ES为HTTP协议、无认证、部署在10.251.0.134的9200端口
      from elasticsearch import Elasticsearch
      
      es = Elasticsearch("http://10.251.0.134:9200/")
      # 验证连接是否正常
      print(es.info())
      
    • 场景2:ES需要账号密码认证
      es = Elasticsearch(
          "http://10.251.0.134:9200/",
          basic_auth=("你的ES账号", "你的ES密码")
      )
      
    • 场景3:ES使用自签HTTPS证书,可临时关闭证书校验(不建议生产环境使用)
      es = Elasticsearch(
          "https://10.251.0.134:9200/",
          basic_auth=("你的ES账号", "你的ES密码"),
          verify_certs=False
      )
      

你可以先通过浏览器直接访问ES的HTTP地址(比如http://10.251.0.134:9200)验证地址是否可达,正常会返回包含ES版本、集群名称的JSON信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:36:03