Logstash学习(四)Logstash的Grok使用技巧

最近在使用Logstash解析日志的时候遇到了很多问题,需要处理多种特殊情况,下面会列举一下我遇到的特殊情况以及处理方式。

如何检查数组是否为空数组

1
2
3
4
5
if [tags] == [] {
mutate {
remove_field => ["tags"]
}
}

判断json中是否有foo这个属性

1
2
3
4
5
6
7
8
9
10
11
if [foo] {
...
} else {
drop {}
}
if ![foo] {
drop {}
} else {
...
}
1
2
3
4
5
6
7
8
9
ruby {
code => "
if event['column16'] == nil
event['log_type'] = 'type2'
else
event['log_type'] = 'type1'
end
"
}
1
2
3
4
5
if "_jsonparsefailure" in [tags] {
drop {}
} else {
...
}

参考文章: