Pet*_*ner 4 logging filter syslog-ng
如果我在 syslog-ng 中有一个条目
log {
source (src);
filter (filter1);
filter (filter2);
filter (filter3);
filter (filter4);
destination (all_log)
}
Run Code Online (Sandbox Code Playgroud)
而且,sayfilter4
是一个非常宽松的过滤器,filter3
是一个过滤器,可以根除一些令人讨厌的主机。如果filter2
和/或filter1
允许那些令人讨厌的主机之一,它会被记录吗?
来自 syslog-ng 管理员指南(v 2.0,这是旧的,但您正在使用的)
当日志语句包含多个过滤器语句时,仅当所有过滤器都为消息时,syslog-ng 才会将消息发送到目标。换句话说,过滤器与逻辑 AND 运算符相连。在下面的示例中,没有消息到达目的地,因为过滤器是独占的(客户端的主机名不能同时是 example1 和 example2)。
所以这是有道理的,如果它以任何其他方式工作,它将太复杂且没有记录。因此,您将不得不寻找其他方法来完成您正在尝试做的事情!
一般来说,您希望排除主机的方法是将其not host('HOSTNAME') or (host('HOSTNAME') and level(...) )
用作过滤器。