如何停止进入syslog的postfix日志信息?

我们有一个vps运行的Ubuntu 10.04.4 LTS,并试图find一个解决scheme的PHP问题,我已经意识到什么看起来像一个问题,系统日志系统 – 我不知道。

syslog.conf文件如下所示:

auth,authpriv.* -/var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* -/var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/opt/psa/var/log/maillog user.* -/var/log/user.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warning -/var/log/mail.warn mail.err -/var/log/mail.err # Logging for INN news system # news.crit -/var/log/news/news.crit news.err -/var/log/news/news.err news.notice -/var/log/news/news.notice # # Some `catch-all' logfiles. # *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warning;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages # # Emergencies are sent to everybody logged in. # *.emerg * # # I like to have messages displayed on the console, but only on a virtual # console I usually leave idle. # #daemon,mail.*;\ # news.=crit;news.=err;news.=notice;\ # *.=debug;*.=info;\ # *.=notice;*.=warning /dev/tty8 # The named pipe /dev/xconsole is for the `xconsole' utility. To use it, # you must invoke `xconsole' with the `-file' option: # # $ xconsole -file /dev/xconsole [...] # # NOTE: adjust the list below, or you'll go crazy if you have a reasonably # busy site.. # daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warning |/dev/xconsole 

而/ var / log / syslog文件包含这样的条目的加载:

  Jun 10 04:04:00 lvps109-104-93-171 postfix/qmgr[688]: 814E0676E997: removed Jun 10 04:04:01 lvps109-104-93-171 postfix/smtpd[11105]: connect from mail-we0-f196.google.com[74.125.82.196] 

/var/log/mail.info,/var/log/mail.warn,&/var/log/mail.err都是空的,尽pipe上面的configuration指示了相关的消息。

我已经尝试在conf文件中添加' mail.* -/var/log/mail.log '来查看是否可以获得在那里重复的smtp&qmgr消息,但是该日志文件仍然是空的。

我尝试更改' *.*;auth,authpriv.none -/var/log/syslog '到*.*;auth,authpriv.none;mail.none -/var/log/syslog查看是否可以停止任何后缀消息进入/ var / log / syslog,但他们继续去那里。

我一直在寻找年龄寻找命令我需要将这些postfix邮件redirect到mail.log文件,但我发现的post似乎只提到了.info,.err和.warn消息。 据我所知,syslog守护进程应该引导他们到相关的文件。

所以我的问题是:如何将postfix邮件从/ var / log / syslog中redirect? 为什么.warn,.info,&.err消息不在他们应该在的位置?

任何帮助感激地收到 – 非常感谢。

我想你正在使用rsyslog? 你必须告诉rsyslog在写入适当的文件后停止处理消息。 这可以用& ~完成。

 mail.* -/var/log/mail.info & ~ 

将这些行放在包含*.*之前

完成后重新启动系统日志。

在Ubuntu 14.04.1 LTS中,这对于我来说是非常有用的,它可以使邮件不在系统日志中:

 *.*;mail,auth,authpriv.none /var/log/syslog 

而且我将邮件日志分成错误和非错误,这也正在工作:

 mail.debug;mail.!err /var/log/mail.log mail.err /var/log/mail.err 

基本上所有的.debug级别和以上级别去mail.log,除了.err级别和以上的任何东西去mail.err文件。

我能想到的唯一可能导致你的邮件日志文件是空的 – 在文件path的前面,我认为不要马上写日志。

参考: http ://www.rsyslog.com/doc/rsyslog_conf_filter.html的“select器”部分

上面,TraceElements说以下是解决scheme的一部分,但第一行似乎与我不直观,即:

 *.*;mail,auth,authpriv.none /var/log/syslog 

那条线是做什么的? 在我看来,它应该将邮件添加到/ var / log / syslog,但我们正试图在这里做相反的事情。 啊哈,可能扩展到mail.none吗? 但是为什么OP在以下解决scheme中的尝试不适合他/她? 那是:

 *.*;auth,authpriv.none;mail.none -/var/log/syslog 

但他/她说,“看看我是否可以阻止任何postfix邮件进入/ var / log / syslog,但他们继续去那里。

他/她的第二个分号是干什么的?

无论如何,TraceElement的解决scheme在Ubuntu 16.04.2 LTS上为我工作。

这一行:

 *.*;auth,authpriv.none -/var/log/syslog 

意味着将每个级别的 每个设施logging到/ var / log / syslog,authpriv是唯一的例外。 显然这包括邮件。

您也正在告诉系统日志不立即同步文件; 这意味着如果你没有收到很多电子邮件日志,他们可能不会马上写入到maillog文件中。 然而,系统日志文件将包含如此之多的消息,以至于很可能会早些写入。

另外,您需要在对文件进行更改后重新启动日志服务。 通常这是通过发送HUP到syslogd进程的PID来完成的。 完成之后,请检查/ var / log / syslog以获取有关syslogd.conf中无法分析的任何消息。