Отчеты с помощью утилиты Log Parser из журналов отслеживания сообщений (Message Tracking Logs)
Теперь давайте воспользуемся журналами отслеживания сообщений. Эти журналы следует выбирать, если вы ищите информацию относительно общего объема трафика и активности пользователей. В этой статьей я использовал журналы отслеживания сообщений с сервера Edge. В случае если в топологии сети отсутствует сервер Exchange Edge, журналы с сервера Hub Transport, граничащего с интернетом, тоже подойдут.
Одним из самых частых вопросов, задаваемых администраторами почтовых систем, является следующий вопрос: «Кто из внутренних пользователей отправляет большинство почты?» Ответ можно с легкостью найти путем выполнения следующего кода анализатора журналов.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 sender-address, Count(*) AS messagesSent FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY messagesSent DESC\" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID |
Обратите внимание, что я отфильтровал данные с помощью connector-id='edgesync - default-first-site-name to internet'. Таким способом я могу легко получить данные об исходящих и входящих сообщениях, в зависимости от выбранного мной коннектора. На рисунке 14 показаны пользователи, отправившие наибольшее количество сообщений.
Рисунок 14: Самые активные пользователи по количеству сообщений
Хотя предыдущая сетка данных показывала самых активных отправителей с самым большим количеством отправленных сообщений, администраторов может интересовать тот же результат, но уже относительно размеров сообщений. Анализируя те же журналы, анализатор журналов может предоставить график, показанный на рисунке 15.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 sender-address, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopVolumeSenders.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY TotalBytes(MB) DESC\" -chartType:Barclustered3d -i:CSV -nSkipLines:4 -o:CHART |
Рисунок 15: Самые активные пользователи по объему трафика отправленных сообщений
Мы также можем объединить предыдущие результаты, которые будут показывать самых активных отправителей по количеству отправленных сообщений, а также объему трафика. Результаты следующей команды показаны на рисунке 16.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 sender-address, Count(*) AS messagesSent, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopSendersCombined.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY messagesSent DESC\" -chartType:BarClustered3D -i:CSV -nSkipLines:4 -o:CHART |
Рисунок 16: Самые активные отправители по количеству сообщений и объему трафика
Администраторов также интересует ответ на следующий вопрос: «Какие пользователи в моей организации получают больше всего сообщений»? Эту информацию можно получить из комбинированного графика, как показано на рисунке 17, который является результатом выполнения следующей команды в анализаторе журналов.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 recipient-address, Count(*) AS messagesRec, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopReceiversCombined.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - inbound to default-first-site-name' GROUP BY recipient-address ORDER BY messagesRec DESC\" -chartType:BarClustered3d -i:CSV -nSkipLines:4 -o:CHART |
Рисунок 17: Самые активные получатели по количеству сообщений и объему трафика
Следующий запрос создаст комбинированный обзор (рисунок 18) всего входящего и исходящего трафика в байтах (Мегабайтах, если быть точным).
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT CASE connector-id WHEN 'edgesync - default-first-site-name to internet' THEN 'MB Sent' WHEN 'edgesync - inbound to default-first-site-name' THEN 'MB Received' ELSE connector-id END AS connector-id2, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO totalbytessendreceive.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' GROUP BY connector-id2\" -i:CSV -nSkipLines:4 -o:CHART -chartType:Column3D -chartTitle:\"Total Bytes Sent/Received (MB)\" |
Рисунок 18: Общее количество байт полученных/отправленных (MБ)
В первых отчетах этого раздела мы рассмотрели внутренних пользователей. Если мы хотим получить такую же информацию о внешних пользователях, нам лишь нужно немного настроить анализатор журналов. Например, самые активные отправители, присылающие большее количество сообщений в вашу организацию?
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 sender-address, Count(*) AS messagesRec FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - inbound to default-first-site-name' GROUP BY sender-address ORDER BY messagesRec Desc\" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID |
Рисунок 19: Самые активные внешние отправители (количество сообщений)
MicrosoftExchange329e71ec88ae4615bbc36ab6ce41109e@mycorp.org, отраженная в предыдущей сетке данных, является внутренней учетной записью, отвечающей за отправку уведомлений о состоянии доставки сообщений (Delivery Status Notifications - DSN). Если вы хотите отфильтровать ее, просто добавьте следующее условие в предыдущий запрос:
AND sender-address<>' MicrosoftExchange329e71ec88ae4615bbc36ab6ce41109e@mycorp.org'
Кому мои пользователи отправляют больше всего сообщений? Кто самые активные внешние получатели по количеству сообщений и объему трафика?
Следующий запрос анализатора журналов создаст комбинированный график, как показано на рисунке 20.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 recipient-address, Count(*) AS messagesSent, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopExternalReceiversCombined.gif from C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY recipient-address ORDER BY messagesSent DESC\" -chartType:BarStacked3d -i:CSV -nSkipLines:4 -o:CHART |
Рисунок 20: Самые активные внешние получатели (по количеству сообщений и объему трафика)
Отчеты в Log Parser из журналов IIS
Последние отчеты Log Parser, которые рассматриваются в этой статье, будут получать информацию из журналов IIS. Хотя журналы IIS генерируются не сервером Exchange, они содержат очень ценную информацию относительно Outlook Web Access (OWA), Outlook Anywhere, Exchange ActiveSync и даже Entourage, в случае, если некоторые машины Macs имеют доступ к вашему серверу Exchange.
Эти журналы расположены на серверах Exchange CAS, к которым пользователи подключаются (напрямую или косвенно), чтобы получить доступ к OWA или для синхронизации своих мобильных устройств.
Первый запрос выдает результаты, показанные на рисунке 21, которые показывают пользователей, чаще всего подключающихся к внутренним серверам Exchange CAS, чтобы воспользоваться OWA.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 cs-username, Count(*) AS OWAHits INTO OWAActivity.gif FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '/OWA/' AND cs-username IS NOT NULL GROUP BY cs-username ORDER BY OWAHits DESC\" -charttype:Bar3D -o:CHART -view:ON |
Рисунок 21: Самые активные пользователи OWA
Для получения информации о самых активных пользователях ActiveSync используется следующая команда анализатора журналов. Результаты этой команды показаны на рисунке 22 в форме сетки данных.
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT cs-username, Count(*) AS EASHits FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '%%Microsoft-Server-ActiveSync%%' AND cs-username IS NOT NULL GROUP BY cs-username ORDER BY EASHits DESC\" -rtp:-1 -o:DATAGRID |
Рисунок 22: Самые активные пользователи EAS
Журналы IIS содержат не только информацию о тех пользователя, которые чаще всего используют ActiveSync, но и том, какие устройства они используют для подключения к серверу Exchange. Эту информацию можно получить с помощью поля cs(user-agent), используя его в следующем запросе:
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT cs(user-agent), count(*) AS Devices INTO devices.gif FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '%%microsoft-server-activesync%%' AND cs-username IS NOT NULL AND cs(User-Agent) IS NOT NULL GROUP BY cs(User-Agent) ORDER BY Devices DESC\" -charttype:pieexploded3d -ChartTitle:\"Device Activity by Type\" -categories:OFF |
Очевидно, что устройства в моих журналах определяют себя как «общие» устройства ('generic' devices) (MSFT-PPC), как видно на рисунке 23.
Рисунок 23: Мобильные устройства
Еще одной полезной информацией является распространение пользователей, использующих OWA в течение дня. Для создания графика с почасовыми пиками использования OWA (рисунок 24) выполняем следующий запрос:
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TO_STRING(time, 'HH') AS Hour, COUNT(*) AS Hits INTO hitPerSecond.jpg FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log GROUP BY Hour ORDER BY Hour ASC\" -i:IISW3C -o:CHART -chartType:ColumnClustered -chartTitle:\"Hourly Hits\" -groupSize:420x280 |
Рисунок 24: Использование OWA
Временные рамки
До этого момента все показанные мной примеры использовали доступные журналы для создания отчетов. Я не беспокоился об определении более узких временных рамок в журналах Exchange 2007. Однако есть способ сделать это, и здесь используется придаточное предложение с вопросительным словом ГДЕ для ограничения временных рамок.
Чтобы использовать слово «ГДЕ», нужно изменить строку для времени и даты в журнале, поскольку формат этих конкретных полей может варьироваться в различных журналах Exchange.
В качестве примера, нижеприведенная таблица содержит изменения выражений в Log Parser для извлечения даты и/или времени из журналов протоколов и журналов отслеживания сообщений (с журналами IIS дело обстоит немного иначе).
Для журналов агентов (Agent Logs) поля даты и времени называются Timestamp. Чтобы использовать те же выражения, которые перечислены в Таблице 2, замените [#Fields: date-time] на [#Fields: Timestamp].
Таблица 2: Общие журналы Exchange
Извлечение | Выражение Log Parser | Формат |
Дата | EXTRACT_PREFIX([#Fields: date-time],0,'T') | YYYY-MM-DD |
Время | EXTRACT_PREFIX(TO_STRING(EXTRACT_SUFFIX([#Fields: date-time],0,'T')),0,'.') | HH:MM:SS |
Дата и время | TO_TIMESTAMP ( EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'.') , 'yyyy-mm-ddThh:mm:ss') | TO_TIMESTAMP (Log Parser time stamp type) |
Теперь давайте выполним запрос самых активных внутренних отправителей, но для сообщений, отправленных после '2009-09-17 11:30:00'. Команда будет выглядеть следующим образом:
"C:\Program Files (x86)\Log Parser 2.2\logparser.exe\" \"SELECT TOP 10 sender-address, Count(*) AS messagesSent FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' AND TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'.') , 'yyyy-mm-ddThh:mm:ss') > TO_TIMESTAMP ('2009-09-17 11:30:00','yyyy-mm-dd hh:mm:ss') GROUP BY sender-address ORDER BY messagesSent Desc\" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID |
Заключение
На этом закончим вторую часть этого цикла статей и рассмотрение отчетов, создаваемых в утилите Log Parser. Утилита Log Parser действительно является мощными инструментом, и я только что показал вам лишь некоторые ее возможности. Думаю, вам захочется поработать с параметром 'chartType, изменяя некоторые графики, созданные в первой и второй частях этого цикла.
Дополнительные ссылки