数据流可以跨多个索引存储实现数据时间序列的增加。而在使用数据流之前,需要创建索引模板,通过模板配置数据流后备索引的结构,将数据准确快速地写入索引中。本文介绍如何创建索引模板。
前提条件
已创建7.10内核增强版的Elasticsearch(简称ES)实例。详细信息,请参见创建阿里云Elasticsearch实例。
使用限制
仅7.10内核增强版Elasicsearch实例支持索引模板管理功能。
写入到数据流中的数据需要为日志、事件、指标或其他持续生成的数据。
写入到数据流中的每个文档都需要包含一个@timestamp字段,否则写入会报错。
如果源数据中没有@timestamp字段数据,可使用ingest pipeline指定_ingest.timestamp获取元数据值,从而引入@timestamp字段数据。
建议在索引模板中为@timestamp字段指定映射。如果不指定,该字段会映射为Elasticsearch中的date或者date_nanos类型的字段。
内核增强版实例默认提供低优先级
aliyun_default_index_template
模板供索引模式[*]匹配,以便降低日志场景应用成本。应用该模板将开启字段预排序(index.sort.field)能力,提高时序数据搜索能力,nested
类型字段不支持预排序,建议在模板中关闭。
操作步骤
频繁的Put Mapping将消耗大量的计算资源,对托管服务稳定性影响极大。建议您写数据前提前定义索引模板,降低Put Mapping操作。
- 登录阿里云Elasticsearch控制台。
- 在左侧导航栏,单击Elasticsearch实例。
- 进入目标实例。
- 在顶部菜单栏处,选择资源组和地域。
- 在Elasticsearch实例中单击目标实例ID。
在左侧导航栏,选择 。
单击索引模板管理页签。
单击创建索引模板。
可选:在创建索引模板面板,配置索引生命周期策略。
说明如果您无需对数据流后备索引进行生命周期策略管理,单击跳过此步即可。
关键参数
说明
索引生命周期策略
新建索引生命周期策略:创建新的索引生命周期策略。
选择已有索引生命周期策略:选择集群中已存在的生命周期策略。
策略名称
选择新建索引生命周期策略时,需要自定义输入。
选择已有索引生命周期策略时,需要在下拉列表中选择集群中已存在的生命周期策略。对应策略的其他配置会自动应用到当前索引模板中,您可在此基础上进行修改。
热阶段
默认开启热阶段,不可关闭。
开启滚动更新
建议配置索引生命周期滚动策略,通过ILM自动管理数据流后备索引,实现云端托管空间最优化。
ILM默认10分钟检测一次符合策略标准的索引。在使用过程中您可能会发现索引已满足Rollover条件,但实际没有立即触发滚动,这主要与ILM检查周期有关,可通过indices.lifecycle.poll_interval参数修改检测周期。
如果不配置索引滚动策略,索引数据会全量存储在云托管服务Indexing Service中,将会增加云托管费用。
取消托管时间
默认为3天,3天后自动退出Indexing Service写入托管服务,减少计费开销。如果您设置的时长超过冷阶段或删除阶段的开始时间,索引进入相应阶段后会自动取消托管。取消托管后索引变成只读,索引将不再通过Indexing Service进行写入加速。
重要长期数据托管会产生索引托管存储费用,建议根据业务情况,在索引不再有写入后设置取消托管。为保证托管服务稳定性,云端对写入托管时长及托管Shard数有相关限制,详细信息请参见OpenStore存储引擎介绍。
冷阶段
OpenStore存储的版本为自定义冷热存储时,支持开启并配置冷阶段。
OpenStore存储的版本为智能混合存储时,无冷阶段。
OpenStore存储
开启冷阶段后,才可开启OpenStore存储。当您面临查询复杂度大、海量存储成本高的问题时,建议开启OpenStore存储,详细信息请参见通过OpenStore自定义冷热存储实现海量数据存储。使用该功能需要注意以下几点:
对于阿里云Elasicsearch 7.10内核增强版Indexing Service系列实例,只有在新购时开启了OpenStore自定义冷热存储功能,才能配置OpenStore相关信息。
如果您开启了索引生命周期中的冷阶段和OpenStore存储,那么到达索引迁移时间后,系统将自动迁移数据至冷数据节点及OpenStore存储。
删除时间
支持设置索引的删除时间。对于OpenStore智能混合存储,在索引删除前,Elasticsearch会根据索引的读写频率进行数据智能存储分层。
单击保存并下一步,在索引模板配置向导中,配置索引模板信息。
参数
说明
模板名称
自定义输入索引模板名称。
索引模式
定义索引模式。支持通配符(*)表达式匹配数据流及索引名称,不允许使用空格和特殊字符:
\
、/
、?
、"
、<
、>
和|
。说明Kibana中创建索引模式时,只能匹配前100个索引。
创建数据流
开启数据流模式。如果未开启,索引模式无法生成数据流。详细信息,请参见Data stream。
优先级
定义模板优先级,数值越大,优先级越高。
索引生命周期策略
如果您已在上一步创建了索引生命周期策略,系统直接在此处引用您创建的策略,且不能更改;如果您未在上一步创建生命周期策略,可以根据需求选择不填或者填入集群中已存在的生命周期策略名称,且只能填入一个策略名称。关于生命周期策略的详细信息,请参见ILM。
内容模板配置
配置索引Settings、Mappings、Aliases和组合内容模板。
重要写入到数据流中的每个文档都要求包含一个@timestamp字段,建议在索引模板中为@timestamp字段指定映射。如果不指定,该字段会映射为Elasticsearch中的date或者date_nanos类型的字段。
配置格式严格按照Elastic官方配置。
本文使用的代码样例为:
Settings
{ "index.number_of_replicas": "1", "index.number_of_shards": "5" }
Mappings
{ "properties": { "like": { "type": "keyword" }, "name": { "type": "text" }, "age": { "type": "integer" }, "email": { "type": "keyword" } } }
Aliases
{ "aliases": { "demo": { } } }
组合内容模板:
component-openstore-index-template:OpenStore自定义冷热存储的组合模板。
component-hybrid-openstore-index-template:OpenStore智能混合存储的组合模板。
单击确认。
已创建的索引模板会显示在索引模板列表中。
首次进入索引模板管理页面,可以查看阿里云Elasticsearch默认创建的索引模板,建议不要修改这些默认模板的配置。
说明索引模板的内容模板表示该模板引用的内容模板,引用内容模板可生成组合模板。单击对应的内容模板名称,可直接跳转至内容模板管理页面,管理对应的内容模板,详细信息请参见内容模板管理。
在索引模板列表中,单击目标索引模板操作列中的修改,修改当前已创建的索引模板。
直接单击对应的索引模板名称或索引生命周期策略,也可以查看和修改索引模板。