Я знаю, что об этом спрашивали сто раз. Но я много поискал в Google безуспешно. Мой вопрос: я хочу регистрировать каждую активность моего постфиксного сервера. Ни файл по умолчанию /var/log/mail
, ни какие-либо другие, касающиеся mail
или postfix
, не существует.
/etc/postfx/main.cf
, чтобы включить ведение журнала? Спасибо за ваши ответы.
Подсказка: я использую postfix вместе с dovecot. Я установил метапакет несколько месяцев назад.
Выход для postconf -n
:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
home_mailbox = Maildir/
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-dovecot-postfix.conf -n -m "${EXTENSION}"
mailbox_size_limit = 0
mydestination = mydomain.de localhost
myhostname = mydomain.de
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = mydomain2.de
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
Output for /etc/syslog.conf
# /etc/syslog.conf Configuration file for syslogd.
#
# For more information see syslog.conf(5)
# manpage.
#
# First some standard logfiles. Log by facility.
#
auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none;local0.none;local1.none -/var/log/syslog
#cron.* -/var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
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.
#
# 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 -/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/mail.log
. Однако, похоже, что конфигурация вашего средства системного журнала была изменена вами (или вашим провайдером). Использование простого syslogd вместо rsyslogd очень возможно, но тогда вы можете ожидать, что все будет работать иначе, чем вы ожидаете.
Как уже упоминалось в комментариях, после установки rsyslog
файлы снова появились.
В Ubuntu 16.04 я нашел журналы постфикса в /var/log/syslog
:
grep postfix /var/log/syslog
Вы можете просмотреть поток журналов постфикса:
tail -f /var/log/syslog | grep postfix
Если быть точным: постфикс регистрирует в syslog и использует средство mail
системного журнала.
Вам нужно будет проверить, какой сервер системного журнала вы используете, но по умолчанию в Ubuntu до текущей версии 20.04 LTS используется rsyslogd
.
Если вы измените демон системного журнала, вам нужно будет настроить его для почты
средства системного журнала.
Проверьте, зарегистрирована ли почта
в каком-либо конкретном файле, выполнив поиск почты.
(без предшествующего комментария/решетки) , но также включают все «правила охвата всех» *.
:
grep -E "^[^#]*(mail|\*)\." /etc/rsyslog.conf /etc/rsyslog.d/*.conf
Пример вывода из Ubuntu 20.04
# We see that "/etc/rsyslog.conf" includes files from "/etc/rsyslog.d"
/etc/rsyslog.conf:$IncludeConfig /etc/rsyslog.d/*.conf
# "*.*" means that _all_ events _except_ "authpriv" is logged to /var/log/syslog
/etc/rsyslog.d/50-default.conf:*.*;auth,authpriv.none -/var/log/syslog
# Here goes "mail"
/etc/rsyslog.d/50-default.conf:mail.* -/var/log/mail.log
# In _addition_ "mail.err" goes here
/etc/rsyslog.d/50-default.conf:mail.err /var/log/mail.err
# And in the event of an "emerg" priority message..
/etc/rsyslog.d/50-default.conf:*.emerg :omusrmsg:*
Rsyslog читает файлы конфигурации по порядку, и все события (строки журнала) проходят через все элементы конфигурации если какая-либо конфигурация не отбрасывает или не отфильтровывает событие.
Еще один пример, когда mail.*
подавлен от попадания в общий файл messages
, а затем отправляется как в файл, так и на внешний сервер системного журнала UDP. :
*.info;mail.none;authpriv.none;cron.none /var/log/messages
mail.* -/var/log/maillog
mail.* @127.0.0.1:50514
Поэтому следите за порядком файлов при изменении вещей (сортировка по числам или символам) и используйте каталог rsyslog.d
вместо того, чтобы возиться с rsyslog.conf
.