在logstash中,有什么方法可以使用条件检查特定标记是否存在?

例如,

grok {
match => [
"message", "Some expression to match|%{GREEDYDATA:NOMATCHES}"
]

如果存在NOMATCHES,请执行某些操作。

如何验证NOMATCHES标签是否存在?

谢谢。

最佳答案

就是这样,我们很清楚:您提供的配置代码段是在设置字段,而不是标签。

Logstash事件可以视为字段字典。许多插件通过tagsadd_tag操作引用了一个名为remove_tag的字段。

您可以检查是否设置了标签:

if "foo" in [tags] {
    ...
}

但是您似乎想检查某个字段是否包含任何内容:
if [NOMATCHES] =~ /.+/ {
    ...
}

上面的代码将检查NOMATCHES存在并且不为空。

Reference: configuration file overview.

08-28 14:04