我在运行 Red Hat 6 的服务器上使用统一日志,从其他服务器接收定向日志消息并使用 RSyslog 管理它们。到目前为止, /etc/rsyslog.conf 具有以下规则:
if $fromhost-ip startswith '172.20.' then /var/log/mylog.log
但我不想记录包含“kernel”和“dnat”的消息,所以我想过滤所有消息,增强规则。
我该怎么做?
答案 0 :(得分:1)
这似乎是一个更适合Unix & Linux的问题。在适当地通知这不是正确的地方之后,我会通过回答来破坏规则。
根据您使用的Red Hat版本,您可以通过各种方式使用rsyslogd的conditional filters或RainerScript来表达多个逻辑规则的组合。在Red Hat 6上,您可以使用条件过滤器来完成您想要的任务:
if ( $fromhost-ip startswith '172.20.' and \
$syslog-facility-text != 'kern' ) then /var/log/mylog.log
您可以从Rsyslog v5 manual找到更多示例。