Filebeats,获取文件夹名称作为标签的一部分

Filebeats, get folder name as part of tag

假设我有这样一条路径:

  paths:
     - /var/log/webapp/*.log*
     - /var/log/webapp/*app*.log*
  document_type: webapp

我如何更改它以根据 /var/log/*/ 下的文件夹名称自动将文档类型命名为 *?

中的任何内容

示例:

/var/log/app/* -- 生成应用程序日志

/var/log/alpha/* -- 生成 alpha 日志

/var/log//beta/* -- 生成 beta 日志

/var/log/delta/* -- 生成增量日志。

是否可以使用节拍来完成此操作,或者我是否需要使用 grok 或 ruby 过滤器在 logstash 端处理此操作?

至少有两种方法可以做到这一点:

首先是在您的 Filebeat 配置中创建不同的探矿者,它们是特定于日志类型的文件夹。这是官方推荐的方法。

如果您想使用一个广泛的探矿者并避免针对您的问题的内置解决方案,请使用 logstash。 Filebeat 为您提供了一个字段,其中包含原始文件的路径,我认为它叫做 file。你可以这样理解它:

file => "/var/log/%{WORD:log_type}/%{GREEDYDATA}"

我在这里遇到的问题是 Filebeat 设置的类型似乎无法通过 Logstash 更改,不知道它是如何工作的,但是当我尝试它时肯定很头疼。