如何在logstash中的一个字段中多次匹配

时间:2018-07-16 23:02:05

标签: logstash logstash-grok

这是字段

device_version => 2.6.1.1280 [eng:v1.3.26.0 rul:v2018.07.12.09 act:v2018.01.20.01 sws:v2018.07.12.09]

我如何获得eng和rul ...的价值并将其分别放入新字段?

谢谢

1 个答案:

答案 0 :(得分:0)

如果您只想匹配engrul的值,则可以使用%{DATA}简单地匹配它们,

eng:%{DATA:eng}\srul:%{DATA:rul}\s

这将输出

{
  "eng": [
    [
      "v1.3.26.0"
    ]
  ],
  "rul": [
    [
      "v2018.07.12.09"
    ]
  ]
}

您可以在https://grokdebug.herokuapp.com/

进行测试

编辑:

filter {
  grok {
    match => { "device_version" => "eng:%{DATA:eng}\srul:%{DATA:rul}\s" }
  }
}

您还应该查看可用的默认grok模式https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns