![更改 myhostname 后 Postfix 日志记录不完整](https://linux22.com/image/787263/%E6%9B%B4%E6%94%B9%20myhostname%20%E5%90%8E%20Postfix%20%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E4%B8%8D%E5%AE%8C%E6%95%B4.png)
更改 后,我的 postfix 安装在大多数消息上都无法记录myhostname
。myhostname
现在 不同于机器的 FQDN(和主机名),而以前它们是一样的。 更改后(出于其他原因),系统日志的传送和排队部分无法记录。 只记录了一些警告。
当我设置参数时,maillog_file
所有日志都按预期出现在那里,并且像更改名称之前一样工作。然而,我注意到一件事:在日志行中,我看到的是myhostname
而不是机器主机名。
我在 debian 上使用 rsyslogd,其(用于邮件)配置未修改。
我错过了什么?出于显而易见的原因,我希望它重新使用完整的 syslog 日志记录……
配置和版本:
# rsyslogd -v
rsyslogd 8.2102.0 (aka 2021.02) compiled with:
PLATFORM: x86_64-pc-linux-gnu
# cat /var/log/postfix-mail.log |grep -i started|head -n 1
Jun 29 15:44:36 gateway postfix/master[2639374]: daemon started -- version 3.5.6, configuration /etc/postfix
# uname -a
Linux ***** 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08) x86_64 GNU/Linux
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
compatibility_level = 2
inet_interfaces = all
inet_protocols = ipv4
lmtp_tls_fingerprint_digest = sha256
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
maillog_file = /var/log/postfix-mail.log
milter_default_action = accept
milter_protocol = 6
mydestination = localhost
myhostname = gateway.my.domain
mynetworks = local-lan-ips/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = subnet
myorigin = /etc/mailname
non_smtpd_milters = inet:localhost:12301
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_fingerprint_digest = sha256
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_milters = inet:localhost:12301 inet:127.0.0.1:11332
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/FQDN/fullchain.pem
smtpd_tls_fingerprint_digest = sha256
smtpd_tls_key_file = /etc/letsencrypt/live/FQDN/privkey.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
smtputf8_enable = yes
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
# postconf -M
smtp inet n - y - - smtpd
submission inet n - y - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
pickup unix n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
relay unix - - y - - smtp -o syslog_name=postfix/$service_name
showq unix n - y - - showq
error unix - - y - - error
retry unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
postlog unix-dgram n - n - 1 postlogd
maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
答案1
我终于找到了问题的原因......
在阅读了数百页之后,我发现日志记录是由 systemd-journald 完成的。systemd-journald 将日志转发到 (r)syslog。我的“问题”是设置MaxLevelSyslog
为 的设置notice
。我丢失的来自 postfix 的日志消息是级别 info。所以整个问题与 syslog 或 postfix 无关。希望这能对将来的某人有所帮助。