How to Monitor Microsoft Exchange
Below are some recommendations for monitoring a Microsoft Exchange installation. These steps generally refer to Exchange 2010, but most of the details also apply
to other versions as well.
PA Server Monitor's Smart Config procedure will create default monitors to check the overall health of the server that Exchange is installed on.
To automatically create monitors that watch for Exchange-specific details, download the Exchange Monitoring Template and import it to each server that
is running an Exchange role. The template will automatically get tailored to the specific roles running on a server.
Note: We are always trying to improve. If you have suggestions for this template, please contact us.
Exchange Roles
Exchange 2010 is split up into a variety of roles. These roles consist of different software, services and performance counters. The roles
can be installed on the same server or separate servers. Shown below are services and counters to be monitored regardless of where it is installed.
Service Note: Services marked with a * are optional or not automatically started. If the service isn't set to Automatic start when the template is imported, it will not be monitored.
Performance Counter Note: Counters that are marked with (c) are increasing counters (usually error counters). Any time they change value should be looked into. Also, many of the performance counter thresholds
depend on the size of the Exchange installation (ie how many mail boxes, servers, etc). The imported template monitors will
be in Automatic Training mode for a few days so the thresholds can be monitored and automatically adjusted to fit the specific
servers being monitored.
Mailbox Role
Services
Microsoft Exchange Active Directory Topology | MSExchangeADTopology |
Microsoft Exchange Information Store | MSExchangeIS |
Microsoft Exchange Mail Submission | MSExchangeMailSubmission |
Microsoft Exchange Mailbox Assistants | MSExchangeMailboxAssistants |
Microsoft Exchange Monitoring* | MSExchangeMonitoring |
Microsoft Exchange Replication Service* | MSExchangeRepl |
Microsoft Exchange RPC Client Access* | MSExchangeRPC |
Microsoft Exchange Search Indexer | MSExchangeSearch |
Microsoft Exchange Search Indexer* | MSExchangeSearch |
Microsoft Exchange Server Extension for Windows Server Backup | WSBExchange |
Microsoft Exchange Service Host | MSExchangeServiceHost |
Microsoft Exchange System Attendant | MSExchangeSA |
Microsoft Exchange Throttling | MSExchangeThrottling |
Microsoft Exchange Transport Log Search* | MSExchangeTransportLogSearch |
Microsoft Search (Exchange Server)* | msftesql-Exchange |
Performance Counters
Database\Database Page Fault Stalls/sec | =0 |
Database\Log Record Stalls/sec | <100 |
Database\Log Threads Waiting | <10 |
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute | <10 |
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min | <50 |
MSExchange ADAccess Processes(*)\LDAP Read Time | <100 |
MSExchange ADAccess Processes(*)\LDAP Search Time | <100 |
MSExchange Assistants - Per Assistant(*)\Average Event Processing Time in Seconds | <2 |
MSExchange Calendar Attendant\Requests Failed | =0 (c) |
MSExchange Database ==> Instances(*)\Log Generation Checkpoint Depth | <500 |
MSExchange Database Instances(*)\I/O Database Reads Average Latency | <50 |
MSExchange Database Instances(*)\I/O Database Writes Average Latency | <50 |
MSExchange Database(Information Store)\Database Cache % Hit | >= 90 |
MSExchange Database(Information Store)\Log Record Stalls/sec | <100 |
MSExchange Database(Information Store)\Log Threads Waiting | <10 |
MSExchange Database(Information Store)\Version buckets allocated | <12000 |
MSExchange Database\I/O Database Reads (Attached) Average Latency | <1000 |
MSExchange Database\IO Log Read Average Latency | <1000 |
MSExchange Database\IO Log Writes Average Latency | <10 |
MSExchange Database\Log Bytes Write/sec | <10000000 |
MSExchange Replication(*)\CopyQueueLength | =0 |
MSExchange Resource Booking\Requests Failed | =0 (c) |
MSExchange Search Indices(*)\ Average Document Indexing Time | <30000 |
MSExchange Store Interface(*)\RPC Requests failed (%) | =0 |
MSExchange Store Interface(*)\RPC Slow Requests (%) | =0 |
MSExchange Store Interface(_Total)\RPC Latency average (msec) | <100 |
MSExchange Store Interface(_Total)\RPC Requests outstanding | =0 |
MSExchangeIS Client (*)\RPC Average Latency | <50 |
MSExchangeIS Mailbox(*)\Search Task Rate | <10 |
MSExchangeIS Mailbox(*)\Slow Findrow Rate | <10 |
MSExchangeIS Mailbox(_Total)\Messages Queued for Submission | <50 |
MSExchangeIS Mailbox\RPC Averaged Latency | <11 |
MSExchangeIS Public(_Total)\Messages Queued for Submission | <20 |
MSExchangeIS Public(_Total)\Replication Receive Queue Size | <100 |
MSExchangeIS\Client: RPCs Failed:Server Too Busy/sec | =0 |
MSExchangeIS\RPC Averaged Latency | <11 |
MSExchangeIS\RPC Requests | <70 |
MSExchangeIS\Slow QP Threads | <10 |
MSExchangeIS\Slow Search Threads | <10 |
MSExchangeMailSubmission(*)\Failed Submissions Per Second | =0 |
MSExchangeMailSubmission(*)\Hub Servers In Retry | =0 |
MSExchangeMailSubmission(*)\Temporary Submission Failures/sec | =0 |
Process(Microsoft.Exchange.Search.ExSearch)\% Processor time | <5 |
Process(MSExchangeMailboxAssistants)\% Processor Time | <5 |
Client Access Role
Services
Internet Information Services Admin Service | IISAdmin |
Microsoft Exchange Active Directory Topology Service | MSExchangeADTopology |
Microsoft Exchange Address Book | MSExchangeAB |
Microsoft Exchange File Distribution Service | MSExchangeFDS |
Microsoft Exchange Forms-Based Authentication | MSExchangeFBA |
Microsoft Exchange IMAP4* | MSExchangeIMAP4 |
Microsoft Exchange Mailbox Replication Service* | MSExchangeMailboxReplication |
Microsoft Exchange Monitoring* | MSExchangeMonitoring |
Microsoft Exchange POP3* | MSExchangePOP3 |
Microsoft Exchange Protected Service Host | MSExchangeProtectedServiceHost |
Microsoft Exchange RPC Client Access | MSExchangeRPC |
Microsoft Exchange Service Host | MSExchangeServiceHost |
World Wide Web Publishing Service | W3SVC |
Performance Counters
ASP.NET Applications(*)\Requests In Application Queue | >0 |
ASP.NET\Application Restarts | =0 (c) |
ASP.NET\Request Wait Time | =0 |
ASP.NET\Worker Process Restarts | =0 (c) |
MSExchange ActiveSync\Requests Queued | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute | <10 |
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min | <50 |
MSExchange ADAccess Processes(*)\LDAP Read Time | <100 |
MSExchange ADAccess Processes(*)\LDAP Search Time | <100 |
MSExchange Availability Service\Average Time to Process a Free Busy Request | <5 |
MSExchange Control Panel\Outbound Proxy Requests - Average Response Time | <6000 |
MSExchange Control Panel\Requests - Average Response Time | <6000 |
MSExchange OWA\Average Search Time | <5000 |
MSExchange RpcClientAccess\RPC Averaged Latency | <250 |
MSExchange RpcClientAccess\RPC Requests | <40 |
MSExchangeAB\NSPI RPC Browse Requests Average Latency | <1000 |
MSExchangeAB\NSPI RPC Requests Average Latency | <1000 |
MSExchangeAB\Referral RPC Requests Average Latency | <1000 |
MSExchangeFDS:OAB(*)\Download Task Queued | =0 (c) |
RPC/HTTP Proxy\Number of Failed Back-End Connection attempts per Second | =0 |
Hub Transport Role
Services
Microsoft Exchange Active Directory Topology Service | MSExchangeADTopology |
Microsoft Exchange Anti-spam Update* | MSExchangeAntispamUpdate |
Microsoft Exchange EdgeSync* | MSExchangeEdgeSync |
Microsoft Exchange Monitoring* | MSExchangeMonitoring |
Microsoft Exchange Protected Service Host | MSExchangeProtectedServiceHost |
Microsoft Exchange Service Host | MSExchangeServiceHost |
Microsoft Exchange Transport Log Search* | MSExchangeTransportLogSearch |
Microsoft Exchange Transport | MSExchangeTransport |
Microsoft Search (Exchange Server)* | msftesql-Exchange |
Performance Counters
\MSExchangeTransport Queues(_total)\Active Mailbox Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Active Non-Smtp Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Active Remote Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues) | <5000 |
\MSExchangeTransport Queues(_total)\Largest Delivery Queue Length | <200 |
\MSExchangeTransport Queues(_total)\Poison Queue Length | =0 |
\MSExchangeTransport Queues(_total)\Retry Mailbox Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Retry Non-Smtp Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Submission Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Unreachable Queue Length | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute | <10 |
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min | <50 |
MSExchange ADAccess Processes(*)\LDAP Read Time | <100 |
MSExchange ADAccess Processes(*)\LDAP Search Time | <100 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Version buckets allocated | <200 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Record Stalls/sec | <10 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Threads Waiting | <10 |
MSExchange Extensibility Agents(*)\Average Agent Processing Time (sec) | <20 |
Edge Transport Role
Services
Microsoft Exchange ADAM | ADAM_MSExchange |
Microsoft Exchange Anti-spam Update* | MSExchangeAntispamUpdate |
Microsoft Exchange Credential Service | MSExchangeEdgeCredential |
Microsoft Exchange Monitoring* | MSExchangeMonitoring |
Microsoft Exchange Service Host | MSExchangeServiceHost |
Microsoft Exchange Transport Log Search* | MSExchangeTransportLogSearch |
Microsoft Exchange Transport | MSExchangeTransport |
Performance Counters
\MSExchangeTransport Queues(_total)\Active Mailbox Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Active Non-Smtp Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Active Remote Delivery Queue Length | <250 |
\MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues) | <5000 |
\MSExchangeTransport Queues(_total)\Largest Delivery Queue Length | <200 |
\MSExchangeTransport Queues(_total)\Poison Queue Length | =0 |
\MSExchangeTransport Queues(_total)\Retry Mailbox Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Retry Non-Smtp Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Submission Queue Length | <100 |
\MSExchangeTransport Queues(_total)\Unreachable Queue Length | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute | <10 |
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min | <50 |
MSExchange ADAccess Processes(*)\LDAP Read Time | <100 |
MSExchange ADAccess Processes(*)\LDAP Search Time | <100 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Version buckets allocated | <200 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Record Stalls/sec | <10 |
MSExchange Database ==> Instances(edgetransport/Transport Mail Database)\Log Threads Waiting | <10 |
MSExchange Extensibility Agents(*)\Average Agent Processing Time (sec) | <20 |
Unified Messaging Role (Optional)
Services
Microsoft Exchange Active Directory Topology Service | MSExchangeADTopology |
Microsoft Exchange File Distribution | MSExchangeFDS |
Microsoft Exchange Monitoring* | MSExchangeMonitoring |
Microsoft Exchange Service Host | MSExchangeServiceHost |
Microsoft Exchange Speech Engine | MSSpeechService |
Microsoft Exchange Unified Messaging | MSExchangeUM |
Performance Counters
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time | <100 |
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute | <10 |
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min | <50 |
MSExchange ADAccess Processes(*)\LDAP Read Time | <100 |
MSExchange ADAccess Processes(*)\LDAP Search Time | <100 |
MSExchangeUMAvailability\% of Failed Mailbox Connection Attempts Over the Last Hour | <5 |
MSExchangeUMAvailability\% of Inbound Calls Rejected by the UM Service Over the Last Hour | <5 |
MSExchangeUMAvailability\% of Inbound Calls Rejected by the UM Worker Process Over the Last Hour | <5 |
MSExchangeUMAvailability\% of Messages Successfully Processed Over the Last Hour | >= 95 |
MSExchangeUMAvailability\% of Partner Voice Message Transcription Failures Over the Last Hour | <5 |
MSExchangeUMAvailability\Calls Disconnected on Irrecoverable Internal Error | =0 (c) |
MSExchangeUMAvailability\Directory Access Failures | =0 (c) |
MSExchangeUMAvailability\Total Inbound Calls Rejected by the UM Service | =0 (c) |
MSExchangeUMAvailability\Total Inbound Calls Rejected by the UM Worker Process | =0 (c) |
MSExchangeUMCallAnswer\\Calls Disconnected by Callers During UM Audio Hourglass | =0 (c) |
MSExchangeUMPerformance\Operations over Six Seconds | =0 (c) |
References
http://technet.microsoft.com/en-us/library/dd335215.aspx
http://technet.microsoft.com/en-us/library/ff367923.aspx
http://technet.microsoft.com/en-us/library/ee423542.aspx
http://technet.microsoft.com/en-us/library/bb124699.aspx#SA
http://technet.microsoft.com/en-us/library/bb331967.aspx