尝试连接远程Elasticsearch服务器时遭遇连接拒绝错误求助
Elasticsearch连接被拒绝问题排查与解决
问题背景
使用elasticsearch==7.17.3版本的Python客户端连接远程Elasticsearch,代码如下:
from elasticsearch import Elasticsearch #elasticsearch==7.17.3 used esDB = Elasticsearch( ['https://13.XX.242.XX'], use_ssl = False, ca_certs=False, verify_certs=False, http_auth=('elastic', 'elastic'), port=5601, )
连接时触发如下错误:
ERROR: elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPSConnection object at 0x7f3f597e8430>: Failed to establish a new connection: [Errno 111] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPSConnection object at 0x7f3f597e8430>: Failed to establish a new connection: [Errno 111] Connection refused)
排查原因及解决办法
- 端口配置错误:Elasticsearch默认HTTP端口为
9200,代码中填写的5601是Kibana的默认端口。直接修改代码中的port参数为9200即可。 - SSL协议不匹配:代码中使用
https://协议,但设置use_ssl=False,导致协议冲突。- 若远程Elasticsearch使用HTTP(无SSL):将地址改为
http://13.XX.242.XX,保持use_ssl=False; - 若使用HTTPS:将
use_ssl=True开启,根据证书情况调整ca_certs和verify_certs(自签名证书可临时设verify_certs=False,生产环境不推荐)。
- 若远程Elasticsearch使用HTTP(无SSL):将地址改为
- 网络访问限制:检查远程服务器的防火墙/安全组规则,确认是否允许客户端IP访问Elasticsearch端口。可在客户端执行
curl http://13.XX.242.XX:9200(或对应HTTPS命令)测试连通性,若无法访问则需调整服务器网络规则。 - 服务未正常运行:登录远程服务器,执行
curl localhost:9200确认Elasticsearch服务是否启动,若未启动则先启动服务。 - 认证信息验证:虽然连接拒绝通常发生在认证前,但如果上述问题排查完毕仍有异常,可确认
http_auth中的用户名和密码是否正确且具备访问权限。
内容的提问来源于stack exchange,提问作者Prasun Kumar
相关产品推荐
相关产品推荐

