После каждого письма, отправленного через мой почтовый сервер, postfix/anvil
добавляет что-то вроде следующего:
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection rate 1/60s for (smtp:103.28.42.75) at Nov 9 15:02:42
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection count 1 for (smtp:103.28.42.75) at Nov 9 15:02:42
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max message rate 1/60s for (smtp:103.28.42.75) at Nov 9 15:02:43
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max cache size 1 at Nov 9 15:02:42
Я понимаю, почему эти сообщения регистрируются (я установил ограничения), но не могу найти способ изменить anvil
уровень журнала (т.е. чтобы подавить эти информационные сообщения от mail.log
). Есть ли параметр, который я могу использовать в своем main.cf
отключить эти статистические сообщения? Я лучше остановлю их у источника, чем подавлю с помощью настройки системного журнала.
Если вы хотите изменить частоту журналов, вы можете установить anvil_status_update_time
в main.cf
. По умолчанию - 600 с. http://www.postfix.org/postconf.5.html#anvil_status_update_time
Для меня два часа сработали лучше, чем 10 минут по умолчанию, но, очевидно, это будет зависеть от среды.
anvil_rate_time_unit = 60s
anvil_status_update_time = 2h
Кроме того, чтобы решить проблему с длительной задержкой регистрации входящей почты, мне пришлось настроить следующие параметры. Если вы заметили, что журналы входящей почты не обновляются, когда должны обновляться, попробуйте следующее:
smtpd_error_sleep_time = 2s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
* Если ваш сервер получает менее 1 письма на каждые 600 с
Демон наковальни по умолчанию записывает статистику при выходе. Поскольку время простоя по умолчанию составляет 600 с, вы будете продолжать получать журналы наковальни каждые 10 минут в случае, если письмо не будет получено.
Это можно изменить на более длительный период, добавив -o max_idle
к master.cf
anvil unix - - n - 1 anvil -o max_idle=3600s
Есть параметр в main.cf
к подавлять процесс наковальни. Этот параметр называется smtpd_client_event_limit_exceptions. Назначение этого параметра - исключить некоторых клиентов из ограничений smtpd_client _ * _ count / rate_limit. В вашем случае вы должны указать это в main.cf
smtpd_client_event_limit_exceptions = static:all
В результате все IP-адреса будут перечислены как клиенты, исключенные из ограничений smtpd_client _ * _ count / rate_limit. Таким образом, этот параметр будет подавлять наковальня, потому что нечего записывать.
Источник: аналогичный вопрос в списке рассылки postfix.
Я использую rsyslogd (8) чтобы поместить определенные сообщения в другой файл журнала.
Например, создать новый файл /etc/rsyslog.d/maillog-stats.conf
с этим содержанием:
# extract then discard stats from anvil daemon
:msg, contains, "statistics: max" /var/log/maillog-stats
:msg, contains, "statistics: max" stop
Файлы в /etc/rsyslog.d
каталог читается раньше /etc/rsyslog.conf
поэтому эти фильтры применяются перед основным файлом конфигурации.
Первый фильтр на основе свойств записывает сообщения, содержащие "statistics: max" в /var/log/maillog-stats
а второй отбрасывает сообщение для дальнейшей обработки с stop
действие.
Остальные сообщения обрабатываются, как и раньше, правилом в /etc/rsyslog.conf
,
# Log all the mail messages in one place.
mail.* -/var/log/maillog
Вы также можете установить какое-нибудь правило поворота, например, создав файл: /etc/logrotate.d/maillog
:
/var/log/maillog-stats
{
weekly
rotate 10
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}