考虑以下目录结构:
/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 配置中使用两个级别的*
目录层次结构吗?
以下是我的 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)