配置 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_fieldsoverwrite: 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