Logstash配置中Int的默认值读取向量

时间:2018-10-17 16:09:35

标签: json elasticsearch logstash config kibana

我在json字段中有一个整数向量,我可以访问元素并在logstash配置中添加一个新字段,如下所示:

mutate{add_field  => { "MyField_0" => "%{[JsonField][0]}"}}
mutate{add_field  => { "MyField_1" => "%{[JsonField][1]}"}}

如果我的向量是[7,9],则输出为:

MyField_0 = 7
MyField_1 = 9

问题在于向量的大小是可变的,有时向量只有1个元素,并且在kibana中字段的输出为:

MyField_0 = 7
MyField_1 = %{[JsonField][1]}

我希望默认值出现在第二个值中,例如0或-1,可以这样做吗?我是ELK的新手,不了解ruby :(。

谢谢您的提示,

1 个答案:

答案 0 :(得分:0)

好,所以我可以使用类似以下的翻译过滤器

filter{
  translate{
    field => "MyField_1" 
    destination => "NewField" 
    dictionary => ["%{[JsonField][1]}", "0"]
  }
}