Назад | Перейти на главную страницу

Заставить Dovecot не регистрировать сообщения о подключении / отключении

Мой /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")
}

http://www.rsyslog.com/doc/rsyslog_conf_filter.html

Как насчет задания 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