Как импортировать архивные письма и пользовательские фильтры из 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-adress:8888
. - Нажмите на кнопку
в правом верхнем углу, выберите пункт Продукты.
-
Включите компонент Импорт данных из Microsoft Exchange.
-
Нажмите кнопку Сохранить.
- Следуя подсказкам в интерфейсе, добавьте и запустите новые роли.
Настройка сервиса производится через переменные окружения в панели администратора в разделе Настройки.
Чтобы настроить сервис:
- Перейдите в раздел Настройки -> Переменные окружения.
-
В левом меню найдите сервис exchange-importer.
- Нажмите на кнопку + Добавить.
-
Настройте основные параметры для миграции In-Place архивов:
- 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_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 — количество одновременно работающих процессов обрабатывающих задачи из очереди.
-
Выполните шаг 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.
Как импортировать пользовательские фильтры
В сервис нужно передать список адресов пользователей, для которых необходимо выполнить импорт.
Загрузить пользователей из 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 (из веб-интерфейса установщика).
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.
Как получить данные по каждому правилу
После миграции фильтров можно получить данные по каждому правилу в 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 формате. Это можно сделать двумя способами:
-
На ВМ с установщиком выполните команду со списком пользователей в запросе:
-
На ВМ с установщиком выполните команду со списком пользователей в файле: