详情可见官方文档-conditionals。
有时您只想在特定条件下过滤或输出事件。为此,您可以使用条件(conditional)。比如在elk系统中想要添加一个type类型的关键字来根据不同的条件赋值,最后好做统计。
Logstash中的条件查看和行为与编程语言中的条件相同。
条件语支持if,else if和else语句并且可以嵌套。
条件语法如下:
if EXPRESSION {
...
} else if EXPRESSION {
...
} else {
...
}
比较操作:
相等: ==, !=, , <=, >=
正则: =~(匹配正则), !~(不匹配正则)
包含: in(包含), not in(不包含)
布尔操作:
and(与), or(或), nand(非与), xor(非或)
一元运算符:
表达式可能很长且很复杂。表达式可以包含其他表达式,您可以使用!来取反表达式,并且可以使用括号(...)对它们进行分组。
!(取反)
()(复合表达式), !()(对复合表达式结果取反)
实例
如若action的值是login,则通过mutate filter删除secret字段:
filter {
if [action] == "login" {
mutate { remove_field =>