rsyslog - 避免将某些日志推送到/ var / log / messages

时间:2014-12-11 06:53:52

标签: rsyslog

我有一台ec2 linux服务器,并且正在使用rsyslog跟踪我的应用服务器的日志,以便我可以将这些日志推送到loggly。

问题是,rsyslog还将这些记录在我不想要的/ var / log / messages中。有什么方法可以避免这种情况吗?我可以过滤掉/etc/rsyslog.conf中的某些消息,以便不将这些消息推送到var / log / messages吗?

******更新*******

我尝试在rsyslog.conf中添加以下行:

if $programname == 'programName' then {
*.err                                                 /var/log/messages
} else {
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
}

但是,重新启动rsyslog后,我看到以下错误:

Dec 11 08:01:46 <hostname> rsyslogd: the last error occured in /etc/rsyslog.conf, line 37:"if $programname == 'programName' then {"
Dec 11 08:01:46 <hostname> rsyslogd: warning: selector line without actions will be discarded
Dec 11 08:01:46 <hostname> rsyslogd-3000: unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
Dec 11 08:01:46 <hostname> rsyslogd: the last error occured in /etc/rsyslog.conf, line 39:"} else {"
Dec 11 08:01:46 <hostname> rsyslogd: warning: selector line without actions will be discarded
Dec 11 08:01:46 <hostname> rsyslogd-3000: unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
Dec 11 08:01:46 <hostname> rsyslogd: the last error occured in /etc/rsyslog.conf, line 41:"}"
Dec 11 08:01:46 <hostname> rsyslogd: warning: selector line without actions will be discarded

我想我的rsyslog版本(5.8.10)不支持if / else。还有其他办法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

首先将消息发送到您想要的文件。 然后使用stop来阻止进一步的操作。

if $programname == 'apache2' then {
    action(type="omfile" file="/var/log/apache2/rewrite.log" name="action-omfile-apache2-rewrite")
    stop
}