索引状态管理 - Amazon Elasticsearch Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

索引状态管理

通过索引状态管理 (ISM),您可以定义自定义管理策略来自动执行日常任务,并将其应用于索引和索引模式。您不再需要设置和管理外部进程来运行索引操作。

策略包含一个默认状态和一个状态列表,以供索引在这些状态之间转换。在每个状态中,您可以定义要执行的一系列操作和触发这些转换的条件。典型的使用案例是在一段时间后定期删除旧索引。

例如,您可以定义一个策略以在 30 天后将索引移入 read_only 状态,然后在 90 天后最终将其删除。

ISM 要求使用 Elasticsearch 6.8 或更高版本。可以在 Open Distro for Elasticsearch 文档.中找到此功能的完整文档。

注意

将策略附加到索引后,ISM 会创建一个每 30 到 48 分钟运行一次的作业,以执行策略操作、检查条件并将索引转换为不同的状态。该作业运行的基本时间是每 30 分钟一次,外加 0-60% 的随机抖动,以确保您不会同时看到来自所有索引的活动突增。

示例策略

第一个示例策略在七天后将索引从热存储移动到UltraWarm存储,并在 90 天后删除该索引。

在这种情况下,索引最初处于 hot 状态。七天后,ISM 将其移至 warm 状态。83 天后,该服务向 Amazon Chime 房间发送通知以告知该索引正在被删除,然后永久删除该索引。

{ "policy": { "description": "Demonstrate a hot-warm-delete workflow.", "default_state": "hot", "schema_version": 1, "states": [{ "name": "hot", "actions": [], "transitions": [{ "state_name": "warm", "conditions": { "min_index_age": "7d" } }] }, { "name": "warm", "actions": [{ "warm_migration": {}, "timeout": "24h", "retry": { "count": 5, "delay": "1h" } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "90d" } }] }, { "name": "delete", "actions": [{ "notification": { "destination": { "chime": { "url": "<URL>" } }, "message_template": { "source": "The index {{ctx.index}} is being deleted." } } }, { "delete": {} } ] } ] } }

第二个示例策略更简单,在七天后将副本计数减少到零以节省磁盘空间,然后在 21 天后删除索引。此策略假定索引是非关键索引,并不再接收写入请求。副本数量为零会带来一定的数据丢失风险。

{ "policy": { "description": "Changes replica count and deletes.", "schema_version": 1, "default_state": "current", "states": [{ "name": "current", "actions": [], "transitions": [{ "state_name": "old", "conditions": { "min_index_age": "7d" } }] }, { "name": "old", "actions": [{ "replica_count": { "number_of_replicas": 0 } }], "transitions": [{ "state_name": "delete", "conditions": { "min_index_age": "21d" } }] }, { "name": "delete", "actions": [{ "delete": {} }], "transitions": [] } ] } }

Differences

与 Open Distro for Elasticsearch 相比,ISM for Amazon Elasticsearch Service 有几个区别。

ISM 操作

  • Amazon ES 支持唯一的 ISM 操作 warm_migration

    如果您的域已启用 UltraWarm ,此操作会将索引转换为温存储。warm_migration 操作的默认超时为 12 小时。对于大型集群,您可能需要更改此值,如示例策略中所示。

  • 如果您的域运行 Elasticsearch 7.4 或更高版本Amazon ES,则 支持 ISM openclose 操作。

  • 如果您的域运行 Elasticsearch 7.7 或更高版本Amazon ES,则 支持 ISM snapshot 操作。

ISM 设置

Open Distro for Elasticsearch 让您可以使用 _cluster/settings API 更改所有可用的 ISM 设置。启用 Amazon ES 时,您只能更改以下设置:

  • 集群级别设置:

    • enabled

    • history.enabled

  • 索引级别设置:

    • rollover_alias

    • policy_id