8

我有几个应用程序在单个服务器上运行。我想使用 filebeat 将他们每个人的日志发送到 logstash。但是,为了配置管理,我希望能够分别为每个应用程序添加配置到 filebeat。

Logstash 从conf.d目录中读取其配置。据我了解,可以在其中添加文件,并且当 logstash 加载它们时它们会合并。filebeat 有没有类似的功能?还是我坚持为filebeat.yml每台服务器维护一个文件?

我在 CentOS 7 上运行 filebeat 和 logstash 作为服务,使用来自elastic's repositories的 yum/rpm 包。Filebeat 是 1.3.1 版,logstash 是 2.4.0 版。

4

1 回答 1

18

是的,Filebeat 有conf.d类似的功能,但默认情况下不启用。Filebeat 将在声明的目录中查找*.yml包含探矿者配置的其他文件。配置因 Filebeat 主要版本而异。

文件节拍 7.x:

行为与 6.x 相同,但配置选项filebeat.config.inputs不是filebeat.config.prospectors.

# /etc/filebeat/filebeat.yml
filebeat.config.inputs:
  enabled: true
  path: inputs.d/*.yml

然后为每个生成日志的应用创建单独的配置文件。

# /etc/filebeat/inputs.d/someapp.yml
- paths:
  - /var/log/someapp/stdout.log
  fields:
    app: someapp

文件节拍 6.x:

您在 filebeat.yml 文件的部分中指定一个path选项。filebeat.config.prospectors

filebeat.config.prospectors:
  enabled: true
  path: /etc/filebeat/conf.d/*.yml

/etc/filebeat/conf.d/someapp.yml

请注意,此文件不像filebeat.prospectors早期版本中那样包含。

- paths:
    - /var/log/someapp/stdout.log
  fields:
    app: someapp

Filebeat 1.x 和 5.x:

config_dir您使用该选项在主文件beat.yml 中声明目录。

filebeat:
  config_dir: /etc/filebeat/conf.d

/etc/filebeat/conf.d/someapp.yml

filebeat:
  prospectors:
    - paths:
        - /var/log/someapp/stdout.log
      fields:
        app: someapp
于 2016-10-11T22:03:07.317 回答