Настройка уровня журналирования в Zimbra OSE

Ранее мы уже рассказывали о том, как в Zimbra OSE организованы централизованные логи. Помимо единого лог-файла, расположенного /var/log/zimbra.log, Zimbra OSE также хранит логи в папке /opt/zimbra/log/. Именно в этой папке можно найти отдельные логи для различных узлов Zimbra. В зависимости от серьезности описываемых событий они разделяются на уровни INFO, WARN, ERROR и FATAL. Уровнем логирования по умолчанию является INFO, в рамках которого описываются все, даже штатные события, происходящие в Zimbra OSE. Однако на деле системному администратору не всегда требуется слишком подробная информация о работе различных узлов Zimbra OSE. Также нередко администратор сталкивается с необходимостью получить более детальные логи о действиях той или иной учетной записи. Такая задача, к примеру, может появиться в случае возникновения различных ошибок, инцидента информационной безопасности или если сотрудник находится под подозрением в инсайдерской работе. Помочь в таких ситуациях может настройка уровня логирования на сервере. 

Для ведения логов Zimbra OSE использует Apache Log4j - библиотеку для журналирования java-программ, которая, поддерживает изменение уровня логов как глобально в рамках одного почтового сервера, так и отдельных учетных записей. Кастомизация уровня журналирования для всех учетных записей на сервере делается это с помощью правки конфигурационных файлов log4j на сервере. В зависимости от того, в какой файл будут внесены изменения, они могут быть как временными, то есть действующими до первой перезагрузки почтового сервера, так и постоянными.

Для того, чтобы внести временные  изменения, необходимо отредактировать файл /opt/zimbra/conf/log4j.properties. В нем содержатся записи вида log4j.logger.zimbra.mailbox=INFO. Изменив параметр INFO на DEBUG вы временно повысите уровень логов своего сервера, связанных с действиями в почтовых ящиках пользователей. Чтобы внесенные изменения стали постоянными, необходимо отредактировать шаблон файла настроек, расположенный в той же папке файл log4j.properties.in. На его основе формируется файл настроек при каждой загрузке Zimbra OSE и поэтому все внесенные в него изменения являются перманентными.

Добавить логгер для учетной записи можно при помощи команды zmprov addAccountLogger или zmprov aal. В дополнение к ней необходимо указать название учетной записи, а также уровень логирования и наименование отслеживаемых событий. В случае, если вы используете Zimbra OSE в рамках мультисерверной инфраструктуры, необходимо также указать имя почтового сервера, на котором хранится данная учетная запись.

К примеру, команда zmprov aal admin@mail.example.ru zimbra.account warn добавит логгер для учетной записи admin@mail.example.ru, в котором будут фиксироваться все события учетной записи с уровнем логов warn и выше. К таким событиям, например, относится ввод неправильного пароля.

В случае, если учетная запись располагается в мультисерверной инфраструктуре, необходимо добавить в нее имя почтового хранилища, на котором располагается учетная запись. Например, zmprov aal -s mailstore1.example.ru admin@mail.example.ru zimbra.imap debug создаст лог учетной записи admin@mail.example.ru, расположенной в почтовом хранилище mailstore1.example.ru и фиксирующий активность учетной записи на протоколе IMAP с уровнем логов debug и выше

Логирование учетных записей поддерживает более двух десятков категорий:

  1. zimbra.account - Все действия учетной записи

  2. zimbra.acl - Действия с правами доступа

  3. zimbra.cache - Действия с кэшем

  4. zimbra.calendar - Действия с календарем

  5. zimbra.dav - Действия с CalDAV

  6. zimbra.dbconn - Отслеживание подключений к базе данных

  7. zimbra.extensions - Отслеживание загрузки серверных расширений

  8. zimbra.filter - Фильтрация почты

  9. zimbra.gal - Действия с глобальной адресной книгой

  10. zimbra.imap - Действия с протоколом IMAP

  11. zimbra.index - Действия с индексным хранилищем

  12. zimbra.io - Действия с файловой системой

  13. zimbra.ldap - Действия с LDAP

  14. zimbra.lmtp - Действия с протоколом LMTP (входящая почта)

  15. zimbra.mailbox - Общие действия с почтовых ящиком

  16. zimbra.misc - Прочие действия

  17. zimbra.op - изменения в состоянии почтового ящика

  18. zimbra.pop - Действия с протоколом POP

  19. zimbra.redolog - Действия с Redo log

  20. zimbra.security - События системы безопасности

  21. zimbra.session - Отслеживание пользовательской сессии

  22. zimbra.smtp - Действия с протоколом SMTP (исходящая почта)

  23. zimbra.soap - Действия с протоколом SOAP

  24. zimbra.sqltrace - Отслеживание SQL

  25. zimbra.system - Включение/выключение и другие системные сообщения

  26. zimbra.zimlet - Действия с Зимлетами

Категория zimbra.account является объединяющей все другие категории, а категория zimbra.mailbox объединяет все категории, связанные с действиями в почтовом ящике пользователя. Также категории можно добавлять по отдельности. К примеру, если вы хотите отслеживать действия учетной записи по протоколам CalDAV и IMAP, то вам придется добавить два новых лога учетной записи: 

sudo su - zimbra
zmprov aal ivanov@example.ru zimbra.imap debug
zmprov aal ivanov@example.ru zimbra.dav debug

Для просмотра логов можно использовать команду tail -f /opt/zimbra/log/mailbox.log | grep admin@mail.example.ru. Данная команда конкатенирует все сохранённые в лог-файле данные, касающиеся данной учетной записи и по мере их появления будет отображать их. Также вывод этой команды можно сохранить в текстовом файле tail -f /opt/zimbra/log/mailbox.log | grep admin@mail.example.ru > log.txt

Просмотреть ранее созданные логгеры учетных записей можно введя команду zmprov getAllAccountLoggers или просто zmprov gaal. В выводе команды отобразятся учетные записи, для которых добавлены логгеры, а также перечень и уровень логируемых категорий.

После того как поставленная задача будет выполнена, логгеры учетных записей можно удалить. Делается это также из командной строки с помощью команды zmprov removeAccountLogger или zmprov ral. К примеру, команда zmprov ral admin@mail.example.ru zimbra.imap удалит логгер учетной записи, отслеживающий действия по протоколу IMAP, после чего все действия учетной записи по данному протоколу будут отслеживаться с уровнем журналирования, выставленным по умолчанию.

Таким образом, в зависимости от стоящих перед администратором задач он может регулировать уровень журналирования событий как на всем почтовом сервере Zimbra, так и в отдельных учетных записях.

По всем вопросам, связанными c Zextras Suite и Team Pro вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com.