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

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

filebeat配置的必要部分:

  1. filebeat.inputs:
  2. - type: log
  3. paths:
  4. - C:\Program Files\Filebeat\test_logs\*.txt

发送到logstash和elasticsearch后,将显示以下字段:

  1. "log": {
  2. "offset": 117,
  3. "file": {
  4. "path": "C:\\Program Files\\Filebeat\\test_logs\\20200804_0929_logui.txt"
  5. }

我想得到文件夹名/文件名作为单独的字段,但不知道如何。
已经尝试过这样的方法:

  1. grok {
  2. match => { 'path' => '(C:\\Program Files\\Filebeat\\test_logs\\)%{GREEDYDATA:filename}\.txt' }
  3. }

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

vsnjm48y

vsnjm48y1#

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

  1. filter {
  2. dissect {
  3. mapping => {
  4. "[log][file][path]" => "C:\\Program Files\\Filebeat\\test_logs\\%{[log][file][name]}.txt"
  5. }
  6. }
  7. }

相关问题