问题描述
Filebeat配置的必要部分:
filebeat.inputs:
- type: log
paths:
- C:\Program Files\Filebeat\test_logs\*.txt
发送到logstash和elasticsearch之后,将显示以下字段:
"log": {
"offset": 117,"file": {
"path": "C:\\Program Files\\Filebeat\\test_logs\\20200804_0929_logui.txt"
}
我想将文件夹名称/文件名作为单独的字段获取,但是不知道如何。
已经尝试过这样的事情:
grok {
match => { 'path' => '(C:\\Program Files\\Filebeat\\test_logs\\)%{GREEDYDATA:filename}\.txt' }
}
不幸的是,这不起作用。
请帮我弄清楚。
解决方法
尝试使用dissect
filter更加容易:
filter {
dissect {
mapping => {
"[log][file][path]" => "C:\\Program Files\\Filebeat\\test_logs\\%{[log][file][name]}.txt"
}
}
}