Рейтинг:2

Различный формат файла журнала postfix при записи в отдельный файл (maillog_file)

флаг gh

Чтобы отделить почтовые журналы от общих системных журналов, я добавил эту строку в /etc/postfix/main.cf

maillog_file = /var/log/postfix.log

Как и ожидалось, файл /var/журнал/postfix.log создается, и больше нет постфикс записи в переменная/журнал/системный журнал. К сожалению, кажется, что это также изменит содержимое записей журнала. Это то, что я получаю в postfix.log (изменил свое исходное доменное имя на пример.com здесь)

23 мая 17:33:15 пример postfix/qmgr[662299]: E7DB742646: from=<[email protected]>, size=549252, nrcpt=1 (очередь активна)
23 мая 17:33:15 пример postfix/qmgr[662299]: D7DA646E85: удалено

При изменении его обратно (и я несколько раз менял туда и обратно, чтобы быть уверенным) и после повторной отправки того же письма я получаю это в системный журнал.

23 мая, 17:33:52. 0.02/0.11/1.5, dsn=2.0.0, статус=отправлено (250 2.0.0 Ok: в очереди как 1BC7874B3A)
23 мая 17:33:52 example2020 postfix/qmgr[664141]: DE7EA4265D: удалено

Очевидно, что различий очень много.Во-первых, после даты указывается другое имя сервера (пример установлен в /etc/имя_почты, пример2020 указано в /etc/имя хоста). Во-вторых, только постфикс/qmgr записи регистрируются, но не постфикс/SMTP которые содержат дополнительную информацию. То же самое относится и к переменная/журнал/mail.log который больше не получает эти записи.

Итак, вот два вопроса...

(1) Почему постфикс (почтовая_версия = 3.4.13) логировать различную информацию (не более постфикс/SMTP) как только я укажу maillog_file?

(2) Любые идеи, как сказать постфикс что я хочу свою постфикс/SMTP информация обратно?

Конфигурация постфикса

$ постконф -n

alias_database = хэш:/и т.д./псевдонимы
alias_maps = хеш:/и т.д./псевдонимы
append_dot_mydomain = нет
биф = нет
bounce_queue_lifetime = 24 часа
уровень_совместимости = 2
home_mailbox = Почтовый каталог/
inet_interfaces = все
inet_protocols = все
почтовый ящик_размер_лимит = 0
maillog_file = /var/log/postfix.log # Это источник проблем
maximal_queue_lifetime = 36 часов
message_size_limit = 67108864
milter_default_action = принять
milter_protocol = 6
mydestination = example2020 # Имя хоста заменено на «example»
имя хоста = example.com
мои сети = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
non_smtpd_milters = инет: локальный: 8892
readme_directory = нет
получатель_разделитель = +
ретранслятор =
sender_canonical_maps = хеш:/etc/postfix/senders
smtp_bind_address = 11.111.11.111
smtp_bind_address6 = 2a02:xxxx:0:xxxx::xx
smtp_destination_concurrency_limit = 3
smtp_tls_CApath = /etc/ssl/сертификаты
smtp_tls_cert_file = /var/www/ssl/example.cert
smtp_tls_key_file = /var/www/ssl/example.key
smtp_tls_security_level = может
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_milters = inet:localhost:8892 # Это для OpenDKIM
smtpd_relay_restrictions = Permit_MyNetworks Permit_Sasl_Authenticated defer_unauth_destination
smtpd_sasl_security_options = неанонимный
smtpd_tls_cert_file = /var/www/ssl/example.cert
smtpd_tls_exclude_ciphers = ECDHE-RSA-RC4-SHA
smtpd_tls_key_file = /var/www/ssl/example.key
smtpd_tls_mandatory_ciphers = высокий
smtpd_tls_mandatory_exclude_ciphers = ECDHE-RSA-RC4-SHA
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_security_level = может
smtpd_tls_session_cache_database = btree:${каталог_данных}/smtpd_scache
smtpd_use_tls = да
tls_high_cipherlist = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL :!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
tls_ssl_options = БЕЗ СЖАТИЯ
virtual_alias_maps = хеш:/etc/postfix/виртуальный


$ постконф -M

smtp инет n - y - - smtpd
пикап unix n - y 60 1 пикап
очистка unix n - y - 0 очистка
qmgr unix n - n 300 1 qmgr
tlsmgr unix--y 1000? 1 тлсмгр
переписать unix--y--тривиально-переписать
отказ unix - - y - 0 отказ
отложить unix - - y - 0 отказов
трассировка unix - - y - 0 отказов
проверить unix - - y - 1 проверить
прошить unix -ы 1000? 0 флеш
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
реле unix - - y - - smtp -o syslog_name=postfix/$service_name
showq unix n - y - - showq
ошибка unix--y--ошибка
повторите попытку unix--y--ошибка
отбросить unix--y--отбросить
локальный unix - n n - - локальный
виртуальный unix - n n - - виртуальный
lmtp unix--y--lmtp
наковальня unix - - y - 1 наковальня
архив unix - - y - 1 архив
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 - - флаги канала=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}
anx avatar
флаг fr
anx
Я *настоятельно* рекомендую оставить форматирование и принятие решений системному демону ведения журнала (rsyslog, systemd-journal, ..) и настраивать твики там или в инструментах, анализирующих их файлы. Я *подозреваю*, что ваша проблема связана с конфликтующими переопределениями, делающими ваше альтернативное место назначения журнала неэффективным, поэтому, пожалуйста, [поделитесь](https://serverfault.com/posts/1101621/edit) вашей конфигурацией как [рекомендуется в теге](https:/ /serverfault.com/questions/tagged/postfix).
флаг gh
Спасибо за подсказку о рекомендациях тегов! Я добавил конфигурацию выше. Что касается рекомендации оставить ведение журнала демону ... Я бы, если бы не было регулярных причин, которые потребовали бы от меня хранения почтовых журналов (включая адреса электронной почты, т.е. личные данные) отдельно от общих системных журналов.
anx avatar
флаг fr
anx
Вы полностью перезапустили постфикс? Поскольку ведение журнала настраивается через передаваемый ENV, частичная перезагрузка может создать видимость постфикса с использованием новых настроек, но только потому, что *некоторые* службы начинают ведение журнала там.
флаг gh
Перезапуск — хорошая идея, но я не думаю, что это вызвало проблему: сервер выполнил полную перезагрузку до того, как я заметил «отсутствующие» записи журнала для postfix/smtp. После комментирования опции `maillog_file` и выполнения `systemctl restart postfix` новые записи postfix/smtp записывались в `syslog` для новых писем. И больше ничего не писалось после повторного включения опции плюс `systemctl restart postfix`.
Рейтинг:1
флаг in

Чтобы отделить почтовые журналы от общих системных журналов, я добавил эту строку в /etc/postfix/main.cf

Это не лучший способ, как прокомментировал @anx, настоятельно рекомендуется оставить форматирование ведения журнала и принятие решений системному демону ведения журнала..

Для вас информация rsylogd уже собирает журналы постфикса из /var/spool/postfix/dev/журнал файл сокета (см. внутри /etc/rsyslog.d/postfix.conf) и это остается самым чистым способом.

Взгляните на свой /etc/rsyslog.conf и должна быть строка, которая выглядит так:

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

Чтобы рассказать rsyslogd не писать записи журнала, связанные с почтой внутри /var/журнал/системный журнал, измените его на (обратите внимание на .никто):

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

Уже есть строка, которая говорит ему регистрировать все, что связано с почтой, в /var/журнал/mail.log (измените его на любой файл, если хотите) ниже, поэтому вам не нужно редактировать файл конфигурации postfix:

почта.* -/var/log/mail.log

Чтобы ответить на ваши вопросы:

(1) Почему postfix (mail_version = 3.4.13) регистрирует другую информацию (больше не postfix/smtp), как только я указываю файл maillog_file?

Ваш master.cf говорит нам, что вы используете постфикс в chroot-режим. Но твой qmgr демон не имеет chroot, поэтому он может в основном записывать в любой файл журнала, в отличие от вашего смтп демон.

(2) Любые идеи, как сообщить postfix, что я хочу вернуть информацию postfix/smtp?

Ваша информация не исчезла, но многие из ваших демонов не могут сломать chroot, поэтому они не могут напрямую писать в /var/журнал/postfix.log как вы намереваетесь. Вариантом будет удаление их из chroot, переключив chroot столбец к н в вашем master.cf, но опять же, ни один разумный человек не порекомендует это.

ВЫВОД: Ваш лучший и самый безопасный вариант — настроить rsylogd конфигурации, как описано ранее.

anx avatar
флаг fr
anx
Это объясняет, как это сделать с помощью rsyslog, но я не думаю, что это объясняет, почему исходный подход не работает. Проверьте строку `postlog unix-dgram` в `master.cf`, она выглядит правильно и должна пересылать журнал для chroot-сервисов.
anx avatar
флаг fr
anx
Postfix `3.4.13` звучит как версия, которую мог бы использовать кто-то, использующий Debian (-производную) (кто-то, кто непосредственно отслеживает стабильную версию 3.4.x, уже использовал бы `3.4.24`), поэтому, пока журналы могут быть переданы в `rsyslogd` , все равно будет существовать дополнительное постоянное хранилище журналов через `systemd-journald`.
флаг gh
Очень развернутый ответ, спасибо! Для тех, кто ищет тот же ответ, я хотел бы сообщить, что соответствующая строка может быть найдена в `/etc/rsyslog.d/50-default.conf` и что может не быть явного `mail`, но добавление `mail .none` в строке с `-/var/log/syslog` работает именно так, как указано в ответе.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.