17.1 索引模板介绍
- 索引模板是告诉Elasticsearch如何在创建索引时配置索引的一种方法
- 对于数据流,索引模板在创建流的备份索引时配置它们
- 模板是在创建索引之前配置的
- 创建索引时(手动或通过索引文档),模板设置将用作创建索引的基础
- 有两种类型的模板:索引模板和组件模板
- 组件模板是可重用的构建块,用于配置映射、设置和别名
- 虽然可以使用组件模板构造索引模板,但它们不会直接应用于一组索引
- 索引模板可以包含组件模板的集合,也可以直接指定设置、映射和别名
- 组件模板是可重用的构建块,用于配置映射、设置和别名
- 以下条件适用于索引模板:
- 可组合模板优先于传统模板
- 如果没有与给定索引匹配的可组合模板,则旧模板仍可以匹配并应用
- 如果索引是使用显式设置创建的,并且与索引模板匹配,则创建索引请求中的设置优先于索引模板及其组件模板中指定的设置
- 如果新数据流或索引与多个索引模板匹配,则使用具有最高优先级的索引模板。
- 可组合模板优先于传统模板
17.2 避免索引模式冲突
- Elasticsearch具有内置索引模板,每个模板的优先级为100,用于以下索引模式:
- logs--
- metrics--
- synthetics--
- Elastic Agent使用这些模板创建数据流
- Fleet integrations创建的索引模板使用类似的重叠索引模式,优先级高达200
- 如果使用Fleet或Elastic Agent,需为索引模板指定低于100的优先级,以避免覆盖这些模板
- 否则,为避免意外应用模板,需执行以下一项或多项操作:
- 要禁用所有内置索引和组件模板,需设置 stack.templates.enabled为false
- 使用 cluster update settings API.
- 使用非重叠索引模式
- 为具有重叠模式的模板分配高于200的优先级
- 例如,如果不使用 Fleet 或 Elastic Agent 并且想要为logs-索引模式创建模板,需为模板分配优先级500,这可确保应用你的模板而不是 logs--*
- 要禁用所有内置索引和组件模板,需设置 stack.templates.enabled为false
17.3 创建组件模板
- 使用index template 和 put component template API 来创建和更新索引模板
- 还可以从 Kibana 中的 Stack Management来manage index templates
- 以下请求创建两个组件模板
- 以下请求创建由这些组件模板组成的索引模板
PUT _index_template/template_1
{
"index_patterns": ["te*", "bar*"],
"template": {
"settings": {
"number_of_shards": 1
},
"mappings": {
"_source": {
"enabled": true
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z yyyy"
}
}
},
"aliases": {
"mydata": { }
}
},
"priority": 500,
"composed_of": ["component_template1",
"runtime_component_template"],
"version": 3,
"_meta": {
"description": "my custom"
}
}
大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通
网友评论