Elasticsearch创建快照时报index_not_found_exception问题咨询
报错原因分析
- 核心触发点是快照API路径拼写错误:你发起的请求路径为
/_snapshhot/esbackup/snapshot_myindex_20211101,Elasticsearch内置快照API的标准前缀是/_snapshot,你多写了一个字母h导致路径拼写错误,ES无法识别该路径为系统内置API,会将路径第一部分的_snapshhot判定为普通索引名称,尝试对该不存在的索引执行写入操作。 - 和
action.auto_create_index配置的关联逻辑:当ES接收到针对不存在的普通索引的写入请求时,会校验action.auto_create_index配置的自动创建索引白名单,判断是否允许自动创建该索引。你当前的配置仅允许自动创建.watches、.triggered_watches以及前缀为.watcher-history-的索引,_snapshhot不在白名单范围内,因此直接抛出index_not_found_exception的404错误。
解决方法
- 首先修正API路径的拼写错误,将错误的
_snapshhot替换为正确的_snapshot,修正后的请求示例如下:
PUT /_snapshot/esbackup/snapshot_myindex_20211101 { "indices": "myindex", "ignore_unavailable": true, "include_global_state": false }
- 执行上述请求前,请提前确认名为
esbackup的快照仓库已在集群中完成创建配置,可通过请求GET /_snapshot查看当前集群所有已配置的快照仓库信息,若仓库不存在需先完成仓库创建再执行快照创建操作。
内容的提问来源于stack exchange,提问作者Youxu
相关产品推荐
相关产品推荐

