配置 Elasticsearch 索引模板加载

编辑

配置 Elasticsearch 索引模板加载

编辑

winlogbeat.yml配置文件中的setup.template部分指定了用于在 Elasticsearch 中设置映射的索引模板。如果启用了模板加载(默认启用),Winlogbeat 会在成功连接到 Elasticsearch 后自动加载索引模板。

加载索引模板需要连接到 Elasticsearch。如果配置的输出不是 Elasticsearch(或 Elasticsearch Service),则必须手动加载模板

您可以调整以下设置来加载您自己的模板或覆盖现有模板。

setup.template.enabled
设置为 false 以禁用模板加载。如果将其设置为 false,则必须手动加载模板
setup.template.name
模板的名称。默认为winlogbeat。Winlogbeat 版本始终附加到给定名称,因此最终名称为winlogbeat-%{[agent.version]}
setup.template.pattern

应用于默认索引设置的模板模式。默认模式为winlogbeat。Winlogbeat 版本始终包含在模式中,因此最终模式为winlogbeat-%{[agent.version]}

示例

setup.template.name: "winlogbeat"
setup.template.pattern: "winlogbeat"
setup.template.fields
描述字段的 YAML 文件的路径。默认为fields.yml。如果设置了相对路径,则认为它是相对于配置路径的。有关详细信息,请参见目录布局部分。
setup.template.overwrite
一个布尔值,指定是否覆盖现有模板。默认为 false。如果您同时启动多个 Winlogbeat 实例,请不要启用此选项。它可能会通过发送过多的模板更新请求来使 Elasticsearch 过载。
setup.template.settings

一个设置字典,放置到 Elasticsearch 模板的settings.index字典中。有关可用 Elasticsearch 映射选项的更多详细信息,请参见 Elasticsearch 的映射参考

示例

setup.template.name: "winlogbeat"
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: "winlogbeat"
setup.template.fields: "fields.yml"
setup.template.overwrite: false
setup.template.settings:
  _source.enabled: false
setup.template.append_fields

要添加到模板和 Kibana 索引模式的字段列表。此设置会添加新字段。它不会覆盖或更改现有字段。

当您的数据包含 Winlogbeat 事先不知道的字段时,此设置很有用。

如果同时指定了append_fieldsoverwrite: true,则 Winlogbeat 会覆盖现有模板并在创建新索引时应用新模板。现有索引不受影响。如果您运行多个具有不同append_fields设置的 Winlogbeat 实例,则最后一个写入模板的实例优先。

对此设置的任何更改也会影响 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