rsyslog Filter Conditions 日志筛选

filter是rsyslog的一大亮点,通常情况下,我们并不是所有的日志都要收集,比如我们只需要error以下级别的日志、或者我们再要包含特定内容的日志。灵活运用filter我们可以很轻易地实现这些需求

if $msg, contains, “test_message” /var/log/test.log
&~
如果日志内容包含”test_message”就存放在/var/log/test.log中,”&~”的意思是丢弃,不做后续处理。即使后面还有”:msg, contains,“test_message” /var/log/test2.log”,这条日志也不会再存在test2.log中。
:fromhost-ip, isequal, “192.168.30.9″ /var/log/cisco-asa5510.log
#if ($fromhost-ip == ’10.10.10.3′ or $fromhost-ip == ’10.10.10.4′) then /var/log/cisco-asa5510.log
& ~

if $programname == ‘puppet-agent’ and $syslogseverity <= ’6′ then /var/log/puppet/agent.log
if $programname == ‘puppet-agent’ and $syslogseverity <= ’6′ then ~

if $programname == [“postfix”,”exim”,”sendmail”] then
/var/log/mail.log

if $programname startswith(“%ASA”) then /var/log/cisco-messages
else if $programname startswith(“postfix”) then
/var/log/postfix-messages
else if $programname startswith(“snmpd”) then
/var/log/snmpd-messages
else if $programname startswith(“sendmail”) then
/var/log/sendmail-messages
else {
<rest of rules>
}

发表评论

邮箱地址不会被公开。 必填项已用*标注