乐趣区

Filebeat-参考指南第3步在Elasticsearch中加载索引模板

第 3 步:在 Elasticsearch 中加载索引模板

加载索引模板需要连接到 Elasticsearch,如果输出不是 Elasticsearch,则必须手动加载模板。

在 Elasticsearch 中,索引模板用于定义确定如何分析字段的设置和映射。

Filebeat 的推荐索引模板文件由 Filebeat 包安装,如果你接受 filebeat.yml 配置文件中的默认配置,Filebeat 会在成功连接到 Elasticsearch 后自动加载模板,如果模板已存在,则除非你配置 Filebeat,否则不会覆盖该模板。

配置模板加载

默认情况下,如果启用了 Elasticsearch 输出,Filebeat 会自动加载推荐的模板文件 fields.yml,如果要使用默认索引模板,则不需要其他配置,否则,你可以将filebeat.yml 配置文件中的默认值更改为:

  • 加载不同的模板

    setup.template.name: "your_template_name"
    setup.template.fields: "path/to/fields.yml"

    如果模板已存在,则除非你配置 Filebeat,否则不会覆盖该模板。

  • 覆盖现有模板

    setup.template.overwrite: true
  • 禁用自动模板加载

    setup.template.enabled: false

    如果禁用自动模板加载,则需要手动加载模板。

  • 更改索引名称

    如果要将事件发送到支持索引生命周期管理的集群,请参阅配置索引生命周期管理以了解如何更改索引名称。

    默认情况下,当禁用或不支持索引生命周期管理时,Filebeat 使用时间系列索引,索引名为 filebeat-7.3.0-yyyy.MM.dd,其中yyyy.MM.dd 是事件索引的日期,要使用其他名称,请在 Elasticsearch 输出中设置 index 选项。你指定的值应包括索引的根名称以及版本和日期信息,你还需要配置 setup.template.namesetup.template.pattern选项以匹配新名称,例如:

    output.elasticsearch.index: "customname-%{[agent.version]}-%{+yyyy.MM.dd}"
    setup.template.name: "customname"
    setup.template.pattern: "customname-*"

    如果你使用的是预先构建的 Kibana 仪表板,请同时设置 setup.dashboards.index 选项,例如:

    setup.dashboards.index: "customname-*"

手动加载模板

要手动加载模板,请运行 setup 命令,需要连接到 Elasticsearch,如果启用了另一个输出,则需要临时禁用该输出并使用 -E 选项启用 Elasticsearch,此处的示例假定已启用 Logstash 输出,如果已启用 Elasticsearch 输出,则可以省略 -E 标志。

如果要连接到安全的 Elasticsearch 集群,请确保已按第 2 步:配置 Filebeat 中所述配置凭据。

如果运行 Filebeat 的主机没有与 Elasticsearch 的直接连接,请参阅手动加载模板(备用方法)。

要加载模板,请使用适用于你系统的命令。

deb 和 rpm:

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

mac:

./filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

brew:

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

linux:

./filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

docker:

docker run docker.elastic.co/beats/filebeat:7.3.0 setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

win:

以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择“以管理员身份运行”)。

在 PowerShell 提示符下,切换到 Filebeat 的安装目录,然后运行:

PS > .\filebeat.exe setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

强制 Kibana 查看最新文档

如果你已经使用 Filebeat 将数据索引到 Elasticsearch 中,则索引可能包含旧文档,加载索引模板后,可以从 filebeat-* 中删除旧文档,以强制 Kibana 查看最新文档。

使用此命令:

deb 和 rpm:

curl -XDELETE 'http://localhost:9200/filebeat-*'

mac:

curl -XDELETE 'http://localhost:9200/filebeat-*'

linux:

curl -XDELETE 'http://localhost:9200/filebeat-*'

win:

PS > Invoke-RestMethod -Method Delete "http://localhost:9200/filebeat-*"

此命令删除与模式 filebeat-* 匹配的所有索引,在运行此命令之前,请确保要删除与该模式匹配的所有索引。

手动加载模板(备用方法)

如果运行 Filebeat 的主机没有与 Elasticsearch 的直接连接,则可以将索引模板导出到文件,将其移动到具有连接的计算机,然后手动安装模板。

要导出索引模板,请运行:

deb 和 rpm:

filebeat export template > filebeat.template.json

mac:

./filebeat export template > filebeat.template.json

linux:

./filebeat export template > filebeat.template.json

win:

PS > .\filebeat.exe export template --es.version 7.3.0 | Out-File -Encoding UTF8 filebeat.template.json

要安装模板,请运行:

deb 和 rpm:

curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json

mac:

curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json

linux:

curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.3.0 -d@filebeat.template.json

win:

PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile filebeat.template.json -Uri http://localhost:9200/_template/filebeat-7.3.0

上一篇:第 2 步:配置 Filebeat

退出移动版