索引状态管理

索引状态管理(ISM)是一个插件,让用户可以通过基于索引的存在时间、存储大小或文档数量等条件自动触发管理操作。使用 ISM 插件,用户可以定义 策略,自动处理索引滚动或删除,以适应用户的用例。

例如,用户可以定义这样的策略:索引创建30天后进入只读模式,创建90天后执行删除操作。还可以设置策略,在删除索引时向用户发送通知消息。

用户可以在一定时间后执行索引滚动,或在非高峰时段对索引运行 force_merge 操作,以提高高峰时段的搜索性能。

要使用 ISM 插件,用户的用户角色需要映射到 all_access 角色,该角色为用户提供对集群的完全访问权限。了解更多信息,请参见 用户和角色

开始使用 ISM

首先,在 UDB-SX 仪表板中选择 索引管理

步骤 1:设置策略

策略是一组规则,描述应该如何管理索引。有关创建策略的信息,请参见 策略

用户可以使用可视化编辑器或 JSON 编辑器创建策略。与 JSON 编辑器相比,可视化编辑器通过将过程分离为创建错误通知、定义 ISM 模板和添加状态,提供了更结构化的定义策略方式。如果用户想查看预定义字段,例如可以为状态分配哪些操作,或者状态在什么条件下可以转换到目标状态,我们建议使用可视化编辑器。

可视化编辑器

  1. 选择 索引策略 标签。

  2. 选择 创建策略

  3. 选择 可视化编辑器

  4. 策略信息 部分,输入策略 ID 和可选描述。

  5. 错误通知 部分,设置一个可选的错误通知,每当策略执行失败时发送。更多信息,请参见 错误通知。如果用户在策略中使用自动滚动,我们建议设置错误通知,以便在滚动失败时通知用户意外的大索引。

  6. ISM 模板 中,输入任何 ISM 模板模式,以自动将此策略应用于未来索引。例如,如果用户指定 sample-index* 的模板,ISM 插件会自动将此策略应用于任何名称以 sample-index 开头的索引。用户的模式不能包含以下任何字符::, ", +, /, \, |, ?, #, >, 和 <

  7. 状态 中,添加用户想要包含在策略中的任何状态。每个状态都有 操作,插件在索引进入某个状态时执行这些操作,以及 转换,这些转换有条件,满足条件时,将索引转换到目标状态。用户在策略中创建的第一个状态自动设置为初始状态。每个策略必须至少有一个状态,但操作和转换是可选的。

  8. 选择 创建

JSON 编辑器

  1. 选择 索引策略 标签。

  2. 选择 创建策略

  3. 选择 JSON 编辑器

  4. 命名策略 部分,输入策略 ID。

  5. 定义策略 部分,输入用户的策略。

  6. 选择 创建

创建策略后,下一步是将其附加到一个或多个索引。 用户可以在策略中设置 ism_template,以便当创建匹配 ISM 模板模式的索引时,插件自动将策略附加到索引。

以下示例演示如何创建自动附加到所有名称以 index_name- 开头的索引的策略。

PUT _plugins/_ism/policies/policy_id
{
  "policy": {
    "description": "示例策略。",
    "default_state": "...",
    "states": [...],
    "ism_template": {
      "index_patterns": ["index_name-*"],
      "priority": 100
    }
  }
}

如果用户有多个模板匹配索引模式,ISM 使用优先级值来确定应用哪个模板。

有关 ISM 模板策略的示例,请参见 带有 ISM 模板的示例策略用于自动滚动

旧版本的插件在索引模板中包含 policy_id,因此当创建匹配索引模板模式的索引时,索引将附加策略:

PUT _index_template/<template_name>
{
  "index_patterns": [
    "index_name-*"
  ],
  "template": {
    "settings": {
      "opendistro.index_state_management.policy_id": "policy_id"
    }
  }
}

opendistro.index_state_management.policy_id 设置已弃用。用户可以继续使用 ISM 模板字段自动管理新创建的索引。

步骤 2:将策略附加到索引

  1. 选择 索引

  2. 选择用户想要附加策略的索引。

  3. 选择 应用策略

  4. 策略 ID 菜单中,选择用户创建的策略。 用户可以看到用户的策略预览。

  5. 如果用户的策略包括滚动操作,请指定滚动别名。 确保用户输入的别名已经存在。有关滚动操作的更多信息,请参见 滚动

  6. 选择 应用

将策略附加到索引后,ISM 默认每 5 分钟创建一个作业来执行策略操作、检查条件,并将索引转换到不同状态。要更改此作业的默认时间间隔,请参见 设置

如果集群状态为红色,ISM 不运行作业。

步骤 3:管理索引

  1. 选择 托管索引

  2. 要更改用户的策略,请参见 更改策略

  3. 要将滚动别名附加到用户的索引,请选择用户的策略,然后选择 添加滚动别名。 确保用户输入的别名已经存在。有关滚动操作的更多信息,请参见 滚动

  4. 要移除策略,请选择用户的策略,然后选择 移除策略

  5. 要重试策略,请选择用户的策略,然后选择 重试策略

有关管理策略的信息,请参见 托管索引