
Go语言连接Elasticsearch集群时,常遇到“health check timeout”错误,尤其在需要用户名密码认证时。本文分析一个用户遇到的“health check timeout: no elasticsearch node available”错误,该错误发生在连接需要账号密码验证的Elasticsearch集群时。
用户代码片段如下:
client, err = elastic.NewClient(
// elastic.SetSniff(false),
elastic.SetHealthcheckInterval(10*time.Second),
elastic.SetMaxRetries(3),
elastic.SetURL("http://xx:9200"),
elastic.SetBasicAuth("username", "password"),
)代码使用了elastic.SetBasicAuth设置用户名密码,看似正确,但运行时却出现“health check timeout: no elasticsearch node available”错误,表明客户端无法连接到任何Elasticsearch节点。
问题并非库本身或代码配置错误,而是Elasticsearch集群的安全策略和用户权限设置。 经排查,集群为不同索引创建了不同用户,权限级别各异。olivere/elastic/v7库连接时,需要具有足够权限的用户,而非仅有小权限用户。只有拥有最高权限的用户才能成功连接集群并执行操作。 因此,用户需使用拥有所有索引访问权限的账户连接,才能解决此问题。
立即学习“go语言免费学习笔记(深入)”;
以上就是Go语言连接Elasticsearch集群时遇到“health check timeout”错误怎么办?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号