Трассировка конвейера в Exchange 2013

Трассировка конвейера в Exchange 2013

www.microsoft.com

Трассировка конвейера в Exchange 2013 является очень полезной функцией и позволяет провести детальный анализ движения сообщений по транспортному конвейеру. Этот функционал будет особенно полезен при отладке работы транспортных агентов, которые, как известно, доступны на серверах почтовых ящиков (MBX) и пограничных транспортных серверах (Edge).

Трассировка конвейера в Exchange 2013

А теперь обо всем подробнее.

Принцип работы

По мере движения сообщений через транспортные службы Exchange оно подвергается изменениям (например во время прохождения агентов транспорта). Трассировка создает снимки сообщений каждый раз перед тем как сообщение подвергнется изменению на том или ином шаге (а этих шагов на самом деле достаточно много).

Снимки представляют из себя полноценное сообщение со всем содержимым, а потому вы можете отследить какие изменения были в него внесены на конкретном шаге.

Примечание: важно контролировать объем оставшегося свободного места на диске при включенной трассировке. Пути по умолчанию указывают на диск С в папку %ExchangeInstallPath%TransportRoles\Logs\Hub\PipelineTracing для Транспортной службы и в %ExchangeInstallPath%TransportRoles\Logs\Mailbox\PipelineTracing для Транспортной службы почтовых ящиков. Изменить пути можно командами Set-TransportService и Set-MailboxTransportService для соответствующих служб, указав параметр -PipelineTracingPath.

Захват сообщений идет только для определенных почтовых адресов.

Службы транспорта

Как известно, в Exchange есть целый набор транспортных служб, которые вместе являются транспортным конвейером. Трассировка конвейера доступна на двух из них — это Транспортная служба (MSExchangeTransport; присутствует на ролях MBX и Edge) и Транспортная служба почтовых ящиков (состоит из двух сервисов — MSExchangeDelivery и MSExchangeSubmission; есть только на серверах MBX).

В большинстве сценариев будет требоваться включение трассировки именно на Транспортной службе, в которую включен практически весь функционал транспортных агентов (например агенты антиспама, на которых отсеивается огромное количество сообщений).

Включение трассировки

Перед включением трассировки нужно обязательно задать почтовый адрес, сообщения с которого будут перехватываться трассировкой. Сделать это можно командой 1:

Set-TransportService exch01 -PipelineTracingSenderAddress e.vasilev@bissquit.ru

Примечание: в адресе отправителя можно указать адреса как внутри, так и снаружи организации. Если вы хотите отслеживать отправку NDR, в адресе отправителя укажите «<>».

Ну а далее можно включать саму трассировку:

Set-TransportService -PipelineTracingEnabled $true

Советую выбрать тот адрес электронной почты, сообщения на который не идут сплошным потоком, чтобы можно было спокойно собрать нужные данные и не завязнуть в мусоре.

Анализ данных

Дефолтные папки трассировки автоматически создаются сразу после того, как будут захвачены первые снимки сообщений. Для Транспортной службы это каталог %ExchangeInstallPath%TransportRoles\Logs\Hub\PipelineTracing.

Примечание: Для Транспортной службы почтовых ящиков путь будет %ExchangeInstallPath%TransportRoles\Logs\Mailbox\PipelineTracing.

Внутри каталога вы увидите папку MessageSnapshots, в ней и будут располагаться снимки сообщения.

Всего вы увидите три типа файлов 2 3:

  • Original.eml — оригинальное сообщение до внесения любых изменений;
  • RoutingXXXX.eml — создается на событиях OnEndOfHeaders и OnEndofData;
  • SmtpReceiveXXXX.eml — создается на событиях OnRoutedMessage и OnSubmittedMessage.

В строке с заголовком X-MessageSnapshot-Source вы можете обнаружить на каком событии находилось сообщение в момент снимка и какой транспортный агент применялся. Также вы, возможно, заметите, что агентов транспорта на самом деле значительно больше, чем при выводе команды:

Get-TransportAgent

Трассировка конвейера в Exchange 2013 01

Это объясняется тем, что есть множество системных агентов транспорта 4, которые для настройки недоступны.

Ну а просмотреть весь транспортный конвейер вы можете командой 5:

Get-TransportPipeline | fl

Вывод команды объемный, особенно на серверах Edge, поэтому в пример его не привожу.

Заключение

Трассировка конвейера может быть полезна при отладке агентов антиспама, будь то встроенные или сторонние агенты. Тем не менее, повседневным этот инструмент не назовешь. Используйте его аккуратно, желательно вместе со служебными адресами электронной почты (например добавьте к своему ящику на время тестирования адрес на подобии pipetracing20170614@domain.tld). Вероятность попадания на этот адрес случайных писем крайне мала.

Не забудьте отключить трассировку после окончания отладки!

Set-TransportService -PipelineTracingEnabled $false

На этом все.

comments powered by HyperComments