生成 filebeat 自定义字段

Generating filebeat custom fields

我有一个 elasticsearch 集群 (ELK) 和一些节点使用 filebeat 将日志发送到 logstash。我环境中的所有服务器都是CentOS 6.5.

每个服务器中的 filebeat.yml 文件由 Puppet 模块强制执行(我的生产服务器和测试服务器都有相同的配置)。

我想在每个文档中都有一个字段,告诉它是否来自 production/test 服务器。

我想在每个文档中生成一个动态自定义字段,它使用 filebeat.yml 文件指示环境 (production/test)。

为了解决这个问题,我想到了 运行 宁一个命令,其中 returns 环境(可以通过 facter 了解环境)并将其添加到 "environment" filebeat.yml 文件中的自定义字段,但我找不到任何方法。

是否可以通过 filebeat.yml 运行 命令? 还有其他方法可以实现我的目标吗?

是的,您可以通过filebeats向文档添加字段。

official doc 告诉你怎么做。

在你的filebeat.yml中:

filebeat:
  prospectors:
    -
      paths:
        - /path/to/my/folder
      input_type: log

      # Optional additional fields. These field can be freely picked
      # to add additional information to the crawled log files
      fields:
        mycustomvar: production

在 filebeat-7.2.0 中我使用以下语法:

processors:
- add_fields:
    target: ''
    fields:
      mycustomfieldname: customfieldvalue

注意:target = ''表示mycustomfieldname是顶级字段 official 7.2 docs