Ранее мы уже рассказывали о том, как в 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 и выше
Логирование учетных записей поддерживает более двух десятков категорий:
zimbra.account - Все действия учетной записи
zimbra.acl - Действия с правами доступа
zimbra.cache - Действия с кэшем
zimbra.calendar - Действия с календарем
zimbra.dav - Действия с CalDAV
zimbra.dbconn - Отслеживание подключений к базе данных
zimbra.extensions - Отслеживание загрузки серверных расширений
zimbra.filter - Фильтрация почты
zimbra.gal - Действия с глобальной адресной книгой
zimbra.imap - Действия с протоколом IMAP
zimbra.index - Действия с индексным хранилищем
zimbra.io - Действия с файловой системой
zimbra.ldap - Действия с LDAP
zimbra.lmtp - Действия с протоколом LMTP (входящая почта)
zimbra.mailbox - Общие действия с почтовых ящиком
zimbra.misc - Прочие действия
zimbra.op - изменения в состоянии почтового ящика
zimbra.pop - Действия с протоколом POP
zimbra.redolog - Действия с Redo log
zimbra.security - События системы безопасности
zimbra.session - Отслеживание пользовательской сессии
zimbra.smtp - Действия с протоколом SMTP (исходящая почта)
zimbra.soap - Действия с протоколом SOAP
zimbra.sqltrace - Отслеживание SQL
zimbra.system - Включение/выключение и другие системные сообщения
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, так и в отдельных учетных записях.
Эксклюзивный дистрибьютор Zextras SVZcloud. По вопросам тестирования и приобретения Zextras Carbonio обращайтесь на электронную почту: sales@svzcloud.ru