【问题标题】:Can Filebeat use multiple config files?Filebeat 可以使用多个配置文件吗?
【发布时间】:2020-06-10 06:03:06
【问题描述】:

我有几个应用程序在单个服务器上运行。我想使用 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 版本。

【问题讨论】:

  • 只是为了澄清从 6.3 开始的 Filebeat 将名称从勘探者更改为输入 - elastic.co/blog/…

标签: config filebeat


【解决方案1】:

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

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

Filebeat 6.x:

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

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

【讨论】:

  • 优秀。这正是我一直在寻找的。我不知道我是如何在文档中错过它的。
  • 我可以为不同的配置文件指定不同的输出吗?例如,filebeat-config-1.yml 必须将数据发送到 logstash,但 filebeat-config-2.yml 必须将数据发送到 elasticsearch。这也可能吗?
  • 不,您不能在任何节拍中使用多个输出。让您的 Logstash 服务器进行路由。
猜你喜欢
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多