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

Отключить user_deny.db в Cyrus / imapd

У нас есть cyrus 2.4.12 в Debian мы используем пакеты, а не создаем каждое программное обеспечение самостоятельно.

Я получаю этот "журнал" постоянно, много разных пользователей, и 8-10 раз на запрос пользователя:

получение записи user_deny.db для 'user123'

Я искал это, но не нашел реального решения, были некоторые патчи для 2.3.xx, но мы не хотим его собирать, мы предпочитаем использовать пакеты.

Есть ли решение отключить user_deny.db вообще. Нам эта функция не нужна. Он тратит центральный процессор как диск.

cyrus-imapd отправляет все уровни сообщений (отладка, информация, предупреждения, ошибки) и не может отключать или изменять уровень сообщений. Об этом сообщалось в bugzilla в 2011 году, но они, похоже, не заинтересованы в его исправлении, поэтому сообщения нельзя отключить. Чтобы удалить их из журнала, их можно перехватить из rsyslog.

Для этого создайте файл в /etc/rsyslog.d, например:

vi /etc/rsyslog.d/fetching_user_deny_error.conf

Добавьте это в файл:

if $programname == 'cyrus' and $msg contains_i 'fetching user_deny' then ~

Чтобы завершить перезапуск rsyslog:

service rsyslog restart

Я нашел следующее решение проблемы. Создать новый) user_deny.db из (пустого) плоского файла с cvt_cyrusdb и сообщения исчезнут.

https://www.cyrusimap.org/~vanmeeuwen/imap/admin/sop-userdeny.html

Кажется, правильный синтаксис фильтра:

filter f_imapd { facility(local6) and not match("fetching user_deny.db entry for" value("MESSAGE")); };

Если вы используете syslog-ng, вы также можете попробовать подавить идентичные сообщения с опцией настройки подавления:

options {
 suppress(30);
};

В этом примере идентичные сообщения будут регистрироваться каждые 30 секунд.

Я бы переключился на syslog-ng и отфильтруйте это сообщение, настроив:

filter f_imapd { facility(local6) and level(debug) and not match("regexp" value("fetching user_deny.db entry for")); };