配置 Elasticsearch 索引模板加载
编辑配置 Elasticsearch 索引模板加载编辑
metricbeat.yml
配置文件中的 setup.template
部分指定用于在 Elasticsearch 中设置映射的 索引模板。如果模板加载已启用(默认情况下),Metricbeat 会在成功连接到 Elasticsearch 后自动加载索引模板。
连接到 Elasticsearch 是加载索引模板所必需的。如果配置的输出不是 Elasticsearch(或 Elasticsearch Service),您必须 手动加载模板。
您可以调整以下设置以加载您自己的模板或覆盖现有模板。
-
setup.template.enabled
- 设置为 false 以禁用模板加载。如果将其设置为 false,您必须 手动加载模板。
-
setup.template.name
- 模板的名称。默认值为
metricbeat
。Metricbeat 版本始终附加到给定名称,因此最终名称为metricbeat-%{[agent.version]}
。
-
setup.template.pattern
-
要应用于默认索引设置的模板模式。默认模式为
metricbeat
。Metricbeat 版本始终包含在模式中,因此最终模式为metricbeat-%{[agent.version]}
。示例
setup.template.name: "metricbeat" setup.template.pattern: "metricbeat"
-
setup.template.fields
- 描述字段的 YAML 文件的路径。默认值为
fields.yml
。如果设置了相对路径,则将其视为相对于配置路径。有关详细信息,请参见 目录布局 部分。 -
setup.template.overwrite
- 一个布尔值,指定是否覆盖现有模板。默认值为 false。如果您同时启动多个 Metricbeat 实例,请勿启用此选项。它可能会通过发送太多模板更新请求来使 Elasticsearch 过载。
-
setup.template.settings
-
要放置到 Elasticsearch 模板的
settings.index
字典中的设置字典。有关可用 Elasticsearch 映射选项的更多详细信息,请参阅 Elasticsearch 映射参考。示例
setup.template.name: "metricbeat" setup.template.fields: "fields.yml" setup.template.overwrite: false setup.template.settings: index.number_of_shards: 1 index.number_of_replicas: 1
-
setup.template.settings._source
-
用于
_source
字段的设置字典。有关可用设置,请参阅 Elasticsearch 参考。示例
setup.template.name: "metricbeat" setup.template.fields: "fields.yml" setup.template.overwrite: false setup.template.settings: _source.enabled: false
-
setup.template.append_fields
-
要添加到模板和 Kibana 索引模式的字段列表。此设置添加新字段。它不会覆盖或更改现有字段。
当您的数据包含 Metricbeat 事先不知道的字段时,此设置很有用。例如,当您使用指标集(例如 HTTP json 指标集)时,您可能希望将字段追加到模板,并且事先不知道完整的数据结构。
如果
append_fields
与overwrite: true
一起指定,则 Metricbeat 会覆盖现有模板并在创建新索引时应用新模板。现有索引不受影响。如果您运行具有不同append_fields
设置的多个 Metricbeat 实例,则最后一个写入模板的实例优先。对该设置的任何更改也会影响 Kibana 索引模式。
示例配置
setup.template.overwrite: true setup.template.append_fields: - name: test.name type: keyword - name: test.hostname type: long
-
setup.template.json.enabled
-
设置为
true
以加载基于 JSON 的模板文件。指定 Elasticsearch 索引模板文件的路径并设置模板的名称。setup.template.json.enabled: true setup.template.json.path: "template.json" setup.template.json.name: "template-name" setup.template.json.data_stream: false
如果使用 JSON 模板,则会跳过 fields.yml
以进行模板生成。
如果 JSON 模板是数据流,请设置 setup.template.json.data_stream
。