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 автоматически очищает удалённые сообщения только для активных ящиков. Для ручной очистки выполните следующие шаги:

  1. Получите ZimbraID ящика:
zmprov -l ga user@domain.com zimbraId
  1. Загрузите ящик в память:
zmmailbox -z -m user@domain.com noOp
  1. Выполните очистку ящика:
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

 

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *