We can use the standard Opsview agent to monitor a plethora of Microsoft Exchange 07/10 services “out of the box”; using the built in Windows performance monitors and service statuses.
This article assumes that the Opsview agent has been installed onto a Windows Server 200* server running Microsoft Exchange 2007/2010, and that the Microsoft Exchange host (underlying Windows server) has been added already to Opsview.
1. Firstly, we will need to add our service checks we wish to run against our Exchange server. These service checks are going to monitor performance counters, service statuses and a few others. Opsview ships with IMAP/SMTP checks “out of the box”.
2. In order to add our new service checks, login to your Opsview server and navigate to “SETTINGS > SERVICE CHECKS” and click on the green icon in the top left.
3. Now we need to populate our service check template fields; in this example we will go through adding just one service check, however using the information in the appendix at the bottom of this article you can add many more service checks using the same methodology.
4. In this example we are going to monitor the Exchange “Active Mailbox Delivery” queue, so in the name we will add the title “Exchange 2007/2010 Active Mailbox Delivery Queue” for example.
We can add whatever description we like in the description field, i.e. “Monitoring to ensure that ”. In the “service group”, we can add a new service group, i.e. “Microsoft Exchange 2010”.
The rest of the fields can be populated as per your preference, i.e. how often you’d like to check/recheck etc.
5. Now that the rest of the fields have been populated, we can move onto the “plugin” and “arguments” section which are the crux of this article.
We need to choose the “check_nrpe” plugin, which ships with Opsview as default, and in the arguments section we need to add the following:
-H $HOSTADDRESS$ -c nsc_checkcounter -a ‘”\\MSExchangeTransport Queues(_total)\\Active Mailbox Delivery Queue Length” MaxWarn=200 MaxCrit=250 ShowAll’
We can change the arguments to whatever we like, as per the Microsoft Exchange performance counters library here.
6. Once added, click “submit”, and our new service check is added as below:
We can do this as many times as we desire for our numerous service checks. We can also do it for “-c nsc_checkservicestate” instead of “-c nsc_checkcounter”, in terms of the command below:
-H $HOSTADDRESS$ -c nsc_checkservicestate -a ‘ShowAll MSExchangeAB=started’
7. Now that our service checks are added, we just need to proceed to add them to our Exchange host, via “SETTINGS > HOSTS” and click on “Exchange” or whatever the host is called.
8. Once on the host, click “MONITORS” and then find the “Microsoft Exchange 2010” section, and click on our new check, as below:
9. Once done, scroll to the bottom of the page and click submit.
10. Finally, we just need to reload the system to apply the new service check(s) to the host. To do this, navigate to “SYSTEMS > APPLY CHANGES” and click “RELOAD CONFIGURATION”. And the new service checks will be up and applied.
Here are a few examples of commands that can be used against MS Exchange 07/10 servers:
Exchange 2007/2010 Active Delivery Queue
check_nrpe -H $HOSTADDRESS$ -c nsc_checkcounter -a ‘”\\MSExchangeTransport Queues(_total)\\Active Mailbox Delivery Queue Length” MaxWarn=75 MaxCrit=100 ShowAll’
Exchange 2007/2010 Poison Queue Length
check_nrpe -H $HOSTADDRESS$ -c nsc_checkcounter -a ‘”\\MSExchangeTransport Queues(_total)\\Poison Queue Length” MaxWarn=1 MaxCrit=1 ShowAll’
Exchange 2007/2010 Retry Non-Smtp Delivery Queue
check_nrpe -H $HOSTADDRESS$ -c nsc_checkcounter -a ‘”\\MSExchangeTransport Queues(_total)\\Retry Non-Smtp Delivery Queue Length” MaxWarn=75 MaxCrit=100 ShowAll’
Microsoft Exchange 2007/2010 Anti-spam Update (Service)
check_nrpe -H $HOSTADDRESS$ -c nsc_checkservicestate -a ‘ShowAll MSExchangeAntispamUpdate=started’
Microsoft Exchange 2007/2010 IMAP service
check_nrpe -H $HOSTADDRESS$ -c nsc_checkservicestate -a ‘ShowAll MSExchangeImap4=started’
There are many more available on TechNet, which can be adapted into the commands above.