Indexing Service和OpenStore实例的索引管理中心,提供从模板定义到数据写入的全链路管理能力,覆盖内容模板、索引模板、数据流和索引四个层级。结合索引生命周期管理(ILM),索引数据可按策略自动在热阶段、冷阶段和删除阶段之间流转,降低存储成本。
工作原理
核心概念与依赖关系
索引管理中心涉及四个核心概念:

内容模板(Component Template)
可复用的配置片段,包含索引的Settings、Mappings或Aliases配置。多个索引模板可引用同一个内容模板形成组合模板,避免重复定义相同参数。典型场景:将OpenStore存储的编解码器、生命周期策略等通用配置统一定义在内容模板中。
索引模板(Index Template)
定义索引的字段映射(Mappings)、索引设置(Settings)、别名(Aliases)和生命周期策略。通过索引模式(index_patterns)匹配数据流或索引名称,创建数据流或索引时系统自动应用匹配的模板配置后备索引。一个索引模板可直接定义配置,也可引用一个或多个内容模板组合生成。
数据流(Data Stream)
面向时间序列数据的抽象层,对外提供统一命名资源用于读写操作。内部由一个或多个自动生成的后备索引组成:写入请求始终路由到最新的后备索引(写入索引),读取请求路由到所有后备索引。数据流仅支持追加写入,适用于日志、事件、指标等持续产生且极少更新的时序数据场景。
索引(Index)
数据的实际存储单元。在数据流场景中,索引以后备索引的形式自动创建和管理。开启Indexing Service后,索引的写入部分托管在云端Elasticsearch集群中,通过云端构建加速写入性能。索引的生命周期由ILM策略自动管理,经历热阶段、冷阶段直至删除。
数据写入流程
客户端向数据流发送写入请求,每个文档必须包含@timestamp字段。
数据流根据匹配的索引模板,将数据路由到当前的写入索引(最新的后备索引)。
Indexing Service在云端完成索引构建,加速写入性能。
当写入索引满足ILM滚动策略的条件(如达到指定大小或时间),自动触发Rollover,创建新的后备索引作为写入索引,旧的后备索引自动取消云端写入托管。
ILM策略自动将旧的后备索引从热阶段迁移至冷阶段(OpenStore存储),直至达到删除条件后自动清理。
Indexing Service云端托管
Indexing Service将索引构建的写入部分托管在云端Elasticsearch集群中,适用于海量时序日志数据的快速写入场景。开启Indexing Service后,集群中的数据流索引和独立索引均默认在云端进行写入托管(系统索引除外)。托管索引默认3天后自动取消托管,取消托管后索引变为只读。
使用Indexing Service时注意以下事项:
Indexing Service按写入托管索引总大小和写入流量按量计费,建议通过数据流和ILM滚动策略优化云端托管空间。
索引处于托管状态时,不兼容ILM Action中的shrink操作。需在索引取消托管后再执行shrink配置。详细信息请参见ILM-shrink。
Indexing Service实例与用户集群的数据同步依赖apack/cube/metadata/sync任务(通过
GET _cat/tasks?v命令获取任务信息),不要手动清理该任务。如果被清理,请尽快执行POST /_cube/meta/sync命令恢复,否则会影响业务写入。频繁执行Put Mapping会消耗大量计算资源,严重影响托管服务稳定性。建议在写入数据前提前定义索引模板,减少Put Mapping操作。
进入索引管理中心
仅开启Indexing Service索引构建服务或OpenStore存储的7.10版本实例支持在ES控制台使用索引管理功能。
通用商业版实例可登录Kibana进入Management页面,使用Kibana的索引管理功能。不同版本的Kibana操作页面有差异,具体操作请参见对应版本的Kibana官方文档。
在左侧导航栏,单击Elasticsearch实例。
进入目标实例。
在顶部菜单栏,选择资源组和地域。
在Elasticsearch实例中单击目标实例ID。
在左侧导航栏,选择 。
索引管理中心包含以下页签: 数据流管理、 索引管理、 索引模版管理、内容模板管理。
管理内容模板
多个索引模板需要共享相同的Settings、Mappings或Aliases配置时,建议先创建内容模板,再在索引模板中引用,避免重复定义。不需要跨模板复用配置时,可跳过此步,直接在索引模板中定义所有配置。
通过控制台创建内容模板
单击内容模板管理页签。
单击创建内容模板。
在创建内容模板面板,输入内容模板名称和备注信息,并完成内容模板配置,配置索引Settings、Mappings和Aliases。配置格式须严格遵循Elastic官方规范。
Settings代码样例:
{ "index": { "lifecycle": { "name": "zlopenstore_default_ilm_policy" }, "apack": { "cube": { "following_index": "true" } }, "codec": "OpenIndex87", "refresh_interval": "1s" } }单击配置预览,预览内容模板配置。无误后,单击确认。
通过API创建内容模板
登录目标ES实例的Kibana控制台。具体操作,请参见通过Kibana连接集群。
在Kibana主页,单击Dev Tools。
在Console中执行Put component template API命令创建内容模板。
以创建OpenStore内容模板为例:
PUT _component_template/zlcomponent-openstore-index-template { "template" : { "settings" : { "index" : { "lifecycle" : { "name" : "openstore_default_ilm_policy" }, "apack" : { "cube" : { "following_index" : "true" } }, "codec" : "OpenIndex87", "refresh_interval" : "1s" } } } }
查看和修改内容模板
在内容模板管理页面,查看已创建的内容模板。
阿里云Elasticsearch默认创建了若干内容模板,建议不要修改这些默认模板的配置。
使用数量表示该模板被引用的索引模板数量。将鼠标悬浮在使用数量上,可查看引用该内容模板的索引模板名称。
已被引用的内容模板无法删除,需要先通过修改对应的索引模板解绑后才可删除。
单击目标内容模板右侧操作列下的修改。
在修改内容模板面板,修改模板信息,单击确认。
创建索引模板
创建数据流前,必须先创建匹配的索引模板来定义后备索引的结构和生命周期策略。创建过程分为两步:配置索引生命周期策略(可选)和配置索引模板信息。
单击 索引模版管理页签,单击 创建索引模板。
可选: 在 创建索引模板面板,配置索引生命周期策略。
如果无需对数据流后备索引进行生命周期策略管理,单击 跳过此步即可。建议配置生命周期策略,通过ILM自动管理后备索引的滚动更新和数据迁移,优化云端托管空间并降低存储成本。
关键参数
说明
索引生命周期策略
新建索引生命周期策略:创建新的索引生命周期策略。
选择已有索引生命周期策略:选择集群中已存在的生命周期策略。
策略名称
选择新建索引生命周期策略时,需要自定义输入。
选择已有索引生命周期策略时,在下拉列表中选择集群中已有的生命周期策略。对应策略的其他配置会自动应用到当前索引模板中,可在此基础上修改。
热阶段
默认开启,不可关闭。
开启滚动更新
建议开启。ILM默认每10分钟检测一次符合策略标准的索引,索引满足Rollover条件后可能不会立即触发滚动,可通过indices.lifecycle.poll_interval参数修改检测周期。不配置滚动策略时,索引数据会全量存储在Indexing Service中,将增加云托管费用。
取消托管时间
默认3天,到期后自动退出Indexing Service写入托管,减少计费开销。如果设置的时长超过冷阶段或删除阶段的开始时间,索引进入相应阶段后会自动取消托管。取消托管后索引变为只读。
重要长期数据托管会产生索引托管存储费用,建议在索引不再有写入后及时设置取消托管。云端对写入托管时长及托管Shard数有相关限制,详细信息请参见OpenStore存储引擎。
冷阶段
OpenStore 自定义冷热存储版本:支持开启并配置冷阶段。
OpenStore 智能混合存储版本:无冷阶段。
OpenStore存储
开启冷阶段后才可配置。适用于查询复杂度大、海量存储成本高的场景,详细信息请参见Openstore存储计算分离(高性能检索)引擎。
注意事项:
仅新购时开启了OpenStore 自定义冷热存储的7.10内核增强版Indexing Service实例支持配置OpenStore。
开启冷阶段和OpenStore存储后,到达索引迁移时间时,系统自动迁移数据至冷数据节点及OpenStore存储。
删除阶段
设置索引的删除时间。对于OpenStore 智能混合存储,在索引删除前,Elasticsearch会根据索引的读写频率进行数据智能存储分层。
单击 保存并下一步,在索引模板配置向导中,配置索引模板信息。
写入数据流的每个文档都必须包含@timestamp字段,映射类型为date或date_nanos,否则写入会报错。如果源数据中没有@timestamp字段,可通过ingest pipeline指定_ingest.timestamp获取元数据值自动引入。建议在索引模板的Mappings中为@timestamp字段指定映射,未指定时该字段会自动映射为date或date_nanos类型。
说明内核增强版实例默认提供低优先级
aliyun_default_index_template模板供索引模式[*]匹配,以降低日志场景应用成本。该模板会开启字段预排序(index.sort.field),提高时序数据搜索性能。nested类型字段不支持预排序,建议在模板中关闭。参数
说明
模版名称
自定义输入索引模板名称。
索引模式
定义索引模式,支持通配符(*)表达式匹配数据流及索引名称。不允许使用空格和特殊字符:
\、/、?、"、<、>和`创建数据流
开启数据流模式。未开启时,索引模式无法生成数据流。详细信息,请参见Data stream。
优先级
定义模板优先级,数值越大,优先级越高。
索引生命周期策略
如果已在上一步创建了索引生命周期策略,系统直接引用该策略,且不能更改;如果未在上一步创建生命周期策略,可根据需求选择不填或填入集群中已有的生命周期策略名称(仅支持填入一个)。关于生命周期策略的详细信息,请参见ILM。
内容模板配置
配置索引Settings、Mappings、Aliases。配置格式须严格遵循Elastic官方规范。 代码样例如下: * Settings
plaintext { "index.number_of_replicas": "1", "index.number_of_shards": "5" }* Mappingsplaintext { "properties": { "like": { "type": "keyword" }, "name": { "type": "text" }, "age": { "type": "integer" }, "email": { "type": "keyword" } } }* Aliasesplaintext { "aliases": { "demo": { } } }* 组合内容模板: * component-openstore-index-template:OpenStore自定义冷热存储的组合模板。 * component-hybrid-openstore-index-template:OpenStore智能混合存储的组合模板。单击确认。
创建完成后,页面会弹出 创建完成对话框。可直接单击立即前往创建数据流进入数据流创建页面,或关闭对话框返回索引模板列表。
已创建的索引模板会显示在索引模板列表中。首次进入 索引模版管理页面,可以查看阿里云Elasticsearch默认创建的索引模板,建议不要修改默认模板的配置。
索引模板的内容模板表示该模板引用的内容模板,引用内容模板可生成组合模板。单击对应的内容模板名称,可跳转至内容模板管理页面管理对应的内容模板。
在索引模板列表中,单击目标索引模板操作列中的修改,可修改已创建的索引模板。也可以直接单击对应的 索引模版名称或 索引生命周期策略查看和修改索引模板。
管理数据流
创建数据流前,必须先创建与之匹配的索引模板(且开启了数据流模式)。
创建数据流
单击 数据流管理页签。
单击 创建数据流。
在 创建数据流面板,单击 预览已有索引模板,根据对应的索引模板,输入可匹配索引模板的数据流名称。
重要创建数据流前必须存在可匹配的索引模板,该模板包含用于配置后备索引映射及设置的信息。数据流名称需符合索引模板的匹配模式(如索引模板的index_patterns为
logs-*-*,则数据流名称需以logs-开头,例如logs-myapp-prod)。数据流名称支持以短划线(-)结尾,不支持通配符星号(*)。
单击确定,系统自动生成数据流及后备索引。
每个数据流创建成功后,都会自动生成一个统一格式的后备索引,格式如下。
.ds-<data-stream>-<yyyy.MM.dd>-<generation>参数
说明
.ds
隐藏索引名统一标识,数据流生成的后备索引名,默认均以.ds开头。
<data-stream>
数据流名称。
<yyyy.MM.dd>
后备索引创建日期。
<generation>
每个数据流都会生成一个六位数,默认从000001开始的累积整数值,generation值更大的后备索引包含更多新数据。
查看数据流信息
在 数据流管理页面,单击对应数据流名称,查看该数据流的后备索引名称、索引状态、存储大小、创建时间、当前生命周期阶段和写入托管状态。
说明单击对应的后备索引名称,可进入Kibana控制台的索引监控页面,查看索引的监控详情。
单击对应数据流右侧的查看,在 查看数据流页面,查看 数据流名称、 数据流状态、 索引数量、索引模板、 索引生命周期策略及存储空间。
数据流状态包含GREEN、YELLOW和RED,含义如下:
GREEN:数据流支持的索引所有分片均已分配。
YELLOW:数据流支持的索引主分片均已分配,但存在副本分片未分配。
RED:数据流支持的索引存在主分片未分配,会导致某些数据不可用。
查看索引托管信息
在 数据流管理页面,可查看索引托管的相关信息。
参数 | 说明 |
云端托管索引总大小 | 当前时刻,正处于云端写入托管中的索引总大小。 重要 云端托管索引总大小为实时变化数值,不是历史索引总大小。 |
索引个数 | 当前时刻,正处于云端写入托管中的索引总个数。 该数值为当前系统中的实时数值。 重要 索引个数为实时变化数值,不是历史索引总个数。 |
写入托管状态 |
说明
|
滚动更新数据流
在 数据流管理页面,单击对应数据流右侧的 手动滚动更新。
在弹出的对话框中,单击确认。
滚动生成的新后备索引默认在云端Indexing Service进行写入托管,旧的后备索引将自动关闭写入托管。
删除数据流
删除数据流会同时删除其所有后备索引,且不可恢复,请谨慎操作。
在 数据流管理页面,单击对应数据流右侧的删除。
在弹出的对话框中,单击确认。
管理索引
数据流创建后,后备索引会自动生成并托管在Indexing Service中。通过索引管理功能查看和管理这些云端托管索引,包括筛选索引、查看生命周期阶段和控制写入托管状态。
单击 索引管理页签,查看并管理集群中的索引。
系统默认展示全部索引,也可以根据需求筛选或查找对应索引:
对于OpenStore自定义冷热存储版本,支持通过 仅查看托管中的索引和查看OpenStore冷索引筛选相关索引。
对于OpenStore智能混合存储版本,仅支持通过 仅查看托管中的索引筛选相关索引,且 索引管理页面最上方会展示OpenStore索引总大小及 索引个数。
关键参数 | 说明 |
仅查看托管中的索引 仅7.10内核增强版Indexing Service系列支持此参数。 | 选择该筛选条件时,页面展示以下信息:
|
查看OpenStore冷索引 仅7.10内核增强版实例开启OpenStore自定义冷热存储功能后,支持此参数。 | 选择该筛选条件时,页面展示以下信息:
|
当前生命周期阶段 | 展示索引当前的生命周期状态,包括当前执行的阶段、阶段中执行的操作、索引进入该阶段的时间以及故障信息等。详情请参见Explain lifecycle API。 开启OpenStore 智能混合存储功能的索引仅支持热阶段和删除阶段,不支持冷阶段。 |
写入托管状态 仅7.10内核增强版Indexing Service系列支持此参数。 | 支持以下两种状态:
|
相关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>:替换为实际的数据流名称。