logstash:使用filebeat时如何从路径获取字段?

wgeznvg7  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(928)

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' }
}

不幸的是,这不起作用。
请帮我弄清楚。

vsnjm48y

vsnjm48y1#

试试这个 dissect 过滤器,更简单:

filter {
    dissect {
      mapping => {
        "[log][file][path]" => "C:\\Program Files\\Filebeat\\test_logs\\%{[log][file][name]}.txt"
      }
    }
  }

相关问题