恢复Elasticsearch快照时排除ILM索引失败问题咨询
Elasticsearch快照恢复排除规则失效问题分析
问题原因
你设置的indices: "*,-.*"规则对普通索引是生效的,但触发错误的核心和**数据流(Data Stream)**的恢复机制有关:
ilm-history是Elasticsearch内置的ILM历史数据流,它的名称不以.开头,会被*匹配到,成为恢复目标。- 恢复数据流时,ES会自动处理其对应的后台存储索引(即
.ds-ilm-history-5-2022.08.12-000002这类以.开头的隐藏索引),这部分后台索引不属于普通索引范畴,你的-.*排除规则无法作用于它们。 - 集群中已经存在同名的开放后台索引,因此恢复时触发了"索引已存在"的冲突错误。
解决办法
根据你的需求,可选以下几种方案:
1. 直接排除ILM历史数据流
修改请求体,明确排除ilm-history数据流,避免触发其后台索引的恢复:
{"indices": "*,-.*,-ilm-history"}
2. 排除所有数据流
如果不需要恢复任何数据流,添加exclude_data_streams参数彻底关闭数据流的恢复逻辑:
{"indices": "*,-.*", "exclude_data_streams": true}
3. 重命名冲突的后台索引(如需保留ILM历史)
如果确实需要恢复ILM历史数据流,可通过重命名规则避免索引冲突:
{ "indices": "*,-.*", "rename_pattern": "^\\.ds-ilm-history-(.*)$", "rename_replacement": ".ds-ilm-history-restored-$1" }
内容的提问来源于stack exchange,提问作者James Mudd
相关产品推荐
相关产品推荐

