Мой /var/log/mail.log
постоянно переполняется сообщениями Dovecot о подключении / отключении, например:
Mar 29 18:15:48 summit dovecot: IMAP(foo@bar.baz): Disconnected: Logged out bytes=63/2126
Mar 29 18:15:50 summit dovecot: imap-login: Login: user=<baz@bar.foo>, method=PLAIN, rip=4.3.2.1, lip=1.2.3.4, TLS
Они повторяются до бесконечности (до 11 МБ журналов в день), и они скрывают более важные сбои аутентификации и доставки / получения Postfix. Я проверил Вики-страница Dovecot для регистрации, но никакая опция не останавливает эти сообщения. Есть ли какая-либо переменная конфигурации, которую я могу установить в dovecot.conf
чтобы эти сообщения не отправлялись mail.log
?
Уточнение: Я все еще хочу, чтобы Dovecot входила в систему mail.log
; Я просто не хочу, чтобы он регистрировал эти фривольные сообщения о подключении / отключении.
Если вы используете rsyslog или syslog-ng, вы можете фильтровать сообщения syslog. Вот пример из справки rsyslog:
с простым заявлением:
:msg, contains, "imap-login" ~
или с языком сценария if-else:
if $programname == 'dovecot' then {
action(type="omfile" file="/var/log/dovecot.log")
if $msg contains 'imap-login' then
action(type="omfile" file="/var/log/dovecot-login.log")
else
action(type="omfile" file="/var/log/dovecot.log")
}
Как насчет задания cron каждый час или около того, чтобы удалить строки с помощью sed примерно так:
sed -e '/\(dovecot: IMAP.*Disconnected:.*\|dovecot: imap-login: Login: user\)/d' /var/log/mail.log > /var/log/mail.log
Я не являюсь мастером, регулярным выражением или sed, поэтому, пожалуйста, внимательно посмотрите на это, если хотите его использовать.
Самый простой способ избавиться от сообщений о входе / выходе dovecot - это создать файл 49-dovecot-ignore-info.conf в /etc/rsyslog.d с участием:
mail.=info ~
Это в основном означает отбрасывание всех информационных сообщений, поступающих из почтового ящика (которое использует dovecot). Больше информации: http://manpages.ubuntu.com/manpages/hardy/man5/rsyslog.conf.5.html, под Отменить раздел.
Затем сделайте
sudo service dovecot restart
И сообщения долго не хранятся в файлах журнала.
Включите ведение журнала в файл с помощью log_path и / или info_log_path, затем закомментируйте syslog_facility.
или
Измените syslog_facility и управляйте выводом с помощью /etc/syslog.conf.
: /etc/dovecot.conf
## ## Logging ## # Log file to use for error messages, instead of sending them to syslog. # /dev/stderr can be used to log into stderr. #log_path = /var/log/dovecot.log # Log file to use for informational and debug messages. # Default is the same as log_path. #info_log_path = /var/log/dovecot-info.log ... # Syslog facility to use if you're logging to syslog. Usually if you don't # want to use "mail", you'll use local0..local7. Also other standard # facilities are supported. syslog_facility = mail
Сначала удалите системный журнал из dovecot, потому что очень важно, чтобы системный журнал был чистым, поскольку dovecot производит много журнала, поэтому регистрируйте его отдельно (rsyslog) - ваш друг, чтобы ваш журнал вращался.
Если вы используете dovecot с многофайловой конфигурацией (debian), просто перейдите к 10-logging .... Не забудьте проверить с помощью grep log * .conf все файлы конфигурации, чтобы убедиться, что ничего не записывается два или более раз. Тогда, потому что ваш процессор и ваш жесткий диск драгоценны, просто положите это.
Однажды, если вам понадобится информация, просто прокомментируйте эту строку и зарегистрируйте где-нибудь еще.
info_log_path = / dev / null