更新时间:2024-10-26 GMT+08:00
分享

创建和管理Elasticsearch索引策略

本文介绍如何创建和管理Elasticsearch集群的生命周期索引策略。

背景信息

Elasticsearch的ISM(Index State Management)是一个索引状态管理插件,支持通过索引使用期限、索引大小或文档数等信息的变化来自动触发周期性的管理操作。通过ISM插件可以自定义索引策略,实现自动处理索引的滚动或删除,以优化集群搜索性能或降低存储成本。ISM的使用流程:

  1. 创建生命周期策略:在Kibana创建索引的生命周期策略Policy。
  2. 索引关联生命周期策略:将索引关联上创建的生命周期策略,生成索引策略。
  3. 管理索引策略:支持对索引策略进行策略修改、重启和变更。

ISM更多功能请参见索引管理官方介绍

创建的索引生命周期策略常用于以下场景:

约束限制

  • 仅Elasticsearch集群版本≥7.6.2和OpenSearch集群才支持索引状态管理ISM。
  • Kibana中可以自定义策略名称,但不支持中文字符。
  • 不同版本的Kibana界面可能有所差异,请以实际操作环境为准。本文以Kibana 7.6.2版本作为示例。

创建生命周期策略

  1. 登录云搜索服务管理控制台。
  2. “集群管理”页面选择需要登录的集群,单击“操作”列中的“Kibana”,登录Kibana页面。
  3. 在菜单栏选择“IM”“Index Management”,进入索引管理页面 。
  4. 单击“Create policy”,配置生命周期策略。
    • “Policy ID”:自定义策略名称。
    • “Define policy”:基于策略示例,配置自定义策略。
    图1 配置策略
  5. 单击“Create”,完成策略的创建。

索引关联生命周期策略

生命周期策略创建完成后,可以将此策略关联到一个或多个索引中,匹配该索引模板创建出的索引都将被执行该策略。

索引关联生命周期策略有如下2种方式,任选一种方式配置即可。

  • 方式1:Kibana命令行

    在Kibana的“Dev Tools”页面,执行如下命令在索引模板中关联策略ID。

    PUT _template/<template_name> 
    {
        "index_patterns": ["index_name-*"],
        "settings": {
            "opendistro.index_state_management.policy_id": "policy_id"
        }
    }
    • template_name:需要替换为创建的索引模板名。
    • policy_id:需要替换为自定义的策略ID,即“Policy ID”

    更多创建索引模板的说明可参考索引模板

  • 方式2:Kibana控制台
    1. 在Kibana菜单栏选择“IM”“Index Management”,进入索引管理页面 。
    2. 左侧选择“Indices”
      图2 选择Indices
    3. 在Indices列表中勾选要关联策略的一个或多个索引。
    4. 单击右上角的“Apply policy”,在弹窗中选择要关联的“Policy ID”
      图3 添加索引策略
      图4 选择索引策略
    5. 单击“Apply”,完成索引关联策略。

      当索引关联策略后,ISM会默认创建一个每5分钟运行一次的作业,用于执行策略操作、检查条件并将索引转换为不同的状态。

管理索引策略

  1. 登录云搜索服务管理控制台。
  2. “集群管理”页面选择需要登录的集群,单击“操作”列中的“Kibana”,登录Kibana页面。
  3. 在菜单栏选择“IM”“Index Management”,进入索引管理页面 。
  4. 左侧选择“Managed Indices”,进入索引策略管理列表。

    此处会展示当前集群已配置的索引策略。

  5. 在索引策略管理列表,管理策略。
    • 当索引的策略状态异常时,可以勾选状态异常的索引,单击“Retry policy”,可以重试策略。
    • 当需要更新索引的策略时,可以勾选索引,单击“Change policy”进入变更策略页面,更新策略后,单击“Change”变更策略。
    • 当需要解除索引的策略时,可以勾选索引,单击“Remove policy”,在弹窗确认后单击“Remove”该索引将被解除策略。

具体使用可参考索引管理官方介绍

相关文档