创建或更新快照生命周期策略 API

编辑

创建或更新快照生命周期策略 API编辑

创建或更新快照生命周期策略。

请求编辑

PUT /_slm/policy/<snapshot-lifecycle-policy-id>

先决条件编辑

如果启用了 Elasticsearch 安全功能,则您必须具有 manage_slm 集群权限和对任何包含索引的 manage 索引权限才能使用此 API。有关更多信息,请参阅安全权限

描述编辑

使用创建或更新快照生命周期策略 API 来创建或更新快照生命周期策略。

如果策略已存在,则此请求会增加策略的版本。仅存储最新版本的策略。

路径参数编辑

<snapshot-lifecycle-policy-id>
(必填,字符串)要创建或更新的快照生命周期策略的 ID。

查询参数编辑

master_timeout
(可选,时间单位)等待主节点的时间段。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以指示请求永不超时。
timeout
(可选,时间单位)等待响应的时间段。如果在超时到期之前未收到任何响应,则请求失败并返回错误。默认为 30s

请求正文编辑

config

(必填,对象)策略创建的每个快照的配置。

config 的属性
expand_wildcards

(可选,字符串)确定 indices 参数中的通配符模式如何匹配数据流和索引。支持逗号分隔的值,例如 open,hidden。默认为 all。有效值为

all
匹配任何数据流或索引,包括已关闭和隐藏的。
open
匹配打开的索引和数据流。
closed
匹配已关闭的索引和数据流。
hidden
匹配隐藏的数据流和索引。必须与 openclosed 或两者结合使用。
none
不扩展通配符模式。
ignore_unavailable
(可选,布尔值)如果为 false,则如果 indices 中的任何数据流或索引丢失,则快照失败。如果为 true,则快照会忽略丢失的数据流和索引。默认为 false
include_global_state

(可选,布尔值)如果为 true,则在快照中包含集群状态。默认为 true。集群状态包括

indices

(可选,字符串或字符串数组)要包含在快照中的数据流和索引的逗号分隔列表。支持多目标语法。默认为空数组 ([]),其中包括所有常规数据流和常规索引。要排除所有数据流和索引,请使用 -*

您不能使用此参数在快照中包含或排除系统索引或系统数据流。请改用feature_states

feature_states

(可选,字符串数组)要包含在快照中的功能状态。要获取可能值的列表及其描述,请使用获取功能 API

如果 include_global_statetrue,则快照默认包含所有功能状态。如果 include_global_statefalse,则快照默认不包含任何功能状态。

请注意,指定空数组将导致默认行为。要排除所有功能状态,无论 include_global_state 值如何,请指定一个仅包含值 none 的数组 (["none"])。

metadata
(可选,对象)将任意元数据附加到快照,例如记录谁拍摄了快照、拍摄原因或任何其他有用数据。元数据必须小于 1024 字节。
partial

(可选,布尔值)如果为 false,则如果快照中包含的一个或多个索引没有所有主分片可用,则整个快照将失败。默认为 false

如果为 true,则允许对分片不可用的索引进行部分快照。

name
(必填,字符串)自动分配给策略创建的每个快照的名称。支持日期数学。为了防止快照名称冲突,会自动将 UUID 附加到每个快照名称。
repository
(必填,字符串)用于存储此策略创建的快照的存储库。此存储库必须在创建策略之前存在。您可以使用快照存储库 API 创建存储库。
retention

(可选,对象)用于保留和删除策略创建的快照的保留规则。

retention 的属性
expire_after
(可选,时间单位)在此时间段之后,快照被视为已过期并且可以删除。SLM 根据slm.retention_schedule 删除过期的快照。
max_count
(可选,整数)要保留的最大快照数,即使快照尚未过期。如果存储库中的快照数量超过此限制,则策略会保留最新的快照并删除较旧的快照。此限制仅包括stateSUCCESS 的快照。
min_count
(可选,整数)要保留的最小快照数,即使快照已过期。
schedule
(必填,Cron 语法)策略创建快照的定期或绝对计划。SLM 会立即应用 schedule 更改。

示例编辑

创建 daily-snapshots 生命周期策略

PUT /_slm/policy/daily-snapshots
{
  "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 
  }
}

应何时拍摄快照,在本例中为每天凌晨 1:30

应赋予每个快照的名称

要在哪个存储库中拍摄快照

任何额外的快照配置

快照应包含的数据流和索引

可选的保留配置

保留快照 30 天

始终至少保留 5 个成功的快照,即使它们已超过 30 天

保留不超过 50 个成功的快照,即使它们不到 30 天