У нас есть 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")); };