我正在尝试将事件消息与几个正则表达式进行匹配.我打算使用grep过滤器,但是它已被弃用了,所以我正试着用否定来放弃.
我正在寻找的功能是删除所有事件,除非消息匹配几个正则表达式.
过滤器波纹管不起作用,但单独测试两个表达式都可以正常工作.我错过了什么?
filter {
if ([message] !~ ' \[critical\]: ' or [message] !~ '\[crit\]: ') {
drop { }
}
}
Run Code Online (Sandbox Code Playgroud)
lna*_*aia 13
我正在阅读更多内容并继续使用grok绘制事件,添加一个标记并最后删除它们,如果标记不存在:
filter {
grok {
add_tag => [ "valid" ]
match => [
"message", ".+ \[critical\]: ?(.+)",
"message", ".+ \[crit\]: ?(.+) ",
"message", '.+ (Deadlock found.+) ',
"message", "(.+: Could not record email: .+) "
]
}
if "valid" not in [tags] {
drop { }
}
mutate {
remove_tag => [ "valid" ]
}
}
Run Code Online (Sandbox Code Playgroud)
您在条件中使用正则表达式,但没有以正确的格式传递参数。该文档显示了这一点:
if [status] =~ /^5\d\d/ {
nagios { ... }
}
Run Code Online (Sandbox Code Playgroud)
请注意,正则表达式未加引号并用斜杠包围。
归档时间: |
|
查看次数: |
13788 次 |
最近记录: |