如何在logstash中的一个字段中多次匹配
how to match multiple times in one field in logstash
这是字段
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 ... 值并将它们分别放入新字段?
谢谢
如果你只想匹配 eng
和 rul
值,你可以使用 %{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
这是字段
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 ... 值并将它们分别放入新字段?
谢谢
如果你只想匹配 eng
和 rul
值,你可以使用 %{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