我正在尝试为logstash创建一个过滤器,该过滤器将具有" general"所有日志的grok过滤器,如果存在某个字段,那么我希望它执行不同的grok。
我使用的第一个小伙伴是
grok {
match => [
"message", "....%{NOTSPACE:name} %{GREEDYDATA:logcontent}"
]
}
这很有效。但我希望这能够过滤更多,如果" name"字段就是" foo"
if [name] == "foo" {
grok {
match => [
"message", ".....%{NOTSPACE:name} %{NOTSPACE:object1} %{NOTSPACE:object2}"
]
}
我试过这个选项,但它没有用。 有什么想法吗?
答案 0 :(得分:0)
最简单的方法是在浏览任何内容之前在消息上使用模式匹配。
例如:
if [message] =~ /....foo/ {
// foo specific grok here
} else {
// general grok
}