Filebeat:监控两级目录层次结构

Ada*_*tan 2 logging filebeat

我的问题

考虑以下目录结构:

/var/log/quodo/campaigns/deployment_29/campaign-32/users.log
/var/log/quodo/campaigns/deployment_29/campaign-12/ads.log
/var/log/quodo/campaigns/deployment_55/campaign-77/users.log
/var/log/quodo/campaigns/deployment_55/campaign-37/ads.log
...
Run Code Online (Sandbox Code Playgroud)

/var/log/quodo/campaigns/<whatever1>/<whatever2>我想使用 Filebeat将所有日志发送到 ElasticSearch。

Filebeat不具有目录的递归监控功能

要从预定义级别的子目录中获取所有文件,可以使用以下模式:/var/log/*/*.log.

这会.log从 的子文件夹中获取所有文件/var/log。它不会从/var/log文件夹本身获取日志文件。目前不可能递归地获取目录的所有子目录中的所有文件。

我尝试过什么

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/quodo/campaigns/*/*/*
  scan_frequency: 1s
output.elasticsearch:
   <connection data>
Run Code Online (Sandbox Code Playgroud)

我的问题

我可以在 Filebeat 配置中使用两个级别的*目录层次结构吗?

Tar*_*ani 6

以下是我的 filebeat 版本

$ filebeat.sh --version
filebeat version 5.6.2 (amd64), libbeat 5.6.2
Run Code Online (Sandbox Code Playgroud)

我尝试了下面的配置

filebeat.prospectors:

- input_type: log

  paths:
    - /var/log/**/**/*


output.console:
  pretty: true

logging.level: debug
Run Code Online (Sandbox Code Playgroud)

这对我来说非常有用

{
  "@timestamp": "2017-10-07T18:12:17.694Z",
  "beat": {
    "hostname": "vagrant",
    "name": "vagrant",
    "version": "5.6.2"
  },
  "input_type": "log",
  "message": "tarun",
  "offset": 6,
  "source": "/var/log/test1/test3/test.log",
  "type": "log"
}
Run Code Online (Sandbox Code Playgroud)


小智 5

它可以让我在 filebeat 版本 7.6.1 上监控递归

filebeat.prospectors:
  - input_type: log
  paths:
    - /var/log/**/*
Run Code Online (Sandbox Code Playgroud)