Logstash有条件检查标签是否存在?

Cod*_*ner 23 logstash

在logstash中是否有任何方法可以使用条件来检查特定标记是否存在?

例如,

grok {
match => [
"message", "Some expression to match|%{GREEDYDATA:NOMATCHES}"
]
Run Code Online (Sandbox Code Playgroud)

如果NOMATCHES存在做某事.

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

谢谢.

rut*_*ter 52

我们很清楚:您提供的配置代码段是设置字段,而不是标记.

Logstash事件可以被认为是字段字典.名为的字段tags由许多插件通过add_tagremove_tag操作引用.

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

if "foo" in [tags] {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但你似乎想检查字段是否包含任何内容:

if [NOMATCHES] =~ /.+/ {
    ...
}
Run Code Online (Sandbox Code Playgroud)

以上将检查是否NOMATCHES存在且不为空.

参考:配置文件概述.


dga*_*way 6

以下测试存在也可以[在Logstash 1.4.2中测试],尽管它可能不会验证非空:

if [NOMATCHES] {
    ...
}
Run Code Online (Sandbox Code Playgroud)