01
前言
让我们先看看两个缺点,然后带着问题思考:
[故障排除-案例A]首先,大致了解未分配存储片的原因:
结果显示大部分的图块都是因为node_left而没有分配,然后通过解释API检查图块myindex[3]没有自动分配的具体原因:
在解释api中,我们规定只显示切片myindex[3]的信息,诊断结果的主要信息如下:
这意味着弹性搜索在磁盘上找到了该切片的数据,但由于切片数据不是最新的,因此不能将其指定为主切片。
[故障排除-案例B]片段分配失败,查看日志时报告了以下错误:
出现此错误的原因是,辅助切片与主切片具有相同的sync_id,但DOCs的数量不同,导致恢复失败。sync_id相同但文档编号不同的原因可能有很多,例如:
1.编写过程使用自动生成的docid
2.主片完成写入文档,并将请求转发给次片
3.在此期间,通过查询进行的并行删除删除了刚刚写在主片上的文档,子片也执行了该删除请求
4.主片段转发的索引请求到达子片段。由于id是自动生成的,子片段将直接写入文档,无需检查。最终,子切片和主切片之间的DOCs数量不一致。
案例A和B有什么解决方案?别担心,让我们先解决红色和黄色的问题
02
文本:红色和黄色
集群红色和黄色是弹性搜索集群中最常见的问题之一。红色和黄色只有一个原因:一些存储片没有被分配。
如果没有分配一个以上的主片,则簇和相关索引被标记为红色;如果所有主片都成功分配,则一些子片没有分配,簇和相关索引被标记为黄色。
集群分配解释API推荐用于集群红色或黄色的问题诊断,可以给出未分配片段的具体原因。例如,以下请求可以返回第一个未分配切片的具体原因:
您还可以仅查看未分配特定切片的原因:
引用一个官网的例子,API的返回信息如下:
在返回的结果中,给出了导致片段未分配的详细信息,并给出了片段最初未分配的原因,可以理解为是什么操作触发了未分配;
allocate _ description进一步说明了不能将该片分配给任何节点,失败的具体原因在判决者的解释信息中有详细描述。这些信息足以让我们诊断出问题。
未分配存储片的初始原因有以下几种:
1.INDEX_CREATED
由于创建索引api创建的索引,在索引创建过程中需要一个过程来分配索引的所有切片。在分配所有切片之前,索引将处于短暂的红色或黄色状态。因此,如果监控系统发现集群红色,并不一定意味着存在故障。
2.CLUSTER_RECOVERED
当群集完全重新启动时,所有存储片都标记为未分配,因此原因属于群集完全重新启动时启动阶段的这种类型。
3.INDEX _ RECOVERED
打开以前关闭的索引,重新打开操作将重新分配索引分配。
4.悬空_索引_导入
导入悬挂索引。什么是悬空指数?
存在于磁盘中但不存在于群集状态的索引称为悬空索引。例如,如果一个索引数据目录从另一个集群复制到当前集群,弹性搜索会将该索引加载到集群中,因此它将涉及为悬挂索引分配切片的过程。
5.新_索引_已恢复
从快照恢复到新索引。
6.EXISTING_INDEX_RESTORED
索引从快照恢复到关闭状态。
7.REPLICATE _ ADDED
添加片段副本。
8.ALLOCATION_FAILED
由于分配失败。
9.节点_左
因为节点离线。
10.重新路由_取消
由于显式的canceleroute命令。
11.重新初始化
当切片从开始状态转换到初始化状态时。
12.REALLOCATED _ REPLICA
由于碎片副本的迁移。
13.初级_失败
初始化辅助分区时,主分区会失败。
14.强制_空_主要
强制分配一个空主片。
15.手动_分配
手动强制分配切片。
03
解决方案
对于不同原因造成的不分配要采取相应的措施,所以要具体问题具体分析。应该注意的是,每个索引也有绿色、黄色和红色状态,当所有索引都是绿色时,集群才是绿色的。只要有一个红色或黄色的索引,集群就会是红色或黄色的。
如果一些测试索引导致红色,您可以简单地删除这个索引。
因此,单个未分配的切片将导致群集红色或黄色,一些常见的未分配原因如下:
由于配置问题导致的,需要修正相应的配置;由于节点离线导致的,需要重启离线的节点;由于分片规则限制的,例如 total_shards_per_node,或磁盘剩余空间限制等,需要调整相应的规则;分配主片时,找不到最新的片数据,导致主片未被分配。在这种情况下,需要观察是否有节点离线。在极端情况下,旧切片只能手动切片到主切片中,这将导致一些新存储的数据丢失。
集群RED或者YELLOW的时候,我们通常需要先看看有没有节点离线,我们会讨论节点不能单独启动或者加入集群的问题。下面分享几个红黄的案例,以及相应的处理方法。
04
总结
对于前言中【案例A、B】的失误,大家应该有一些想法。
如果你想知道故障案例的具体解决方案,请浏览本课程的代码
集群红色和黄色是操作和维护过程中最常见的问题。除了群集故障,正常的索引创建和增加子切片的数量将导致群集红色或黄色。
在这种情况下,短暂的红色和黄色是正常现象。如果您监控集群颜色,您需要考虑这一点。您可以参考解释API的持续时间、具体原因等因素制定报警规则。
聚类颜色问题是最常见也是最简单的问题。我们处理过的其他大部分问题都是记忆问题。
如果您有更多的问题,欢迎您订阅该课程,并加入高可用性弹性搜索集群的读者群问题交流。
1.《recovered 解析 Elasticsearch 棘手问题,集群的 RED 与 YELLOW》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《recovered 解析 Elasticsearch 棘手问题,集群的 RED 与 YELLOW》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1190033.html