我在 Ubuntu 23.10 上安装了 Postfix 3.8.1。如何配置 Postfix 以仅记录到 syslog?我的 syslog 守护程序是 journald。
根据我的理解,如果maillog_file
没有设置,Postfix 应该记录到 syslog。postconf
返回
root@h12345678:~ # postconf | egrep maillog_file
maillog_file =
maillog_file_compressor = gzip
maillog_file_prefixes = /var, /dev/stdout
maillog_file_rotate_suffix = %Y%m%d-%H%M%S
尽管如此,Postfix 还是会将日志写入/var/log/mail.log
。此外,journalctl -eu postfix.service
仅返回服务的启动/停止消息,而不返回其他任何内容。
答案1
这个答案只是重复了评论中提供的答案,因此问题不会悬而未决。
你是对的:当没有maillog_file
设置 Postfix 将记录到系统日志:
maillog_file
(默认:空)Postfix postlogd(8) 服务写入的可选日志文件的名称。空值选择记录到 syslogd(8)指定“/dev/stdout”以选择记录到标准输出。Stdout 记录要求 Postfix 使用“postfix start-fg”启动。
注 1:maillog_file 参数值必须包含使用 maillog_file_prefixes 参数指定的前缀。
注 2:一些 Postfix 非守护程序在处理其配置参数和命令行选项之前可能仍会将信息记录到 syslogd(8)。
此功能在 Postfix 3.4 及更高版本中可用。
另请参阅:https://www.postfix.org/MAILLOG_README.html
令人困惑的是,即使 Postfix 本身没有写入日志文件,您(仍然)会看到写入的日志事件,这/var/log/mail.log
是因为 Postfix 使用了 syslog mail.*
功能,并且:
默认情况下,Ubuntu 上的 rsyslogdmail.*
将 syslog 事件写入/var/log/maillog
。