解决重复快照策略失败

编辑

解决重复快照策略失败

编辑

重复快照失败通常表明您的部署存在问题。自动快照的持续失败会导致部署在数据丢失或中断时无法恢复。

Elasticsearch 会跟踪执行自动快照时重复失败的次数。如果自动快照失败次数过多而没有成功执行,则健康 API 将报告警告。报告警告之前重复失败的次数由 slm.health.failed_snapshot_warn_threshold 设置控制。

如果自动快照生命周期管理策略执行遇到重复失败,请按照以下步骤获取有关问题的更多信息

为了检查失败的快照生命周期管理策略的状态,我们需要转到 Kibana 并检索 快照生命周期策略信息

使用 Kibana

  1. 登录到 Elastic Cloud 控制台
  2. Elasticsearch 服务 面板上,单击您的部署名称。

    如果您的部署名称被禁用,则您的 Kibana 实例可能不健康,在这种情况下,请联系 Elastic 支持。如果您的部署不包含 Kibana,您只需先 启用它

  3. 打开部署的侧边导航菜单(位于左上角的 Elastic 徽标下),然后转到 Dev Tools > Console

    Kibana Console
  4. 检索快照生命周期管理策略

    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
      }
    }

    受影响的快照生命周期策略。

    有关策略上次失败的信息。

    失败发生的时间(以毫秒为单位)。使用 human=true 请求参数查看格式化的时间戳。

    包含快照失败原因的错误详细信息。

    快照可能会因多种原因而失败。如果失败是由于配置错误导致的,请查阅自动快照正在使用的存储库的文档。如果您正在使用此类部署,请参阅 关于在 ECE 中管理存储库的指南

一种常见的失败场景是存储库损坏。当 Elasticsearch 的多个实例写入同一存储库位置时,最常发生这种情况。有一个 单独的故障排除指南来解决此问题。

如果由于其他原因导致快照失败,请在快照执行期间检查选定的主节点上的日志以获取更多信息。