ES节点连接报错|ES集群状态异常
更新时间:
问题描述
同VPC下的客户端连接ES服务报错No alive nodes found in your cluster
问题原因
1、集群读写QPS较大,各个节点负载较高,load的指标已经超过了当前集群规格的负载能力, 导致集群异常无法连接。
2、集群可以正常连接,但是查询或者写入就报错,可以按照以下方式排查集群自身状况解决:
- 通过
GET _cat/health?v
查看集群健康状态,是否有出现节点失联、shard未分配等情况。 - 通过监控查看集群负载,即查看CPU、JVM、磁盘使用率等是否出现瓶颈。具体操作请参见查看集群监控。
- 通过日志查看是否出现熔断、disconnected、节点removed等情况。具体操作请参见查询日志。
解决方案
1、如果偶现异常可以考虑优化集群,如果频繁报错,建议升配集群实例规格。
2、查看集群状态不佳的话先尝试恢复集群状态,一般先停止读写,负载降下来之后再观察下,如果无法恢复可以尝试重启集群。
重启的影响:
如果集群整体负载不高且索引存在副本分片,一般情况下重启过程中可对外持续提供服务。但在某些场景下,重启过程中可能会出现访问超时,例如强制重启并发度高、集群负载很高并且已经存在集群访问不可用的情况、没有副本分片、在重启或强制重启过程中存在大量的写入和查询等场景,建议重启前先在客户端设计好重试机制并且在业务低峰期进行操作。
shard未分配或者超过限制请参考shard评估设置分片,配置阿里云上ES单节点分片数量命令如下。
PUT /_cluster/settings
{
"transient": {
"cluster": {
"max_shards_per_node": 2000
}
}
}
适用范围
检索分析服务Elasticsearch版
文档内容是否对您有帮助?