配置忽略缺失的组件模板
edit配置 ignore_missing_component_templates
edit配置选项 ignore_missing_component_templates 可以在索引模板引用可能不存在的组件模板时使用。每次基于索引模板创建数据流时,都会检查组件模板的存在性。如果存在,它将用于形成索引的复合设置。如果不存在,则忽略它。
使用示例
edit在下面,创建了一个组件模板和一个索引模板。索引模板引用了两个组件模板,但只有@package这个存在。
创建组件模板 logs-foo_component1。这必须在索引模板之前创建,因为它不是可选的:
PUT _component_template/logs-foo_component1
{
"template": {
"mappings": {
"properties": {
"host.name": {
"type": "keyword"
}
}
}
}
}
接下来,将创建索引模板,并引用两个组件模板:
"composed_of": ["logs-foo_component1", "logs-foo_component2"]
之前,仅创建了 logs-foo_component1 组件模板,这意味着 logs-foo_component2 缺失。因此,以下条目被添加到配置中:
"ignore_missing_component_templates": ["logs-foo_component2"],
在创建模板时,它不会验证 logs-foo_component2 是否存在:
PUT _index_template/logs-foo
{
"index_patterns": ["logs-foo-*"],
"data_stream": { },
"composed_of": ["logs-foo_component1", "logs-foo_component2"],
"ignore_missing_component_templates": ["logs-foo_component2"],
"priority": 500
}
索引模板 logs-foo 已成功创建。可以基于此模板创建数据流:
PUT _data_stream/logs-foo-bar
查看数据流的映射,它将包含host.name字段。
在稍后的阶段,可能会添加缺失的组件模板:
PUT _component_template/logs-foo_component2
{
"template": {
"mappings": {
"properties": {
"host.ip": {
"type": "ip"
}
}
}
}
}
这不会对数据流产生立即的影响。映射 host.ip 只会在下次数据流自动滚动或手动触发滚动时出现在数据流映射中:
POST logs-foo-bar/_rollover