我正在对两个字段进行拆分,并将不同的数组元素分配给新字段。但是,当它们不存在时,最终会将代码附加到该字段,例如“%{variable}”
我假设我可以对数组元素执行5 if语句,以在将其分配给新字段之前查看其是否存在,但这似乎是一种非常麻烦的方法。有没有一种更好的方法来仅在填充时分配
split => { "HOSTALIAS" => ", " }
split => { "HOSTGROUP" => "," }
add_field => {
"host-group" => "%{[HOSTGROUP][0]}"
"ci_alias" => "%{[HOSTALIAS][0]}"
"blueprint-id" => "%{[HOSTALIAS][1]}"
"instance-id" => "%{[HOSTALIAS][2]}"
"vm-location" => "%{[HOSTALIAS][3]}"
}
答案 0 :(得分:0)
您可以使用grok过滤器。在这里,我们丢弃失败的消息,但我们可以采取不同的处理方式。
filter {
grok {
match => [ "HOSTALIAS", "%{WORD:ci_alias},%{WORD:blueprint-id},%{WORD:instance-id},%{WORD:vm-location}"]
}
if "_grokparsefailure" in [tags] {
drop { }
}
}