索引管理

阿里云Elasticsearch 7.10内核增强版(Indexing Service)将索引构建写入部分全部托管在云端的Elasticsearch集群中,以满足海量时序日志数据的快速写入要求。本文介绍如何通过索引管理功能实现云端索引管理。

使用限制

仅开启Indexing Service索引构建服务或Openstore存储的7.10版本实例支持在ES控制台使用索引管理功能。

说明

如果通用商业版实例要使用索引管理功能,可以登录Kibana控制台,进入Management页面使用Kibana的索引管理功能进行索引管理。由于不同版本的Kibana操作页面有差异,进入索引管理页面的路径均不同,使用时可以参考对应版本的Kibana官方文档

注意事项

  • 开启Indexing Service索引构建服务后,默认为所有索引开启云端写入托管(系统索引除外)。集群中的数据流Data Stream索引以及非Data Stream数据集的独立索引均默认在云端服务进行写入托管。

  • Indexing Service按照写入托管索引总大小和写入流量进行按量计费,业务上建议使用数据流(Data Stream)和索引生命周期管理(ILM)滚动策略实现云端托管空间最优化。

  • Indexing Service托管索引默认3天将自动取消托管,请根据具体业务场景评估取消托管时间,支持在控制台上手动关闭和API关闭。

  • Indexing Service场景,索引处于托管状态,不兼容ILM Action中的shrink操作,建议当索引处于未托管状态时,执行shrink配置。详细信息,请参见ILM-shrink

  • Indexing Service日志增强版实例与用户集群进行数据同步时,依赖于apack/cube/metadata/sync任务(可通过GET _cat/tasks?v命令获取该任务信息),不建议手动清理该任务。如果被清理,请尽快使用POST /_cube/meta/sync命令恢复,否则会影响业务写入。

  • 频繁的Put Mapping将消耗大量的计算资源,对托管服务稳定性影响极大。建议您写数据前提前定义索引模板,降低Put Mapping操作。

操作步骤

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 索引管理中心

  5. 单击索引管理页签,查看并管理集群中的索引。

    系统默认展示全部索引,您也可以根据需求筛选或查找对应索引:

    • 对于OpenStore自定义冷热存储版本,您可以通过仅查看托管中的索引查看OpenStore冷索引筛选相关索引。索引管理

    • 对于OpenStore智能混合存储版本,只支持通过仅查看托管中的索引筛选相关索引,且索引管理页面最上方会展示OpenStore索引总大小索引个数索引管理-智能混合存储

    关键参数

    说明

    仅查看托管中的索引

    说明

    仅7.10内核增强版Indexing Service系列支持此参数。

    选中该选项时,支持查看以下信息:

    • 云端托管索引总大小:当前时刻,正处于云端写入托管中的索引总大小。

    • 索引个数:当前时刻,正处于云端写入托管中的索引总个数。该数值为当前系统中的实时数值。

    说明

    云端托管索引总大小与索引个数均为实时变化数值,不是历史数值。

    查看OpenStore冷索引

    说明

    仅7.10内核增强版实例开启OpenStore自定义冷热存储功能后,支持此参数。

    选中该选项时,支持查看以下信息:

    • OpenStore索引总大小:当前时刻,正处于OpenStore冷阶段存储的索引总大小。

    • 索引个数:当前时刻,正处于OpenStore冷节点存储的索引总个数。该数值为当前系统中的实时数值。

    说明

    如果是非数据流场景,数据写入到OpenStore存储后,索引名称将以openstore-*开头,不影响业务查询。

    当前生命周期阶段

    用于查看索引当前生命周期状态的信息,例如当前执行的阶段、在每个阶段中执行的操作等。显示每个索引何时进入运行阶段、运行阶段的定义以及有关任何故障的信息。详情请参见Explain lifecycle API

    说明

    开启OpenStore智能混合存储功能的索引仅支持热阶段和删除阶段,不支持冷阶段。

    写入托管状态

    说明

    仅7.10内核增强版Indexing Service系列支持此参数。

    支持以下两种状态:

    • 开启(默认):该索引的云端写入托管处于开启状态。

    • 关闭:取消该索引的云端写入托管。支持手动关闭,关闭后不支持开启。

    说明
    • 在独立索引的云端写入托管过程中,索引数据全量存储在云托管服务Indexing Service中,将会增加云托管费用。请根据业务使用场景(如索引是否仍有数据写入)评估是否需要手动关闭该索引的写入托管功能。

    • 手动关闭某一索引的云端写入托管,数据将直接写入集群中。请在关闭前确认该索引是否持续有数据写入,以及集群的负载情况,否则可能出现集群负载高的风险。

    • 业务上建议使用数据流(Data Stream)和索引生命周期管理(ILM)滚动策略,实现云端托管空间最优化。

相关API

  • 取消索引托管。

    POST /<yourIndexName>/_cube/unfollow

    强制取消索引托管:取消托管过程中索引需完成段合并后才会结束托管,段合并耗时一般与segment数量、数据写入情况及数据量等有关系,如果耗时较长,对于内核版本为1.6及以上的内核增强版实例可通过如下命令,强制取消索引托管。

    POST /<yourIndexName>/_cube/unfollow?force=true

    <yourIndexName>:需要替换为您实际的索引名称。

    重要
    • 取消/强制取消索引托管API无法批量取消索引托管,频繁取消索引托管,对托管服务影响较大,建议不要频繁操作。

    • 仅内核版本为1.6及以上的内核增强版实例支持强制取消索引托管。对于内核版本低于1.6的实例,可升级内核版本,具体操作请参见升级版本

  • 获取托管状态信息。

    GET /<yourIndexName>/_cube/stats

    <yourIndexName>:需要替换为您实际的索引名称。

  • 获取集群托管到Indexing Service的整体状态。

    GET /_cube/stats
  • 将快照恢复到Indexing Service实例。

    例如将my_backup仓库中,snapshot_1快照中的index_1索引数据恢复到Indexing Service实例中,示例如下。

    说明

    实际使用时,您需要将对应信息替换为您实际的信息。

    POST /_snapshot/my_backup/snapshot_1/_restore
    {
      "indices": "index_1",
      "ignore_index_settings": [
        "index.apack.cube.following_index"
      ]
    }
  • 手动触发数据流Rollover。

    POST <yourDatastreamName>/_rollover

    <yourDatastreamName>:需要替换为您实际的数据流名称。

相关文档