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

时间:2017-10-03 17:23:33

标签: 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
...

我想使用Filebeat将/var/log/quodo/campaigns/<whatever1>/<whatever2>下的所有日志登录到ElasticSearch。

Filebeat does not feature recursive monitoring of a directory

  

要从预定义级别的子目录中获取所有文件,可以使用以下模式:/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>

我的问题

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

2 个答案:

答案 0 :(得分:1)

以下是我的文件版本

$ filebeat.sh --version
filebeat version 5.6.2 (amd64), libbeat 5.6.2

我尝试了以下配置

filebeat.prospectors:

- input_type: log

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


output.console:
  pretty: true

logging.level: debug

它对我很有用

{
  "@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"
}

答案 1 :(得分:1)

在filebeat版本7.6.1上它可以监视递归

img = $("#profilePhoto_update")

$("#profilePhoto_update").change(function(e) {
    for (var i = 0; i < e.originalEvent.srcElement.files.length; i++) {
        var file = e.originalEvent.srcElement.files[i];
        var reader = new FileReader();
        reader.onloadend = function() {
               img.src = reader.result;
        }
        reader.readAsDataURL(file);
        $("#profilePhoto_update").after(img);
      }
  });