我遇到了kv过滤器的问题。它在我的if语句中被完全忽略了。为了调试的目的,我尝试添加两个标签-一个在mutate filter中,第二个在kv中。
if [message] =~ /^\[ID\]/ { mutate { add_tag => [ "id_test_tag" ] } kv { add_tag => [ "id_test_tag2" ] } }
结果:
"tags" => "id_test_tag"
不知道这里出了什么问题...
tp5buhyn1#
所有继承过滤器基类的过滤器都有add_tag选项,作为基类提供的“公共选项”之一。这里为kv过滤器记录了该选项。基础filter_matched方法实现了add_tag这样的“修饰”函数,除非解析源字段时发现了一些键和值,否则不会调用该方法。因此,如果[message]字段不包含field_split和value_split字符串,add_tag将不会出现。
1条答案
按热度按时间tp5buhyn1#
所有继承过滤器基类的过滤器都有add_tag选项,作为基类提供的“公共选项”之一。这里为kv过滤器记录了该选项。
基础filter_matched方法实现了add_tag这样的“修饰”函数,除非解析源字段时发现了一些键和值,否则不会调用该方法。因此,如果[message]字段不包含field_split和value_split字符串,add_tag将不会出现。