阿里云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操作。
操作步骤
- 登录阿里云Elasticsearch控制台。
- 在左侧导航栏,单击Elasticsearch实例。
- 进入目标实例。
- 在顶部菜单栏处,选择资源组和地域。
- 在Elasticsearch实例中单击目标实例ID。
在左侧导航栏,选择 。
单击索引管理页签,查看并管理集群中的索引。
系统默认展示全部索引,您也可以根据需求筛选或查找对应索引:
对于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>:需要替换为您实际的数据流名称。