Friday, August 29, 2008

Cisco Call Manager Monitoring in Nagios with check_multi and SNMP

Hi,

I recently needed to integrate Cisco Call Manager Devices into Nagios and i did not find anything on the web, no plugins, neither OIDs. So i needed to figure them out by myself and after some work i had this check_multi command definition which integrates some ccm parameters like version, hostname and registered phones, ata's gateway ip's and some ither stuff.

The best is to do it the "check_multi" way, but it would be possible to cut every checkout and make a single one outof it.

Requirements:
ftp://ftp-sj.cisco.com/pub/mibs/v2/CISCO-CCM-MIB.my - Cisco Call Manager MIB - should be placed into /usr/share/snmp/mibs
check_multi

The cisco_ccm.cmd - i place all my multi commadn definitions in nagios/etc/multicommands/

Command File:

#
# cisco_callmanager.cmd
#
# Sebastian Koch, 2008
#
# $ARG2$ needs to be the snmp community string
#
#--- voice gateway ips
#
# 1.3.6.1.4.1.9.9.156.1.11.1.1.6.2
# 1.3.6.1.4.1.9.9.156.1.11.1.1.6.3
# 1.3.6.1.4.1.9.9.156.1.11.1.1.6.4
#
#--- cisco system parameters
command[ hostname ] = check_snmp -m SNMPv2-MIB -H $HOSTADDRESS$ -C $ARG2$ -o 'SNMPv2-MIB::sysName.0' -l SysName -l 'System Name'

#--- call manager ios versions
command[ ccm_version ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmVersion.1' -l "CCM Version"
command[ ccm_system_version ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmSystemVersion.0' -l "CCM System Version"

#--- call manager stats
command[ active_phones ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmInActivePhones.0' -l "Active Phones" -u 'Phones'
command[ registered_phones ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmRegisteredPhones.0' -l "Registered Phones" -u 'Phones'
command[ unregistered_phones ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmUnregisteredPhones.0' -l "Unregistered Phones" -u 'Phones'
command[ rejected_phones ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmRejectedPhones.0' -l "Rejected Phones" -u 'Phones'
command[ active_atas ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmActiveGateways.0' -l "Active ATA's" -u "ATA's"
command[ unregistered_atas ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmUnregisteredGateways.0' -l "Unregistered ATAs" -u 'ATAs'
command[ rejected_atas ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 'CISCO-CCM-MIB::ccmRejectedGateways.0' -l "Unregistered ATAs" -u 'ATAs'

#--- gateway ip's
#--- check if the gateway ip's are the expected ones (-r directive), the sed command is to correct the ouput

command[ gateway_ip1 ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 1.3.6.1.4.1.9.9.156.1.11.1.1.6.2 -l "Gateway Ip 1" -r "10.150.14.3" | sed s/\Wrong\ Type\ \(should\ be\ OCTET\ STRING\)\:// | sed s/\*//
command[ gateway_ip2 ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 1.3.6.1.4.1.9.9.156.1.11.1.1.6.4 -l "Gateway Ip 2" -r "10.200.14.3" | sed s/\Wrong\ Type\ \(should\ be\ OCTET\ STRING\)\:// | sed s/\*//
command[ gateway_ip3 ] = check_snmp -m CISCO-CCM-MIB -P 2c -H $HOSTADDRESS$ -C $ARG2$ -o 1.3.6.1.4.1.9.9.156.1.11.1.1.6.3 -l "Gateway Ip 3" -r "10.100.14.3" | sed s/\Wrong\ Type\ \(should\ be\ OCTET\ STRING\)\:// | sed s/\*//
#command[ interfaces] = check_interface_table.pl -H $HOSTADDRESS$ -C $ARG2$ -HTMLUrl 'https://monitoring-server/nagios/interfacetable'

Service Definition:

define service {
check_command check_multi!/usr/local/nagios/etc/multicommands/cisco_callmanager.cmd!public!-s suppress_perfdata=hostname,ccm_system,ccm_system_version,gateway_ip_1,gateway_ip_2,gateway_ip_3
}


Check Command Definition:


define command {
command_name check_multi
command_line $USER1$/check_multi -t 40 -T 180 -f $ARG1$ -l /usr/local/nagios/libexec/ -r 11 $ARG3$
}


Hopefully this helps out some people as i did not found anything on the web to monitor CCM Stats with nagios.

bohboh,
kratediggah

No comments: