如何在Monstache中禁用Elasticsearch sniffing解决节点不可用报错
Monstache Elasticsearch节点连接报错解决方案
该报错是Elasticsearch Go客户端默认开启的节点嗅探机制导致的,该机制会自动发现ES集群内所有节点的绑定地址,当ES节点绑定的是内部不可路由地址、或者你通过代理/负载均衡访问ES时,嗅探获取到的节点地址无法正常访问,就会触发无可用节点的报错。
核心修复配置
直接在你现有Monstache配置文件的Elasticsearch相关配置段中新增如下配置即可关闭嗅探机制:elasticsearch-sniff = false
完整参考配置示例
# ES集群访问地址,根据实际情况修改 elasticsearch-urls = ["http://127.0.0.1:9200"] # 关闭SSL证书校验 elasticsearch-validate-pem-file = false # 健康检查超时配置 elasticsearch-healthcheck-timeout-startup = 200 elasticsearch-healthcheck-timeout = 200 # 关闭节点嗅探,修复嗅探导致的节点不可达问题 elasticsearch-sniff = false # 若ES开启身份验证,补充如下配置 # elasticsearch-user = "elastic" # elasticsearch-password = "你的ES密码"
补充验证步骤
配置修改完成后启动前请先验证以下内容:
- 在部署Monstache的机器上执行
curl <你的ES地址>确认网络连通性正常,能够正常获取ES节点信息 - 确认Monstache版本与Elasticsearch主版本匹配:Monstache 6.x对应ES 6.x,Monstache 7.x对应ES 7.x,Monstache 7.0+版本支持ES 8.x
- 若使用HTTPS访问ES,确认
elasticsearch-urls配置前缀为https而非http
内容的提问来源于stack exchange,提问作者Ahmad Tanha
相关产品推荐
相关产品推荐

