如何阻止后缀日志信息进入系统日志?

Pau*_*lio 7 ubuntu postfix syslog

我们有一个运行 Ubuntu 10.04.4 LTS 的 vps,在试图找到 php 问题的解决方案时,我已经意识到 syslog 系统的问题 - 不过我不确定。

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
Run Code Online (Sandbox Code Playgroud)

/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]
Run Code Online (Sandbox Code Playgroud)

/var/log/mail.info、/var/log/mail.warn 和 /var/log/mail.err 都是空的,尽管上述配置将相关消息定向到它们。

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

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

我一直在寻找将这些后缀消息重定向到 mail.log 文件所需的命令,但我发现的帖子似乎只提到了 .info、.err 和 .warn 消息。据我所知,系统日志守护程序应该将它们定向到相关文件。

所以我的问题是:如何将 postfix 消息重定向到 /var/log/syslog 之外?为什么 .warn、.info 和 .err 消息没有到达应有的位置?

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

Sam*_*amK 7

我猜你在使用 rsyslog?在写入适当的文件后,您必须告诉 rsyslog 停止处理消息。这可以通过& ~.

mail.*                          -/var/log/mail.info
& ~
Run Code Online (Sandbox Code Playgroud)

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

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


Jen*_*y D 1

这行:

*.*;auth,authpriv.none  -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)

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

您还告诉 syslog 不要立即同步文件;这意味着,如果您没有收到很多电子邮件日志行,它们可能根本不会立即写入邮件日志文件。然而,系统日志文件将包含如此多的消息,因此很可能会提前写入。

此外,对文件进行更改后,您需要重新启动日志服务。通常,只需将 HUP 发送到 syslogd 进程的 PID 即可完成此操作。完成此操作后,请检查 /var/log/syslog 中是否有有关 syslogd.conf 中无法解析的行的任何消息。