ZenPacks

Microsoft Exchange ZenPack

This ZenPack provides support for monitoring Microsoft Exchange Server. Monitoring is performed using the Windows Remote Management (WinRM) to collect Perfmon data.

Support

This ZenPack is included with commercial versions of Zenoss and enterprise support for this ZenPack is provided to Zenoss customers with an active subscription.

Releases

Version 1.0.4- Download
Released on 2016/07/13
Requires Microsoft Windows ZenPack,PythonCollector ZenPack
Compatible with Zenoss Resource Manager 4.2.x, Zenoss Resource Manager 5.0.x, Zenoss Resource Manager 5.1.x
Version 1.0.3- Download
Released on 2016/06/10
Requires Microsoft Windows ZenPack,PythonCollector ZenPack
Compatible with Zenoss Resource Manager 4.2.x, Zenoss Resource Manager 5.0.x

Background

This ZenPack provides support for monitoring Microsoft Exchange Server. Monitoring is performed using the Windows Remote Management (WinRM) to collect Perfmon data.

Features

The features added by this ZenPack can be summarized as follows. They are each detailed further below.

  • Discovery of Exchange components
  • Performance monitoring
  • Service monitoring

Discovery

The following components will be automatically discovered through the Windows server address, username and password you provide. The properties and relationships will be periodically updated by modeling.

Exchange Server
Attributes: Name, Version, Is Client Access Role, Is Mailbox Role, Is Hub Transport Role
Mailbox Database
Attributes: Name, Exchange Server, Is Mailbox Database, Is Public Folder Database

Performance Monitoring

Perfmon counters are collected using the PowerShell Get-Counter Cmdlet within a remove shell (WinRS). The following metrics will be collected every 5 minutes by default.

ClientAccessRole
  • \ASP.NET\Application Restarts
  • \ASP.NET\Request Wait Time
  • \ASP.NET\Worker Process Restarts
  • \MSExchangeAB\NSPI Connections Current
  • \MSExchangeAB\NSPI Connections/sec
  • \MSExchangeAB\NSPI RPC Browse Requests Average Latency
  • \MSExchangeAB\NSPI RPC Requests Average Latency
  • \MSExchangeAB\NSPI RPC Requests/sec
  • \MSExchangeAB\Referral RPC Requests Average Latency
  • \MSExchangeAB\Referral RPC Requests/sec
  • \MSExchangeAutodiscover\Requests/sec
  • \MSExchange Availability Service\Availability Requests (sec)
  • \MSExchange Availability Service\Average Time to Process a Free Busy Request
  • \MSExchange ActiveSync\Current Requests
  • \MSExchange ActiveSync\Ping Commands Pending
  • \MSExchange ActiveSync\Requests/sec
  • \MSExchange ActiveSync\Sync Commands Pending
  • \MSExchange ActiveSync\Sync Commands/sec
  • \MSExchange Control Panel\ASP.Net Request Failures/sec
  • \MSExchange Control Panel\Explicit Sign-On Inbound Proxy Requests/sec
  • \MSExchange Control Panel\Explicit Sign-On Inbound Proxy Sessions/sec
  • \MSExchange Control Panel\Explicit Sign-On Outbound Proxy Requests/sec
  • \MSExchange Control Panel\Explicit Sign-On Outbound Proxy Sessions/sec
  • \MSExchange Control Panel\Explicit Sign-On Standard RBAC Requests/sec
  • \MSExchange Control Panel\Explicit Sign-On Standard RBAC Sessions/sec
  • \MSExchange Control Panel\Inbound Proxy Requests/sec
  • \MSExchange Control Panel\Inbound Proxy Sessions/sec
  • \MSExchange Control Panel\Outbound Proxy Requests/sec
  • \MSExchange Control Panel\Outbound Proxy Requests - Average Response Time
  • \MSExchange Control Panel\Outbound Proxy Sessions/sec
  • \MSExchange Control Panel\PowerShell Runspaces - Activations/sec
  • \MSExchange Control Panel\PowerShell Runspaces - Average Active Time
  • \MSExchange Control Panel\PowerShell Runspaces/sec
  • \MSExchange Control Panel\RBAC Sessions/sec
  • \MSExchange Control Panel\Requests - Activations/sec
  • \MSExchange Control Panel\Requests - Average Response Time
  • \MSExchangeFDS:OAB(_Total)\Download Tasks Completed
  • \MSExchangeFDS:OAB(_Total)\Download Task Queued
  • \MSExchange OWA\Average Search Time
  • \MSExchange OWA\Current Unique Users
  • \MSExchange OWA\Requests/sec
  • \MSExchange RpcClientAccess\User Count
  • \MSExchange RpcClientAccess\Active User Count
  • \MSExchange RpcClientAccess\Connection Count
  • \MSExchange RpcClientAccess\RPC Averaged Latency
  • \MSExchange RpcClientAccess\RPC Operations/sec
  • \MSExchange RpcClientAccess\RPC Requests
  • \MSExchangeWS\Requests/sec
  • \Web Service(_Total)\Connection Attempts/sec
  • \Web Service(_Total)\Current Connections
  • \Web Service(_Total)\Other Request Methods/sec
MailboxRole
  • \MSExchange Database(Information Store)\Log Record Stalls/sec
  • \Process(MSExchangeMailboxAssistants)\% Processor Time
  • \Process(Microsoft.Exchange.Search.ExSearch)\% Processor time
  • \MSExchange Calendar Attendant\Average Calendar Attendant Processing time
  • \MSExchange Calendar Attendant\Requests Failed
  • \MSExchange Database(information store)\I/O Log Reads Average Latency
  • \MSExchange Database(information store)\I/O Database Reads (Attached) Average Latency
  • \MSExchange Database(information store)\I/O Database Reads (Recovery) Average Latency
  • \MSExchange Database(information store)\I/O Database Writes (Attached) Average Latency
  • \MSExchange Database(information store)\I/O Database Writes (Recovery) Average Latency
  • \MSExchange Database(information store)\I/O Log Writes Average Latency
  • \MSExchange Database(Information Store)\Database Page Fault Stalls/sec
  • \MSExchange Database(Information Store)\Database Cache % Hit
  • \MSExchange Database(Information Store)\Database Cache Size (MB)
  • \MSExchange Database(Information Store)\Log Bytes Write/sec
  • \MSExchange Database(Information Store)\Log Threads Waiting
  • \MSExchange Database(Information Store)\Version buckets allocated
  • \MSExchangeIS\Client: RPCs Failed/sec
  • \MSExchangeIS Mailbox(_Total)\Messages Delivered/sec
  • \MSExchangeIS Mailbox(_Total)\Messages Sent/sec
  • \MSExchangeIS Mailbox(_Total)\Messages Submitted/sec
  • \MSExchangeIS Mailbox(_Total)\Search Task Rate
  • \MSExchangeIS Mailbox(_Total)\Slow Findrow Rate
  • \MSExchangeIS Mailbox(_Total)\Messages Queued for Submission
  • \MSExchangeIS Public(_Total)\Messages Queued for Submission
  • \MSExchangeIS Public(_Total)\Replication Receive Queue Size
  • \MSExchangeIS\RPC Averaged Latency
  • \MSExchangeIS\RPC Client Backoff/sec
  • \MSExchange Store Interface(_Total)\RPC Requests outstanding
  • \MSExchangeIS\Slow QP Threads
  • \MSExchangeIS\Slow Search Threads
  • \MSExchangeIS\User Count
  • \Process(msftesql)\%Processor Time
  • \MSExchange Resource Booking\Average Resource Booking Processing Time
  • \MSExchange Resource Booking\Requests Failed
  • \MSExchange Search Indices(_Total)\Average Document Indexing Time
  • \MSExchange Search Indices(_Total)\Average Latency of RPCs Used to Obtain Content
  • \MSExchange Store Interface(_Total)\RPC Latency average (msec)
HubTransportRole
  • \MSExchangeTransport Dumpster\Dumpster Inserts/sec
  • \MSExchange Store Driver\Inbound: LocalDeliveryCallsPerSecond
  • \MSExchange Store Driver\ Inbound: MessageDeliveryAttemptsPerSecond
  • \MSExchange Store Driver\Inbound: Recipients Delivered Per Second
  • \MSExchange Store Driver\Outbound: Submitted Mail Items Per Second
  • \MSExchangeTransport SmtpReceive(_total)\Average bytes/message
  • \MSExchangeTransport SmtpReceive(_total)\Messages Received/sec
  • \MSExchangeTransport SmtpSend(_total)\Messages Sent/sec
  • \MSExchangeTransport Dumpster\Dumpster Deletes/sec
  • \MSExchangeTransport Dumpster\Dumpster Item Count
  • \MSExchangeTransport Dumpster\Dumpster Size
  • \MSExchangeTransport Queues(_total)\Active Non-Smtp Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Active Remote Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Active Mailbox Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Aggregate Delivery Queue Length (All Queues)
  • \MSExchangeTransport Queues(_total)\Largest Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Messages Completed Delivery Per Second
  • \MSExchangeTransport Queues(_total)\Messages Queued for Delivery Per Second
  • \MSExchangeTransport Queues(_total)\Messages Submitted Per Second
  • \MSExchangeTransport Queues(_total)\Poison Queue Length
  • \MSExchangeTransport Queues(_total)\Retry Mailbox Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Retry Non-Smtp Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Retry Remote Delivery Queue Length
  • \MSExchangeTransport Queues(_total)\Submission Queue Length
  • \MSExchangeTransport Queues(_total)\Unreachable Queue Length
MailboxDatabase
  • \MSExchange Assistants - Per Database(msexchangemailboxassistants-<dbname>)\Average Event Processing Time in Seconds
  • \MSExchange Assistants - Per Database(msexchangemailboxassistants-<dbname>)\Events in queue
  • \MSExchange Assistants - Per Database(msexchangemailsubmission-<dbname>)\Average Event Processing Time in Seconds
  • \MSExchange Assistants - Per Database(msexchangemailsubmission-<dbname>)\Events in queue
  • \MSExchange Assistants - Per Database(msexchangemailboxassistants-<dbname>)\Events Polled/sec
  • \MSExchange Assistants - Per Database(msexchangemailboxassistants-<dbname>)\Mailboxes Processed/sec
  • \MSExchange Assistants - Per Database(msexchangemailsubmission-<dbname>)\Events Polled/sec
  • \MSExchange Assistants - Per Database(msexchangemailsubmission-<dbname>)\Mailboxes Processed/sec
  • \MSExchange Database ==> Instances(Information Store/<dbname>)\I/O Database Reads Average Latency
  • \MSExchange Database ==> Instances(Information Store/<dbname>)\I/O Database Writes Average Latency
  • \MSExchange Database ==> Instances(Information Store/<dbname>)\Log Generation Checkpoint Depth
  • \MSExchangeIS Mailbox(<dbname>)\Search Task Rate
  • \MSExchangeIS Mailbox(<dbname>)\Slow Findrow Rate
  • \MSExchange Replication(<dbname>)\CopyQueueLength
  • \MSExchange Replication(<dbname>)\ReplayQueueLength
  • \MSExchange Search Indices(<dbname>)\Average Latency of RPCs Used to Obtain Content
  • \MSExchange Search Indices(<dbname>)\ Average Document Indexing Time
  • \MSExchange Search Indices(<dbname>)\Full Crawl Mode Status

The following services will be monitored:

  • IISADMIN
  • MSExchangeIS
  • MSExchangeADTopology
  • MSExchangeMailboxAssistants
  • MSExchangeSearch
  • MSExchangeServiceHost
  • MSExchangeMonitoring
  • MSExchangeSA
  • MSExchangeMailSubmission
  • MSExchangeTransportLogSearch
  • msftesql-Exchange
  • W3SVC
  • MSExchangeFDS

Thresholds

There are thresholds associated with several of the collected counters in the above templates.

ClientAccessRole
  • activesync_current_requests - Between 50 and 100
  • address_book_referral_rpc_requests_latency - Less than 1000
  • address_book_rpc_browse_requests_latency - Less than 1000
  • address_book_rpc_requests_latency - Less than 1000
  • asp_application_restarts - Less than 0
  • asp_request_wait_time - Less than 0
  • asp_worker_process_restarts - Less than 0
  • availability_service_time - Less than 5
  • control_panel_outbound_proxy_requests_response_time - Less than 6000
  • control_panel_requests_response_time - Less than 6000
  • oab_download_tasks_queued - Less than 0
  • owa_average_search_time - Less than 5000
  • rpc_client_access_rpc_averaged_latency - Less than 250
  • rpc_client_access_rpc_requests - Less than 40

MailboxRole
  • calendar_attendant_requests_failed - Less than 0
  • mailbox_average_document_indexing_time - Less than 30000
  • mailbox_client_rpc_fails - Less than 0
  • mailbox_database_cache_size - At least 2 GB free
  • mailbox_database_page_flush - Less than 0
  • mailbox_log_bytes_write - Less than 10000000
  • mailbox_log_read_latency - Less than 200
  • mailbox_log_stalls - Less than 10
  • mailbox_log_threads_waiting - Less than 10
  • mailbox_messages_queued - Less than 50
  • mailbox_public_message_queued - Less than 20
  • mailbox_read_attached_latency - Less than 20
  • mailbox_read_recovery_latency - Less than 20
  • mailbox_rpc_requests - Less than 70
  • mailbox_slow_qp_threads - Less than 10
  • mailbox_slow_search_threads - Less than 10
  • mailbox_version_buckets - Less than 12000
  • replication_receive_queue_size - Less than 100
  • resource_booking_requests_failed - Less than 0
  • rpc_latency_average - Less than 100
  • rpc_requests_outstanding - Less than 0
HubTransportRole
  • active_mailbox_delivery_queue_length - Less than 250
  • active_non_smtp_delivery_queue_length - Less than 250
  • active_remote_delivery_queue_length - Less than 250
  • largest_delivery_queue_length - Less than 200
  • poison_queue_length - Less than 0
  • retry_mailbox_delivery_queue_length - Less than 100
  • retry_non_smtp_delivery_queue_length - Less than 100
  • retry_remote_delivery_queue_length - Less than 100
  • submission_queue_length - Less than 100
  • total_delivery_queue_length - More than 3000, Less than 5000
  • unreachable_queue_length - Less than 100
MailboxDatabase
  • log_generation_checkpoint_depth - Less than 500
  • mailbox_assistant_event_processing_time - Less than 2
  • mailbox_average_document_indexing_time - Less than 30000
  • mailbox_submission_event_processing_time - Less than 2
  • search_task_rate - Less than 10
  • slow_findrow_rate - Less than 10
  • mailbox_full_crawl_mode_status - Less than 1

Usage

To use the ZenPack, add the zenoss.winrm.WinExchange modeler plugin to an existing Windows device and run the modeler. For a new device, follow the directions for adding a new device using the Microsoft Windows ZenPack

Note: The monitoring user must be a domain user.

Note: If monitoring Exchange with a non-administrator user, the user must be a member of the Active Directory group "View Only Organization Management" for 2010 and later installations.

Configuration Options

zExchangeUser
If the NETBIOS domain name for the Exchange Server is different than the domain name used in the zWinRMUser property, enter that information here in either netbios\user or user@netbios format. This can also be used if a different user account needs to be used to model the Exchange Server.
zExchangePassword
Enter the password of the above account here. It can be left blank if it is the same as zWinRMPassword.

Limitations of Current Release

  • Support for Exchange Server 2010 and 2013 only. Support for future versions of Exchange will be added when they are released by Microsoft.

Troubleshooting

The first step in troubleshooting any monitoring issues is to scan the zenpython log for errors. Most issues can be solved by troubleshooting the Windows ZenPack.

There are currently no logon servers available to service the logon request

If you see this error during modeling, check the NETBIOS name against the users domain name. If they are not the same then use the zExchangeUser/zExchangePassword configuration options.

Zenoss Analytics

This ZenPack provides additional support for Zenoss Analytics. Perform the following steps to install extra reporting resources into Zenoss Analytics after installing the ZenPack.

  1. Copy analytics-bundle.zip from $ZENHOME/ZenPacks/ZenPacks.zenoss.Microsoft.Exchange*/ZenPacks/zenoss/Microsoft/Exchange/analytics/ on your Zenoss server.
  2. Navigate to Zenoss Analytics in your browser.
  3. From the Zenoss Instance list of options, select Internal Authentication.
  4. Login as an Analytics user with superuser privileges.
  5. Remove any existing Microsoft Exchange ZenPack folder.
    1. Choose Repository from the View menu at the top of the page.
    2. Expand Public in the list of folders.
    3. Right-click on Microsoft Exchange ZenPack folder and choose Delete.
    4. Confirm deletion by clicking OK.
  6. Add the new Microsoft Exchange ZenPack folder.
    1. Choose Server Settings from the Manage menu at the top of the page.
    2. Choose Import in the left page.
    3. Remove checks from all check boxes.
    4. Click Choose File to import a data file.
    5. Choose the analytics-bundle.zip file copied from your Zenoss server.
    6. Click Import.

You can now navigate back to the Microsoft Exchange ZenPack folder in the repository to see the following resources added by the bundle.

Domains
  • Microsoft Exchange Domain

Domains can be used to create Ad Hoc views using the following steps.

  1. Choose Ad Hoc View from the Create menu.
  2. Click Domains at the top of the data chooser dialog.
  3. Expand Public then Microsoft Exchange ZenPack.
  4. Choose the Microsoft Exchange Domain domain

Service Impact

When combined with the Zenoss Service Dynamics product, this ZenPack adds built-in service impact capability for services running on Microsoft Windows. The following service impact relationships are automatically added. These will be included in any services that contain one or more of the explicitly mentioned entities.

Service Impact Relationships
  • The Windows server is impacted by the Exchange Server.
  • The Exchange Server is impacted by the Mailbox Databases.

Installed Items

Installing this ZenPack will add the following items to your Zenoss system.

Modeler Plugins
  • zenoss.winrm.WinExchange
Monitoring Templates
  • ClientAccessRole (in /Server/Microsoft)
  • MailboxRole (in /Server/Microsoft)
  • HubTransportRole (in /Server/Microsoft)
  • MailboxDatabase (in /Server/Microsoft)

Changes

1.0.4
  • Fix zenpacks.zenoss.microsoft.windows 2.6.0 missing hardware relations (ZEN-23968)
1.0.3
  • Fix impact to be compatible with Windows ZenPack version 2.6.0
1.0.2
  • Fix Exchange ZenPack: WinRM error during modeling (ZEN-23351)
  • Fix Microsoft Exchange modeler type mismatch (ZEN-23317)
  • Update zenpacklib.py to 1.0.12
1.0.1
  • Fix Exchange modeler plugin gets unauthorized error (ZEN-22314)
1.0.0
  • Inital release of Exchange ZenPack

Installation

Normal Installation (packaged egg)

  1. Download the appropriate egg file for the version of Zenoss you are running.
  2. Ensure you are logged in as the zenoss user:
    $ sudo su - zenoss
  3. Install the ZenPack:
    $ zenpack --install ZenPacks.zenoss.Microsoft.Exchange-*.egg
  4. Restart these services:
    $ zenoss restart

Commercial

This ZenPack is developed and supported by Zenoss Inc. Commercial ZenPacks are available to Zenoss commercial customers only. Contact Zenoss to request more information regarding this or any other ZenPacks. Click here to view all available Zenoss Commercial ZenPacks.