解决重复快照策略失败
编辑解决重复快照策略失败
编辑重复的快照失败通常表示您的部署存在问题。自动快照的持续失败可能会导致部署在数据丢失或中断的情况下缺乏恢复选项。
Elasticsearch 会跟踪执行自动快照时重复失败的次数。如果自动快照多次失败而没有成功执行,则健康 API 将报告警告。报告警告之前的重复失败次数由 slm.health.failed_snapshot_warn_threshold
设置控制。
如果自动快照生命周期管理策略执行遇到重复失败,请按照以下步骤获取有关问题的更多信息
为了检查失败的快照生命周期管理策略的状态,我们需要转到 Kibana 并检索 快照生命周期策略信息。
使用 Kibana
- 登录 Elastic Cloud 控制台。
-
在 Elasticsearch 服务 面板中,单击您的部署名称。
如果您的部署名称被禁用,您的 Kibana 实例可能不健康,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需 先启用它。
-
打开部署的侧边导航菜单(位于左上角的 Elastic 徽标下方),然后转到 开发者工具 > 控制台。
-
检索 快照生命周期管理策略
resp = client.slm.get_lifecycle( policy_id="<affected-policy-name>", ) print(resp)
const response = await client.slm.getLifecycle({ policy_id: "<affected-policy-name>", }); console.log(response);
GET _slm/policy/<affected-policy-name>
响应将如下所示
{ "affected-policy-name": { "version": 1, "modified_date": "2099-05-06T01:30:00.000Z", "modified_date_millis": 4081757400000, "policy" : { "schedule": "0 30 1 * * ?", "name": "<daily-snap-{now/d}>", "repository": "my_repository", "config": { "indices": ["data-*", "important"], "ignore_unavailable": false, "include_global_state": false }, "retention": { "expire_after": "30d", "min_count": 5, "max_count": 50 } }, "last_success" : { "snapshot_name" : "daily-snap-2099.05.30-tme_ivjqswgkpryvnao2lg", "start_time" : 4083782400000, "time" : 4083782400000 }, "last_failure" : { "snapshot_name" : "daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq", "time" : 4085251200000, "details" : """{"type":"snapshot_exception","reason":"[daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq] failed to create snapshot successfully, 5 out of 149 total shards failed"}""" }, "stats": { "policy": "daily-snapshots", "snapshots_taken": 0, "snapshots_failed": 0, "snapshots_deleted": 0, "snapshot_deletion_failures": 0 }, "next_execution": "2099-06-17T01:30:00.000Z", "next_execution_millis": 4085343000000 } }
快照失败可能有各种原因。如果失败是由于配置错误导致的,请查阅自动快照使用的存储库的文档。如果您使用的是此类部署,请参考 ECE 中管理存储库的指南。
一种常见的失败场景是存储库损坏。当多个 Elasticsearch 实例写入同一存储库位置时,这种情况最常见。有一个 单独的故障排除指南 用于解决此问题。
如果快照因其他原因失败,请检查在快照执行期间选定主节点上的日志以获取更多信息。
检索 快照生命周期管理策略
resp = client.slm.get_lifecycle( policy_id="<affected-policy-name>", ) print(resp)
const response = await client.slm.getLifecycle({ policy_id: "<affected-policy-name>", }); console.log(response);
GET _slm/policy/<affected-policy-name>
响应将如下所示
{ "affected-policy-name": { "version": 1, "modified_date": "2099-05-06T01:30:00.000Z", "modified_date_millis": 4081757400000, "policy" : { "schedule": "0 30 1 * * ?", "name": "<daily-snap-{now/d}>", "repository": "my_repository", "config": { "indices": ["data-*", "important"], "ignore_unavailable": false, "include_global_state": false }, "retention": { "expire_after": "30d", "min_count": 5, "max_count": 50 } }, "last_success" : { "snapshot_name" : "daily-snap-2099.05.30-tme_ivjqswgkpryvnao2lg", "start_time" : 4083782400000, "time" : 4083782400000 }, "last_failure" : { "snapshot_name" : "daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq", "time" : 4085251200000, "details" : """{"type":"snapshot_exception","reason":"[daily-snap-2099.06.16-ywe-kgh5rfqfrpnchvsujq] failed to create snapshot successfully, 5 out of 149 total shards failed"}""" }, "stats": { "policy": "daily-snapshots", "snapshots_taken": 0, "snapshots_failed": 0, "snapshots_deleted": 0, "snapshot_deletion_failures": 0 }, "next_execution": "2099-06-17T01:30:00.000Z", "next_execution_millis": 4085343000000 } }
快照失败可能有各种原因。如果失败是由于配置错误导致的,请查阅自动快照使用的存储库的文档。
一种常见的失败场景是存储库损坏。当多个 Elasticsearch 实例写入同一存储库位置时,这种情况最常见。有一个 单独的故障排除指南 用于解决此问题。
如果快照因其他原因失败,请检查在快照执行期间选定主节点上的日志以获取更多信息。