Как импортировать архивные письма и пользовательские фильтры из Exchange
Рекомендации по настройке на стороне Exchange
- Выделите отдельную учетную запись для миграции архивов и пользовательских правил.
- До запуска миграции для персональных учетных записей необходимо снять лимиты и ограничения на использование ресурсов EWS, например EwsMaxBurst. После миграции данные ограничения можно вернуть к значениям по умолчанию. Сейчас на уровне серверов Microsoft Exchange запрещено повышенное потребление ресурсов сессиями более чем в течение 5 минут, такие ограничения не позволяют выполнять миграцию с приемлемой скоростью.
- Количество потоков при миграции не должно превышать количество доступных соединений EWS. Иначе при миграции буду возникать ошибки с кодом 500.
Настройка сервиса в установщике
В Exchange Server есть функциональность In-Place Archiving — она позволяет настроить архивацию старых писем. Эти письма не доступны по протоколу IMAP, поэтому их импортом занимается новый сервис миграции exchange-importer. Миграцией пользовательских правил (фильтров) из Exchange занимается сервис exchange-importer-legacy-rules.
Чтобы включить сервисы миграции из Exchange:
- Откройте веб-интерфейс установщика
http://server-address:8888. - Нажмите на кнопку
в правом верхнем углу, выберите пункт Продукты. -
Включите компонент Импорт данных из Microsoft Exchange.
-
Нажмите кнопку Сохранить.
- Следуя подсказкам в интерфейсе, добавьте и запустите новые роли.
Настройка сервиса производится через переменные окружения в панели администратора в разделе Настройки.
Чтобы настроить сервис:
- Перейдите в раздел Настройки -> Переменные окружения.
-
В левом меню найдите сервис exchange-importer.
- Нажмите на кнопку + Добавить.
-
Настройте основные параметры для миграции In-Place архивов:
- EXCHANGE_EWS_MAILAPI_ARCHIVE_ROOT_FOLDER — наименование директории в Почте VK WorkSpace. В эту папку попадут все письма после миграции.
- EWS_CLIENT_CONFIG_POOL_CONFIG_ADDRS — адрес подключения к EWS службе. Можно использовать несколько адресов через запятую.
- EWS_CLIENT_CONFIG_POOL_CONFIG_LOGIN — имя админа для подключения к EWS.
- EWS_CLIENT_CONFIG_POOL_CONFIG_PASSWORD — пароль админа для подключения к EWS.
-
EXCHANGE_IMPORTER_QUEUE_WORKERS — количество одновременно работающих процессов, обрабатывающих задачи из очереди.
Внимание
Каждый процесс может создавать отдельное подключение к EWS. Максимальное количество подключение =
(Количество контейнеров exchange_importer) * (EXCHANGE_IMPORTER_QUEUE_WORKERS). Если нужно ограничить количество подключений, то измените значение переменной EXCHANGE_IMPORTER_QUEUE_WORKERS. -
EXCHANGE_IMPORTER_SYSTEM_QUEUE_WORKERS — количество обработчиков, которые берут задачи из дополнительной очереди, например, в случае отложенного обновления статуса при отказе журнала. Рекомендуется небольшое количество обработчиков, так как в нормальных условиях очередь должна быть пустой. 20 обработчиков в сумме на всех инстансах должно быть достаточно.
- Конфигурация ретраев:
- RETRY_CONFIG_ARCHIVES_MIGRATE_DELAY_SECONDS — минимальное время, после которого задача на миграцию одного письма снова может попасть в работу.
- RETRY_CONFIG_ARCHIVES_MIGRATE_MAX_RETRIES — максимальное допустимое количество попыток мигрировать одно письмо.
- RETRY_CONFIG_ARCHIVES_SFU_DELAY_SECONDS — минимальное время, после которого задача на отложенное проставление статуса миграции письма при сбое журнала снова может попасть в работу.
- RETRY_CONFIG_ARCHIVES_SFU_MAX_RETRIES — максимальное допустимое количество попыток проставить статус миграции письма при сбое журнала.
- RETRY_CONFIG_BOOTSTRAP_DELAY_SECONDS — минимальное время, после которого задача по генерации задач на миграцию писем для пользователя снова может попасть в работу.
- RETRY_CONFIG_BOOTSTRAP_MAX_RETRIES — максимальное допустимое количество попыток сгенерировать задачи на миграцию писем для пользователя.
-
Нажмите Сохранить.
- В левом меню найдите сервис exchange-importer-legacy-rules.
-
Настройте основные параметры для миграции пользовательских правил:
- EXCHANGE_EWS_CLIENT_ADDRS — адрес подключения к EWS службе. Можно использовать несколько адресов через запятую.
Примечание
Для параметра EXCHANGE_EWS_CLIENT_ADDRS необходимо указать полный путь к EWS. Например:
https://owa.<FQDN>/ews/exchange.asmx.- EXCHANGE_EWS_CLIENT_LOGIN — имя администратора для подключения к EWS.
- EXCHANGE_EWS_CLIENT_PASSWORD — пароль администратора для подключения к EWS.
- EXCHANGE_AD_CLIENT_URL — адрес подключения к Active Directory.
- EXCHANGE_AD_CLIENT_USERNAME — имя администратора для подключения к Active Directory.
- EXCHANGE_AD_CLIENT_PASSWORD - пароль админа для подключения к Active Directory.
- EXCHANGE_AD_CLIENT_BASE_DN — DN пользователей.
- EXCHANGE_IMPORTER_QUEUE_WORKERS — количество одновременно работающих процессов обрабатывающих задачи из очереди.
- EXCHANGE_EWS_SERVER — адрес подключения к IMAP-серверу, по которому настраиваются сборщики писем. Например,
imap.domain.ru. Требуется для правил, которые содержат условия с перемещением писем в папку. - EXCHANGE_EWS_SKIP_TLS_VERIFY — пропускать проверку сертификата. По умолчанию - false.
-
Выполните шаг up_container для exchange-importer и exchange-importer-legacy-rules, чтобы перезапустить сервисы.
После того как сервисы созданы и настроены можно начинать процесс импорта архивных писем и правил.
Как импортировать архивные письма
В сервис нужно передать список адресов пользователей, для которых необходимо выполнить импорт.
Загрузить пользователей из CSV файла
Первый способ:
На ВМ с установщиком выполните команду со списком пользователей в запросе:
curl 'http://172.20.4.222:8080/migrate/inplace_archives/csv' \
--data \
'alex.williams36@dev.onprem.ru
emily.brown14@dev.onprem.ru
david.miller16@dev.onprem.ru'
где 172.20.4.222 — адрес сервиса exchange-importer (из веб-интерфейса установщика).
Второй способ:
На ВМ с установщиком выполните команду со списком пользователей в файле:
где 172.20.4.222 — адрес сервиса exchange-importer (из веб-интерфейса установщика).
CSV файл не должен содержать заголовков:
Как контролировать процесс импорта
- Перейдите в веб-интерфейс Grafana для своей инсталляции:
https://biz.<your_domain>/grafana - В списке Dashboards выберите General -> Exchange Importer.
- Queued Migrare Archive Tasks — количество задач в очереди. Для каждого почтового ящика из списка миграции создается одна задача.
- Runing Workers — количество одновременно работающих процессов, которые обрабатывают задачи из очереди.
- Avg Task Process Time — среднее время обработки одного почтового ящика.
В процессе импорта стоит следить за состоянием Tarantool с очередью и PostgreSQL с журналом:
- Tarantool c очередью: Database → Tarantool Clusters, в выпадающем меню tarantool выберите tarantool211.exchange-importer.
- PostgreSQL с журналом: Database → PostgreSQL, в выпадающем меню instance выберите master инстанс exchange-importer-pgN.qdit, в выпадающем меню database выберите exchange_sync.
Как импортировать архивные письма за определенный период
- В веб-интерфейсе установщика перейдите в раздел Настройки -> Переменные окружения.
-
В левом меню найдите сервис exchange-importer.
- Нажмите на кнопку + Добавить.
- Добавьте переменные
EXCHANGE_EWS_ARCHIVE_DATE_FROMиEXCHANGE_EWS_ARCHIVE_DATE_TOв формате:2025-04-19. ЕслиEXCHANGE_EWS_ARCHIVE_DATE_FROMне указана, то по-умолчанию будет применяться значение1970-01-01. Если не указана переменнаяEXCHANGE_EWS_ARCHIVE_DATE_TO, то по умолчанию будет использоваться текущая дата. - Нажмите Сохранить.
- Выполните шаг up_container для exchange-importer.
Как импортировать пользовательские фильтры
Внимание
Если у пользователей есть правила в Exchange, которые содержат условие с перемещением писем в папку, то предварительно убедитесь, что для этого почтового ящика настроен сборщик писем в Почте VK WorkSpace.
В сервис нужно передать список адресов пользователей, для которых необходимо выполнить импорт.
Загрузить пользователей из CSV файла
Первый способ:
На ВМ с установщиком выполните команду со списком пользователей в запросе:
curl 'http://172.20.4.222:8080/migrate/inbox_rules/csv' \
--data \
'alex.williams36@dev.onprem.ru
emily.brown14@dev.onprem.ru
david.miller16@dev.onprem.ru'
где 172.20.4.222 — адрес сервиса exchange-importer-legacy-rules (из веб-интерфейса установщика).
Второй способ:
На ВМ с установщиком выполните команду со списком пользователей в файле:
где 172.20.4.222 — адрес сервиса exchange-importer-legacy-rules (из веб-интерфейса установщика).
CSV файл не должен содержать заголовков:
Как контролировать процесс импорта
- Перейдите в веб-интерфейс Grafana для своей инсталляции:
https://biz.<your_domain>/grafana - В списке Dashboards выберите General -> Exchange Importer.
- Прокрутите страницу до раздела Migrate Rules Queue.
- Queued Migrate Rules Tasks — количество задач в очереди. Для каждого почтового ящика из списка миграции создается одна задача.
- Running Workers — количество одновременно работающих процессов, которые обрабатывают задачи из очереди.
- Avg Rule Process time — среднее время обработки одного почтового ящика.
- Total Count — агрегированные данные по правилам и пользователям.
- Rule mapping statuses — количество завершенных задач по статусам.
Задача по миграции правила может завершиться с одним из 4 статусов:
- success — миграция прошла успешно.
- error — миграция не прошла из за ошибки, не связанной с маппингом правила. Например, из-за сетевых ошибок.
- mapping_error — миграция не прошла из за ошибки, связанной с маппингом правила. Hапример, правило содержит неизвестные сервису поля или поля с некорректными данными.
- partial_mapping — миграция прошла, но в правиле присутствуют поля, которые не поддерживаются в Почте VK WorkSpace.
- ValidationError — ошибка валидации ответа от Exchange.
Как запустить миграцию правил повторно
В мастере роли exchange-importer-tnt выполните команду:
docker exec -i exchange-importer-tntN tarantoolctl connect unix/:/var/run/tarantool/tarantool.sock <<< "box.space.per_user_status:update('EMAIL',('=', 'status.rules', 'pending'))"
Где:
- N -- номер контейнера exchange-importer-tnt.
- EMAIL -- почтовый адрес пользователя.
Команда выше проставит статус pending для почтового ящика, которому требуется повторить процесс миграции.
Как получить данные по каждому правилу
После миграции фильтров можно получить данные по каждому правилу в CSV формате. Это можно сделать тремя способами:
-
На ВМ с установщиком выполните команду со списком пользователей в запросе:
-
На ВМ с установщиком выполните команду со списком пользователей в файле:
-
Получить данные через Active Directory:
В CSV файле есть следующие поля:
- email — ящик пользователя.
- exchange rule_id — ID правила в Exchange.
- workmail ids — список идентификаторов фильтров, добавленных в Почту VK WorkSpace. На данный момент поле будет пустым.
- status — статус миграции правила.
- exchange rule — правило Exchange в формате JSON.
- updated — время последнего обновления записи.
- error — ошибка, возникшая при миграции правила.
Как импортировать адресные книги
На ВМ с установщиком нужно выполнить одну из двух команд:
-
Со списком пользователей в запросе:
-
Со списком пользователей в файле:
где 172.20.4.222 — адрес сервиса exchange-importer (из веб-интерфейса установщика).
CSV файл не должен содержать заголовков:
Как заменить контакты в Почта VK WorkSpace
Чтобы заменить контакты в Почте VK WorkSpace, контактами из MS Exchange, воспользуйтесь одни из следующих способов:
-
Со списком пользователей в запросе:
-
со списком пользователей в файле:
где 172.20.4.222 — адрес сервиса exchange-importer (из веб-интерфейса установщика).
CSV файл не должен содержать заголовков:
Как получить статус миграции контактов
После миграции фильтров можно получить данные по каждому контакту в CSV формате. Это можно сделать двумя способами:
-
На ВМ с установщиком выполните команду со списком пользователей в запросе:
-
На ВМ с установщиком выполните команду со списком пользователей в файле:





