背景介绍

在使用 OpenSearch 接收并保存日志型数据时,超过半年或1年以上的日志可能已经过时,不再使用。可运用 OpenSearch 提供的 Index Management 功能,自动清理旧索引。

Index Management 功能是管理集群的索引、数据流和索引模板的简便方法。运用合理的索引策略,可实现索引的自动清理、数据热-温-冷自动迁移、自动备份、force merge、rollover、rollup、close、open、delete 等功能,以确保您的数据以尽可能最具成本效益的方式正确存储。

本文将以实验形式,通过配置合理的 Index Management 策略,实现索引的自动清理。

前提条件

已获取管理控制台登录账号和密码,且已获取集群操作权限。

步骤 1:准备实验环境

在 AppCenter 按照以下规格创建一个 OpenSearch 集群,快速配置中选择预生产环境,详细操作请参见创建 OpenSearch 集群

节点角色 节点规格 节点数量

专有主节点

2c4g,10G

1

热节点

2c4g,60G

2

dashboard节点

2c4g

1

logstash节点

2c4g,10G

1

创建集群

步骤 2:创建索引策略

  1. 浏览器登录 Dashboard,详细操作请参见访问 Dashboard

  2. 选择 OpenSearch Plugins > Index Management,进入 Index Management 界面。

    Index管理界面
    Index管理界面
  3. 点击 Create policy,勾选 Visual editor,表示使用可视化编辑器。

    可视化界面
  4. 点击 Continue,设置策略 ID,参数配置完成后点击 Create

    设置策略 ID
  5. 点击策略 ID,进入详情页面,点击 Edit,编辑页面。

  6. ISM templates 区域创建索引模板(为特定索引自动应用策略)。

    创建索引模板
  7. 为形如 mytest-* 的索引应用策略

    应用策略
  8. States 区域点击删除图标删除已有的示例 state。

    删除示例
  9. 点击 Add state

    设置
    • 设置 normal_state。

      • Action:设置为空。

      • TransitionsCondition(条件)设置为 Minimum index age is 10m(索引创建时间不小于 10 分钟),Destination State(目标状态)设置为 无。

        normal_state
    • 设置 delete_state,Action 设置为 Delete。

      delete_state
  10. 点击state 所在行编辑图标,修改 normal_state。

    • Action:无

    • TransitionsCondition(条件)设置为 Minimum index age is 10m(索引创建时间不小于 10 分钟),Destination State(目标状态)设置为 delete_state。

      修改
      删除示例
      删除示例
  11. 修改完成后,点击 Update

  12. 参照以上步骤创建索引策略。

    创建索引
    创建索引策略

步骤 3:创建测试索引

  1. 选择 Management > Dev Tools

  2. 输入以下命令,创建索引 mytest-01。

    PUT /mytest-01
    删除示例
  3. 输入以下命令确认索引已创建。

    GET _cat/indices
    删除示例

步骤 4:验证索引策略生效

  1. 选择 OpenSearch Plugins > Index Management,进入 Index Management 界面。

  2. 点击 Managed Indices,在纳管的索引列表中查看索引。

    删除示例
  3. 等待10分钟观察索引被自动清理,索引策略初始化成功后,索引所处状态:normal_state

    删除示例
  4. 十分钟后,策略开始执行动作。

    删除示例
  5. 选择 Management > Dev Tools

  6. 执行以下命令,再次查看索引,确认索引 mytest-01 被删除

    GET _cat/indices
    删除示例