Early 2008 we have posted a blog entry with a VB script that generates some pre-canned reports that are based on message tracking logs. The script has proven to be useful in understanding Microsoft's Exchange work load and guide some design decision for Exchange 2010. This script was developed by Todd Luttinen, Principal Program Manager at Microsoft.
During the development of Exchange 2010, we needed to extended our log analysis beyond just message tracking and to answer a variety of questions that assist with design decisions. This exposed a bottle neck with having a single script that has all the parsing and analyzers bundled together.
This resulted in the creation of ExLogAnalyzer by Victor Boctor, Principal Architect at Microsoft. ExLogAnalyzer was developed in C# with the following goals:
The main shift in this model, compared to the previous script, is that ExLogAnalyzer is built as a framework that can be used to analyze Exchange as well as possibly any other log format. New log types are supported via plugins called "extensions". Extensions are responsible for doing all the parsing and converting of log lines into events, where each event triggers a method and passes all the pre-parsed information as the event arguments. The specific reports are also implemented as plugins known as "analyzers", where each analyzer handles the events it is interested in and does the appropriate accounting and report generation (typically in CSV format). Implementing each analyzer in isolation (rather than one script that answers multiple questions) makes it much simpler to develop, understand and distribute such analyzers. Such extensions and analyzers can also be easily shared given the plugin model. The following simple diagram summarizes the architecture of this tool:
The ExLogAnalyzer is now released to the community with the following extensions / analyzers available out of the box:
Following are some samples to provide a feel of the outputs of some of these analyzers.
Mail Flow Visualizer (demonstrated possible visualization using directed graphs):
Message Size Distribution:
SmtpReceiveFormatterLog (log re-writing for splitting sessions and making them more readable):
# Session Id: 08CBDCECE3DDF231# Start Time (local): 2009-07-28T11:07:46.922# End Time (local): 2009-07-28T11:07:46.953# Start Time (UTC): 2009-07-28T18:07:46.922Z# End Time (UTC): 2009-07-28T18:07:46.953Z# Disconnect Type: Local# Connector Id: MyServer\MyServer_CrossForest# Local End Point: 157.54.7.153:25# Remote End Point: 157.54.71.39:4183 0000000,+,,0000000,*,None,Set Session Permissions0000000,*,SMTPSubmit SMTPAcceptAnyRecipient SMTPAcceptAuthenticationFlag SMTPAcceptAnySender SMTPAcceptAuthoritativeDomainSender BypassAntiSpam BypassMessageSizeLimit SMTPAcceptEXCH50 AcceptRoutingHeaders AcceptForestHeaders AcceptOrganizationHeaders SMTPAcceptXShadow,Set Session Permissions0000000,>,220 MyServer E14 Cross Forest,0000000,<,EHLO otherhost.otherforest.microsoft.com,0000000,>,250-MyServer.redmond.corp.contoso.com Hello [157.54.71.39],0000000,>,250-SIZE 10485760,0000000,>,250-PIPELINING,0000000,>,250-DSN,0000000,>,250-ENHANCEDSTATUSCODES,0000000,>,250-AUTH,0000000,>,250-8BITMIME,0000000,>,250-BINARYMIME,0000000,>,250-CHUNKING,0000000,>,250-XEXCH50,0000000,>,250 XSHADOW,0000000,<,XSHADOW 3333YTkxYjEtYzE1OC00NDcxLWI4OTktMDA2NDI5YmVmZWRlQFRLNUVYMTRNTFRXNjUxLndpbmdyb3VwLndpbmRlcGxveS5udGRldi5taWNyb3NvZnQuY39t,0000000,>,250 q7rdaFIdKk3NNRTbjRsjrQ==,0000000,<,MAIL FROM:<sender@contoso.com> SIZE=25477 XSHADOW=70136df4-c89b-4700-9654-b642c4eb78bb,0000000,*,08CBDCECE3DDF231;2009-07-28T18:07:46.922Z;1,receiving message0000000,<,RCPT TO:<receiver@contoso.com> ORCPT=rfc822;receiver2@contoso.com,0000000,>,250 2.1.0 Sender OK,0000000,>,250 2.1.5 Recipient OK,0000000,<,XEXCH50 1136 2,0000000,>,354 Send binary data,0000015,>,250 2.0.0 XEXCH50 OK,0000015,<,BDAT 25477 LAST,0000031,>,250 2.6.0 <DB82FD8C490D4F43ACE766C04B23A7050F0F12@someserver.otherforest.contoso.com> [InternalId=16796908] Queued mail for delivery,0000031,<,XQDISCARD 50,0000031,>,251 OK, no discard events,0000031,<,QUIT,0000031,>,221 2.0.0 Service closing transmission channel,0000031,-,,Local
# Session Id: 08CBDCECE3DDF231# Start Time (local): 2009-07-28T11:07:46.922# End Time (local): 2009-07-28T11:07:46.953# Start Time (UTC): 2009-07-28T18:07:46.922Z# End Time (UTC): 2009-07-28T18:07:46.953Z# Disconnect Type: Local# Connector Id: MyServer\MyServer_CrossForest# Local End Point: 157.54.7.153:25# Remote End Point: 157.54.71.39:4183
0000000,+,,0000000,*,None,Set Session Permissions0000000,*,SMTPSubmit SMTPAcceptAnyRecipient SMTPAcceptAuthenticationFlag SMTPAcceptAnySender SMTPAcceptAuthoritativeDomainSender BypassAntiSpam BypassMessageSizeLimit SMTPAcceptEXCH50 AcceptRoutingHeaders AcceptForestHeaders AcceptOrganizationHeaders SMTPAcceptXShadow,Set Session Permissions0000000,>,220 MyServer E14 Cross Forest,0000000,<,EHLO otherhost.otherforest.microsoft.com,0000000,>,250-MyServer.redmond.corp.contoso.com Hello [157.54.71.39],0000000,>,250-SIZE 10485760,0000000,>,250-PIPELINING,0000000,>,250-DSN,0000000,>,250-ENHANCEDSTATUSCODES,0000000,>,250-AUTH,0000000,>,250-8BITMIME,0000000,>,250-BINARYMIME,0000000,>,250-CHUNKING,0000000,>,250-XEXCH50,0000000,>,250 XSHADOW,0000000,<,XSHADOW 3333YTkxYjEtYzE1OC00NDcxLWI4OTktMDA2NDI5YmVmZWRlQFRLNUVYMTRNTFRXNjUxLndpbmdyb3VwLndpbmRlcGxveS5udGRldi5taWNyb3NvZnQuY39t,0000000,>,250 q7rdaFIdKk3NNRTbjRsjrQ==,0000000,<,MAIL FROM:<sender@contoso.com> SIZE=25477 XSHADOW=70136df4-c89b-4700-9654-b642c4eb78bb,0000000,*,08CBDCECE3DDF231;2009-07-28T18:07:46.922Z;1,receiving message0000000,<,RCPT TO:<receiver@contoso.com> ORCPT=rfc822;receiver2@contoso.com,0000000,>,250 2.1.0 Sender OK,0000000,>,250 2.1.5 Recipient OK,0000000,<,XEXCH50 1136 2,0000000,>,354 Send binary data,0000015,>,250 2.0.0 XEXCH50 OK,0000015,<,BDAT 25477 LAST,0000031,>,250 2.6.0 <DB82FD8C490D4F43ACE766C04B23A7050F0F12@someserver.otherforest.contoso.com> [InternalId=16796908] Queued mail for delivery,0000031,<,XQDISCARD 50,0000031,>,251 OK, no discard events,0000031,<,QUIT,0000031,>,221 2.0.0 Service closing transmission channel,0000031,-,,Local
Top Senders by Submit (analysis yielding CSV - full report has top 1000):
MailboxServer
Sender
Count
mbx01.contoso.com
support_person@contoso.com
162
sales_person@contoso.com
124
mbx02.contoso.com
ceo@contoso.com
61
Sender Distribution by Submit (analysis yielding CSV):
SentMsgRange
Percent
Percentile
1-5 msgs
23310
86.59%
6-10 msgs
3078
11.43%
98.02%
11-20 msgs
497
1.85%
99.87%
21-30 msgs
28
0.10%
99.97%
31+ msgs
7
0.03%
100.00%
Distribution Group Expansion Analyzer (analysis yielding CSV):
Recipient
RecipCount
ExpandCount
info@contoso.com
1
2242
skiing@contoso.com
43
848
parents@contoso.com
223
203
all@contoso.com
2325
17
Getting started
- Victor Boctor