Logstash:使用 Filebeat 时如何从路径中获取字段?
Logstash: how to get field from path when using Filebeat?
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"
}
}
}
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"
}
}
}