我有一台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。还有其他办法吗?
感谢。
答案 0 :(得分:0)
首先将消息发送到您想要的文件。
然后使用stop
来阻止进一步的操作。
if $programname == 'apache2' then {
action(type="omfile" file="/var/log/apache2/rewrite.log" name="action-omfile-apache2-rewrite")
stop
}