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