Fork me on GitHub

ELK系列(6) - Logstash怎么判断变量或数组是否为null或空字符串

问题

当Logstash在filter里使用到了mutate插件来添加添加新的字段时,如下:

1
2
3
4
5
6
7
filter {
mutate {
add_field => {
"test1" => "%{test1}"
}
}
}

如果Logstash在这里收集到的%{test1}的值是null或者空字符串,那么新添加的test1变量的值就会变成%{test1},如下:

1
2
3
4
5
{
"level" => "INFO",
"test1" => "%{test1}",
"message" => "Hello world!"
}

很显然,这种不是我们想要的结果,如果Logstash收集到的变量值是null或空字符串,就不应当添加这个变量。也就是说,在filter里进行某些操作时,需要对字符串变量或者数组的值进行非空判断。

判断变量是否为null或空字符串

判断数组是否为null或空字符串

参考链接

0%