我有一条两年多前为 rsyslog 监听器编写的规则,但今天我发现它不起作用。它是一个基于 RainerScript 的基本过滤器,但它不起作用。有人可以看看下面的内容并告诉我我做错了什么吗?提前致谢。
call ruleset_em7
# Send to EM7
ruleset(name="ruleset_em7"){
if ($msg contains "%ASA-4-313009" or $msg contains "%ASA-4-733100" or $msg contains "%ASA-3-202010") then {
action(type="omfwd" name="omfwd_em7" target="x.x.x.x" protocol="udp" port="514")
}
}
答案1
在上面原始问题的代码中,有 2 组大括号 - 一组围绕整个 if/then 语句,另一组围绕操作部分。不幸的是,内置语法检查器似乎没有意识到这是一个坏主意,因此它不会抱怨第二组。一旦它们被删除,rsyslog 就开始转发到操作语句中标识的主机。