es7.17.x es服务yellow状态的排查查看节点,分片状态数量
目录
一 查看集群节点,分片的状态的命令
1.1 查看节点数
1.1.1 方式1
1.1.2 方式2
1.1.3 方式3
1.1.4 总结
1.2 查看分片数量
二 es服务状态为yellow的排查
2.1 问题描述
2.2 排查步骤
2.2.1 确认索引状态
2.2.2 案例
2.2.3 根本原因
2.2.4 解决办法
2.3 解决办法实操
一 查看集群节点,分片的状态的命令
1.1 查看节点数
1.1.1 方式1
方式1:http://localhost:9200/_cat/nodes?v
1.1.2 方式2
方式2:http://localhost:9200/_cluster/health?pretty
说明:
"number_of_nodes": 3, // 集群总节点数"number_of_data_nodes": 3, // 数据节点数
1.1.3 方式3
方式3:http://localhost:9200/_nodes?pretty
1.1.4 总结
1.2 查看分片数量
http://localhost:9200/student/_settings
二 es服务状态为yellow的排查
2.1 问题描述
当 Elasticsearch 集群状态变为 Yellow 时,表示所有主分片已分配,但部分副本分片未分配。
2.2 排查步骤
2.2.1 确认索引状态
http://localhost:9200/_cluster/health?level=indices&pretty
可以看到: "unassigned_shards": 3 // 未分配的副本分片数
2.2.2 案例
在kibanna执行命令:
显示结果如下:
3.核心内容“"a copy of this shard is already allocated to this node"
[[bocal-knowledge-repository][0], node[51qhp_fMQGyAMdm9C4x1K0], [P], s[STARTED]]”
4.分析如下:
4.1)根本问题:分片分配冲突
4.2)冲突类型:same_shard规则冲突
4.3)具体原因:
节点 BOCAIES01
(ID: 51qhp_fMQGyAMdm9C4x1K0
) 上已存在该分片的主分片
Elasticsearch 禁止将同一分片的副本分配到已包含主分片的节点
4.4)其它辅助信息
索引名称:bocal-knowledge-repository
分片号:0
[P]:
表示主分片(Primary)
s[STARTED]
表示分片已正常启动
未分配原因:INDEX_CREATED
(索引创建时产生的副本分片)
集群状态:所有节点决策均为 NO
分片类型:副本分片 ("primary": false
)
2.2.3 根本原因
该索引的副本分片无法分配到任何节点,因为:
1.集群中只有一个数据节点 (BOCAIES01
)
2.该节点已包含分片 0
的主分片
3.Elasticsearch 的 same_shard
规则禁止将副本分配到已有主分片的节点
2.2.4 解决办法
1.增加集群节点数
2.增加分片数的设置,单节点的话,设置副本为0;集群的节点数大于2,自己根据情况进行设置
2.3 解决办法实操
通过增加节点解决此问题后,执行健康检查:
GET /_cluster/health/your-indexName?pretty
预期返回:"status": "green"
和 "unassigned_shards": 0
本案例为单节点,所以这里设置副本为0;
查看结果:http://localhost:9200/_cluster/health/product?level=indices&pretty
DeepSeek