一、语法
使用条件来决定filter和output处理特定的事件。logstash条件类似于编程语言。条件支持if、else if、else语句,可以嵌套。
[ 比较操作 ]
相等: ==
,!=
, <
,>
,<=
, >=
正则: =~
(匹配正则), !~
(不匹配正则)
包含: in
(包含), not in
(不包含)
[ 布尔操作 ]
and
(与), or
(或), nand
(非与), xor
(非或)
[ 一元运算符 ]
!
(取反)
()
(复合表达式), !()
(对复合表达式结果取反)
二、使用
filter{
if "start" in [message]{ --message就是指原始消息
grok{
match => xxxxxxxxx
}
}else if "complete" in [message]{
grok{
xxxxxxxxxx
}
}else{
grok{
xxxxxxx
}
}
if ([message] =~ "正则表达式") { # 如果满足该正则
drop{} # 丢弃这条数据,不写入Es
}
}