Создание графических отчетов в Exchange 2007 (часть 2)

OSzone.net » Microsoft » Exchange Server » Exchange Server 2007 » Создание графических отчетов в Exchange 2007 (часть 2)
Автор: Генрик Валзер
Иcточник: www.msexchange.ru
Опубликована: 01.12.2009

Отчеты с помощью утилиты 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

<div class= *

Рисунок 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, изменяя некоторые графики, созданные в первой и второй частях этого цикла.

Дополнительные ссылки


Ссылка: http://www.oszone.net/10775/Exchange-2007