Recently i contacted nagios and they advised me to create a forum topic, so here goes.
We recently had some issues that mails were stuck in our Exchange 2013 queue but we only discovered that when we went to search for the problem. I would like to be able to monitor my Exchange 2013 Queue but i have no idea what would be the best way of doing so. Could anyone help me out and tell me what would be the best way of monitoring it?.
Thanks,
Tinus
Monitoring Exchange 2013 Queue SNMP?
Re: Monitoring Exchange 2013 Queue SNMP?
Exchange has a number of queues, so you'll have to determine which ones you want to monitor for yourself. You can monitor Exchange queues using Windows performance counters. We are using Exchange 2010, so the names may have changed, but these are the queues we monitor:
Aggregate Delivery Queue
Active Remote Delivery Queue
Submission Queue Length
Retry Remote Delivery Queue
Poison Queue (This one has the best name, in my opinion)
Then, define a service check and apply it to the appropriate Exchange servers. In Exchange 2010, I check the hub servers. The specific check command syntax will have to be modified for whichever Nagios agent you have installed on your Exchange server. We use NSClient++. Be careful about escaping the backslashes in the performance counter's path. The setup we use also has an issue where the check returns a zero even if I query a counter incorrectly (typo in the name, for example), so I have to also be careful to distinguish a good query that happens to be at zero (maybe it's zero quite often) and a bad query that is always at 0.
Aggregate Delivery Queue
Active Remote Delivery Queue
Submission Queue Length
Retry Remote Delivery Queue
Poison Queue (This one has the best name, in my opinion)
Then, define a service check and apply it to the appropriate Exchange servers. In Exchange 2010, I check the hub servers. The specific check command syntax will have to be modified for whichever Nagios agent you have installed on your Exchange server. We use NSClient++. Be careful about escaping the backslashes in the performance counter's path. The setup we use also has an issue where the check returns a zero even if I query a counter incorrectly (typo in the name, for example), so I have to also be careful to distinguish a good query that happens to be at zero (maybe it's zero quite often) and a bad query that is always at 0.
Code: Select all
define service {
use standard_service
hostgroup_name exchange10hub
service_description Active Remote Delivery Queue Length
check_command check_nt_counter!"\\MSExchangeTransport Queues(_total)\\Active Remote Delivery Queue Length","Queue Length: %.f"!500!1000
}
-
slansing
- Posts: 7698
- Joined: Mon Apr 23, 2012 4:28 pm
- Location: Travelling through time and space...
Re: Monitoring Exchange 2013 Queue SNMP?
Awesome, thanks for the help cbeattie!
Re: Monitoring Exchange 2013 Queue SNMP?
Im sorry i havent had any time to look into this any sooner, Thanks cbeattie however i am unable to make it work. Is there a way i could perhaps contact u for additional information if you are willing and have the time?
Re: Monitoring Exchange 2013 Queue SNMP?
cbeattie kinda comes and goes, looking at his post history. He might not be back for a while.
In the meantime, can you give us some specifics?
What are the check commands and definitions you have tried?
Does you get any errors when you run them?
What agent do you have installed on the Windows machine?
In the meantime, can you give us some specifics?
What are the check commands and definitions you have tried?
Does you get any errors when you run them?
What agent do you have installed on the Windows machine?
Former Nagios employee
Re: Monitoring Exchange 2013 Queue SNMP?
Maybe a late response, but I just stumbled on this forum and felt I had to give some input.
We run Exchange 2010 with NSclient++ installed and have Nagios checking queues with check_nt and performance counters like above.
Example config as follows:
We have a command like this:
# Check performance parameters windows
# 'check_nt_counter' command definition
define command{
command_name check_nt_counter
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p xxxxx -s $ARG1$ -v $ARG2$ $ARG3$
}
Exchange xxxxx with whatever port you use.
$HOSTADRESS$ picks up adress to host from the defined host.
$ARG1$ picks upp password and the rest picks up parameters. (see below)
And for checking we use someting like this (fake groups and names on this example):
define service {
use mail-service
host_name servername
contact_groups contactgroup
service_description Retry Mailbox Delivery Queue Length
check_command check_nt_counter!aPassword!COUNTER!-l "\\MSExchangeTransport Queues(_total)\\Retry Mailbox Delivery Queue Length","Queue Length: %.f" -w 20 -c 100
}
This one checks the MSExchangeTransport Queues(_total) parameter having 20 as warning and 100 as critical.
Of course one have to define the host and so on
Open the Perfornamce monitor(open run and type perfmon) on the server and find what you wanna check, is't easy peacy!
There one can find almost anything to monitor(anything reported to performance monitor)
This is probably portable to any windows version.
Note: Later versions of NSclient++ does not have the check_nt on by default, so check that check_nt works before giving up
Better late than never?
Regards,
Pontus
We run Exchange 2010 with NSclient++ installed and have Nagios checking queues with check_nt and performance counters like above.
Example config as follows:
We have a command like this:
# Check performance parameters windows
# 'check_nt_counter' command definition
define command{
command_name check_nt_counter
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p xxxxx -s $ARG1$ -v $ARG2$ $ARG3$
}
Exchange xxxxx with whatever port you use.
$HOSTADRESS$ picks up adress to host from the defined host.
$ARG1$ picks upp password and the rest picks up parameters. (see below)
And for checking we use someting like this (fake groups and names on this example):
define service {
use mail-service
host_name servername
contact_groups contactgroup
service_description Retry Mailbox Delivery Queue Length
check_command check_nt_counter!aPassword!COUNTER!-l "\\MSExchangeTransport Queues(_total)\\Retry Mailbox Delivery Queue Length","Queue Length: %.f" -w 20 -c 100
}
This one checks the MSExchangeTransport Queues(_total) parameter having 20 as warning and 100 as critical.
Of course one have to define the host and so on
Open the Perfornamce monitor(open run and type perfmon) on the server and find what you wanna check, is't easy peacy!
There one can find almost anything to monitor(anything reported to performance monitor)
This is probably portable to any windows version.
Note: Later versions of NSclient++ does not have the check_nt on by default, so check that check_nt works before giving up
Better late than never?
Regards,
Pontus
-
kyang
Re: Monitoring Exchange 2013 Queue SNMP?
Thanks for the response, but since this thread is pretty old and the OP hasn't responded since then.
I will be closing this thread.
I will be closing this thread.