Zimbra Collaboration Suite (ZCS) представляет собой платформу для коллективной работы, включающую электронную почту, календари, задачи и другие инструменты. Системным администраторам важно владеть основными командами и процедурами для поддержания стабильной работы системы. Эта статья охватывает ключевые аспекты администрирования Zimbra, такие как управление сервисами, почтовыми ящиками, восстановление данных, мониторинг и автоматизация задач.
1. Основные команды для управления сервисами Zimbra
Запуск, остановка и перезагрузка сервисов
Все команды выполняются под пользователем zimbra. Сначала нужно переключиться на него:
su zimbra
Для управления сервисами Zimbra используется команда zmcontrol:
Запуск сервисов:
zmcontrol start
Остановка сервисов:
zmcontrol stop
Перезапуск сервисов:
zmcontrol restart
Проверка состояния сервисов:
zmcontrol status
Перезагрузка Postfix
После внесения изменений в конфигурацию Postfix выполните перезагрузку:
zmmtactl reload
Проверка работающих сервисов
Чтобы узнать, какие сервисы активны на сервере, используйте следующую команду:
zmprov gs `zmhostname` zimbraServiceEnabled
2. Управление почтовыми ящиками
Получение информации о почтовом ящике
Для получения сведений о конкретном почтовом ящике выполните:
zmprov getMailboxInfo user@domain.com
Блокировка учетной записи
Zimbra поддерживает различные статусы учетных записей: active, maintenance, locked, closed, lockout, pending. Чтобы заблокировать учетную запись, используйте:
zmprov ma user@domain.com zimbraAccountStatus locked
Переиндексация почтового ящика
При проблемах с поиском писем может понадобиться переиндексирование ящика:
zmprov reIndexMailbox user@domain.com start|status|stop
Подсчёт количества писем в папке «Inbox»
Чтобы узнать число писем в папке «Inbox», выполните:
zmmailbox -z -m user@domain.com gaf | grep Inbox | awk '{print $4}'
3. Восстановление удалённых сообщений
Поиск в корзине
Для поиска удалённых сообщений в корзине выполните:
zmmailbox -z -m user@example.com s --dumpster -l 30 --types message larger:1kb
Восстановление элементов
Для восстановления конкретных элементов используйте их идентификаторы:
zmmailbox -z -m admin@mail.zimbra.io recoverItem 287 Inbox
4. Работа с аккаунтом GALSync
Получение информации об источниках данных
Для получения сведений об источниках данных GALSync выполните:
zmprov gds galsync@domain.com
Удаление аккаунта GALSync
Для удаления аккаунта GALSync используйте команду:
zmgsautil deleteAccount -a galsync@domain.com
5. Мониторинг и устранение проблем
Проверка квоты почтовых ящиков
Для просмотра статистики использования квот почтовых ящиков выполните:
zmprov gqu имя_сервера|sort -k 3 -n|column -t
Устранение ошибок NO_SUCH_BLOB
Если в логах появляются ошибки NO_SUCH_BLOB, это указывает на несоответствие метаданных физическим файлам. Исправить проблему можно следующим образом:
Сначала найдите проблемные ящики:
grep -B2 NO_SUCH_BLOB /opt/zimbra/log/mailbox.lo* |grep mailbox= |sed -r 's/.*mailbox=([0-9]*).*$/\1/' |sort -u
Затем устраните проблему с помощью команды:
zmblobchk --mailboxes 6919 --export-dir /tmp --missing-blob-delete-item start|status|stop
6. Очистка почтовых ящиков
Ручная очистка
Zimbra автоматически очищает удалённые сообщения только для активных ящиков. Для ручной очистки выполните следующие шаги:
- Получите ZimbraID ящика:
zmprov -l ga user@domain.com zimbraId
- Загрузите ящик в память:
zmmailbox -z -m user@domain.com noOp
- Выполните очистку ящика:
zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980
Автоматическая очистка всех ящиков
Для автоматической очистки всех ящиков используйте следующий скрипт purge-all.sh:
#!/bin/bash
TMPDIR="/var/tmp"
LOGDIR="/opt/zimbra/log"
SLEEP=10
if [ "$USER" != "zimbra" ]; then
echo "Ошибка: Скрипт должен запускаться пользователем zimbra."
exit 1
fi
DATE="`date '+%Y%m%d-%H%M%S'`"
exec >> $LOGDIR/purgeall-$DATE.log
echo "`date`: Начало выполнения скрипта $0"
zmprov -l gaa -s `zmhostname` > $TMPDIR/purgeall-list.out
for MYUSER in `cat $TMPDIR/purgeall-list.out`
do
echo "`date`: Начинается обработка пользователя: $MYUSER"
ACCOUNT_ID="`zmprov -l ga $MYUSER zimbraId | awk '/^zimbraId:/ {print $2}'`"
if [ -n "$ACCOUNT_ID" ]; then
zmmailbox -z -m $MYUSER noOp && \
zmsoap -v -z PurgeMessagesRequest/mbox @id=$ACCOUNT_ID
if [ $? = 0 ]; then
echo "`date`: Завершение обработки пользователя: $MYUSER"
else
echo "`date`: Ошибка при обработке пользователя: $MYUSER"
fi
fi
sleep $SLEEP
done
echo "`date`: Окончание выполнения скрипта $0"
exit 0
7. Настройка уведомлений
Уведомления о свободном месте на диске
Для настройки уведомлений о заполнении диска выполните:
zmlocalconfig -e zmdisklog_warn_threshold=90
zmlocalconfig -e zmdisklog_critical_threshold=98
Настройка адресов для уведомлений
Измените адреса отправителя и получателя уведомлений:
zmlocalconfig -e smtp_source=mailsrv@domain.ru
zmlocalconfig -e smtp_destination=support@domain.ru
Интервал отправки уведомлений
Установите интервал отправки уведомлений (по умолчанию 600 секунд):
zmlocalconfig -e zmstat_disk_interval=3600
8. Ежедневные отчёты
Просмотр статистики
Для просмотра ежедневного отчёта выполните:
/opt/zimbra/libexec/zmdailyreport
Отправка отчёта на почту
Чтобы отправить отчёт на email, используйте:
/opt/zimbra/libexec/zmdailyreport -m