Статья Логи Exchange 2013 Transport проливает свет на вопросы управления лог-файлами основной службы транспортного конвейера Exchange 2013 – Транспортной службы на серверах почтовых ящиков. Умение анализировать логи 1 является необходимым навыком, способным значительно облегчить процесс диагностики и поиска неисправностей. Тем не менее сначала вам придется разобраться в запутанных и сложных принципах работы транспортного конвейера, который включает в себя множество различных служб и компонентов.
Я рассчитываю, что в этом вам поможет данная статья, а также некоторые другие на аналогичную тематику (см. тег Exchange 2013 transport).
Это вторая статья из серии, посвященной управлению логированием служб транспортного конвейера Exchange 2013, а вот полный список:
- Логи Exchange 2013 FrontEnd Transport
- Логи Exchange 2013 Transport
- Логи Exchange 2013 Mailbox Transport
- Логи Exchange 2013 Edge Transport
А также статьи о принципе работы этих служб:
- Служба Exchange 2013 FrontEnd Transport
- Служба Exchange 2013 Transport
- Служба Exchange 2013 Mailbox Transport
- Служба Exchange 2013 Edge Transport
Не забывайте об официальной документации.
Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики – Exchange 2013 — Установка, настройка, администрирование.
Логи Exchange 2013 Transport
Если говорить более конкретно, то речь пойдет о службе:
- Транспортная служба на серверах почтовых ящиков (Отображаемое имя — Microsoft Exchange Transport, сокращенное — MSExchangeTransport);
За управление отвечают два командлета:
Начнем издалека.
1. Убедимся, что все пути лог-файлов определены и ведение журналов активировано. Сделать это можно с помощью командлета Get-TransportService в Exchange Management Shell:
1 |
Get-TransportService -Identity exch02 | fl *logpath* |
Стоит отметить, что активировать ведение журналов можно двумя способами – определив путь (значение $null отключает логи компонента) и установив необходимое значение параметра включения/отключения логов. Однако у некоторых компонентов параметр включения/отключения отсутствует (например у ActiveUserStatistics). Если же вы выставите значение $null для пути лог-файлов у компонента, который будет иметь значение $true параметра включения/отключения логов, то в журнале событий вы увидите ошибки. Обратите на это внимание.
На скриншоте выше определены пути логов почти всех компонентов. Исключение только одно – DnsLog. Параметры остальных (HttpProtocol, TransportSync, TransportSyncHubHealth, Journal, а также WLM) зарезервированы Microsoft для собственного использования, в них соваться смысла нет, к тому же документации по ним вы не найдете в открытых источниках.
Посмотрим какие компоненты имеют отдельный параметр для включения логов:
1 |
Get-TransportService -Identity exch02 | fl *logenabled* |
Итак, по умолчанию практически все логи активированы. Это хорошо.
2. Далее включим подробное ведение журнала на каждом соединителе отправки/получения – в EAC – Поток обработки почты\Соединители получения\ – выбираем соединители роли HubTransport, заходим в его свойства, выставляем указатель на Уровень ведения журнала протокола – Подробно. В этом же разделе зайдите в соединители отправки и активируйте логи на них.
В PowerShell это можно сделать одной командой для каждого типа соединителей сразу всех ролей:
1 |
Get-ReceiveConnector | Set-ReceiveConnector -ProtocolLoggingLevel "Verbose" |
1 |
Get-SendConnector | Set-SendConnector -ProtocolLoggingLevel "Verbose" |
Команды выполняются без какого-либо дополнительного вывода:
Если хотите отслеживать данные только конкретных соединителей, укажите в явном виде их имена.
3. Ну и последняя задача – нужно активировать журнал на встроенных соединителях отправки. Сделать это можно основным командлетом для управления службы Exchange 2013 Transport – Set-TransportService – и только через EMS (ниже пример на основе моего тестового сервера exch02):
1 |
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.