Логи Exchange 2013 Transport

MapiExceptionNetworkError: Unable to mount database

www.microsoft.com

Статья Логи Exchange 2013 Transport проливает свет на вопросы управления лог-файлами основной службы транспортного конвейера Exchange 2013 — Транспортной службы на серверах почтовых ящиков. Умение анализировать логи 1 является необходимым навыком, способным значительно облегчить процесс диагностики и поиска неисправностей. Тем не менее сначала вам придется разобраться в запутанных и сложных принципах работы транспортного конвейера, который включает в себя множество различных служб и компонентов.

Я рассчитываю, что в этом вам поможет данная статья, а также некоторые другие на аналогичную тематику (см. тег ).

Это вторая статья из серии, посвященной управлению логированием служб транспортного конвейера Exchange 2013, а вот полный список:

А также статьи о принципе работы этих служб:

Не забывайте об официальной документации.


Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики — Exchange 2013 — Установка, настройка, администрирование.


Логи Exchange 2013 Transport

Если говорить более конкретно, то речь пойдет о службе:

  • Транспортная служба на серверах почтовых ящиков (Отображаемое имя — Microsoft Exchange Transport, сокращенное — MSExchangeTransport);

За управление отвечают два командлета:

  • Get-TransportService 2
  • Set-TransportService 3

Начнем издалека.

1. Убедимся, что все пути лог-файлов определены и ведение журналов активировано. Сделать это можно с помощью командлета Get-TransportService в Exchange Management Shell:

Get-TransportService -Identity exch02 | fl *logpath*

Логи Exchange 2013 Transport 01

Стоит отметить, что активировать ведение журналов можно двумя способами — определив путь (значение $null отключает логи компонента) и установив необходимое значение параметра включения/отключения логов. Однако у некоторых компонентов параметр включения/отключения отсутствует (например у ActiveUserStatistics). Если же вы выставите значение $null для пути лог-файлов у компонента, который будет иметь значение $true параметра включения/отключения логов, то в журнале событий вы увидите ошибки. Обратите на это внимание.

На скриншоте выше определены пути логов почти всех компонентов. Исключение только одно — DnsLog. Параметры остальных (HttpProtocol, TransportSync, TransportSyncHubHealth, Journal, а также WLM) зарезервированы Microsoft для собственного использования, в них соваться смысла нет, к тому же документации по ним вы не найдете в открытых источниках.

Посмотрим какие компоненты имеют отдельный параметр для включения логов:

Get-TransportService -Identity exch02 | fl *logenabled*

Логи Exchange 2013 Transport 02

Итак, по умолчанию практически все логи активированы. Это хорошо.

2. Далее включим подробное ведение журнала на каждом соединителе отправки/получения — в EAC — Поток обработки почты\Соединители получения\ — выбираем соединители роли HubTransport, заходим в его свойства, выставляем указатель на Уровень ведения журнала протокола — Подробно. В этом же разделе зайдите в соединители отправки и активируйте логи на них.

В PowerShell это можно сделать одной командой для каждого типа соединителей сразу всех ролей:

Get-ReceiveConnector | Set-ReceiveConnector -ProtocolLoggingLevel "Verbose"
Get-SendConnector | Set-SendConnector -ProtocolLoggingLevel "Verbose"

Команды выполняются без какого-либо дополнительного вывода:

Логи Exchange 2013 FrontEnd Transport 03

Если хотите отслеживать данные только конкретных соединителей, укажите в явном виде их имена.

3. Ну и последняя задача — нужно активировать журнал на встроенных соединителях отправки. Сделать это можно основным командлетом для управления службы Exchange 2013 Transport — Set-TransportService — и только через EMS (ниже пример на основе моего тестового сервера exch02):

Set-TransportService -Identity exch02 -IntraOrgConnectorProtocolLoggingLevel "Verbose"

На этом все предварительные настройки завершены и пришло время сделать сводную таблицу по логам Транспортной службы на серверах почтовых ящиках:

Путь до log-файлов Назначение
%ExchangeInstallPath%TransportRoles\Logs\Hub\Connectivity журнал подключений
%ExchangeInstallPath%TransportRoles\Logs\MessageTracking журнал отслеживания сообщений
%ExchangeInstallPath%Logging\IRMLogs журнал управления правами на доступ к данным
%ExchangeInstallPath%TransportRoles\Logs\Hub\ActiveUsersStats журнал статистики активности для каждого пользователя
%ExchangeInstallPath%TransportRoles\Logs\Hub\ServerStats журнал статистики сервера. Недоступен с Exchange 2013 cu7 и более поздних версий
%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive журнал протокола для всех получающих соединителей данного сервера
%ExchangeInstallPath%TransportRoles\Logs\Hub\Routing журнал таблицы маршрутизации
%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend журнал протокола для соединителей отправки
%ExchangeInstallPath%TransportRoles\Logs\Hub\QueueViewer журнал очереди
%ExchangeInstallPath%TransportRoles\Logs\Hub\AgentLog журнал агента

Для отслеживания потока почты самые полезные логи хранятся в каталогах:

  • %ExchangeInstallPath%TransportRoles\Logs\MessageTracking
  • %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive
  • %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend

Через Транспортную службу на серверах MBX любое сообщение, отправленное или полученное, пройдет в любом случае. Этого нельзя сказать про другие службы транспортного конвейера Exchange 2013 — Транспортную службу почтовых ящиков на серверах MBX, а также Транспортную службу переднего плана на серверах с ролью CAS. Конечно письмо никогда не попадет на Транспортную службу серверов Edge, если оно идет от внутреннего отправителя к внутреннему получателю в организации, но это вполне логично. Подробнее читайте в статье Поток обработки почты при разной топологии Exchange 2013.

На этом статья завершается. К сожалению, за один раз я не смогу охватить и процесс анализа логов, но вы всегда сможете узнать эту информацию из официальной документации 4 5 6.

comments powered by HyperComments