Skip to main content

Cisco Callmanager SXML

Overview

Using SXML, this Cisco Call Manager Monitoring Connector monitors alerts from the Cisco Unified Communications components.

Monitoring Connector Assets

Monitored Objects

  • Alerts

Collected Metrics

More information about collected metrics is available in the official Cisco Callmanager documentation : https://www.cisco.com/c/en/us/support/docs/unified-communications/unified-communications-manager-callmanager/213291-real-time-monitoring-tool-alerts.html#anc8

Metric nameDescriptionUnit
alerts.total.countTotal number of alertscount
severity-$alerts.severity.countNumber of different severitiescount

Prerequisites

Setup

  1. Install the Centreon Plugin on every Poller monitoring Cisco Callmanager resources:
yum install centreon-plugin-Network-Cisco-Callmanager-Sxml.noarch
  1. On the Centreon Web interface in Configuration > Monitoring Connector Manager, install the Cisco Callmanager SXML Monitoring Connector

Configuration

The Monitoring Connector is designed to monitor resources based on one Host per Cisco Callmanager SXML environment. Adding a Host into Centreon, link it to the Template named Net-Cisco-Callmanager-Sxml-custom. Once the Template applied, some Macros have to be configured:

MandatoryNameDescription
XCUCMSXMLAPIPORTPort used. Default is 8443
XCUCMSXMLAPIPROTOProtocol used. Default is https
CUCMSXMLAPIEXTRAOPTIONSAny extra option you may want to add to the command

FAQ

How to check in the CLI that the configuration is OK and what are the main options for ?

Once the Plugin installed, log into your poller using the centreon-engine user account and test by running the following command (Parameters such as api-username or api-password have to be adjusted):

/usr/lib/centreon/plugins/centreon_cisco_cucm_sxml.pl \
--plugin=network::cisco::callmanager::sxml::plugin \
--mode=alerts \
--Hostname='mycucm.com' \
--api-username='centreoncucm' \
--api-password='myapipassword' \
--port='8443' \
--proto='https' \
--http-backend=curl \
--curl-opt="CURLOPT_SSL_VERIFYPEER => 0" \
--verbose \
--display-alerts
OK: Alerts total: 1, informational: 0, error: 0, debugging: 0, critical: 1, alert: 0, warning: 0, emergency: 0, notice: 0
| 'alerts.total.count'=1;;;0; 'alerts.severity.informational.count'=0;;;0;1 'alerts.severity.error.count'=0;;;0;1 'alerts.severity.debugging.count'=0;;;0;1
'alerts.severity.critical.count'=1;;;0;1 'alerts.severity.alert.count'=0;;;0;1 'alerts.severity.warning.count'=0;;;0;1 'alerts.severity.emergency.count'=0;;;0;1
'alerts.severity.notice.count'=0;;;0;1
alert [name: CDRFileDeliveryFailureContinues] [severity: critical] [date: Tue Oct 6 05:42:12 2020]: BillingServerAddress : 172.28.172.105
AppID : Cisco CDR Repository Manager ClusterID : NodeID : server.centreon.com TimeStamp : Tue Oct 06 05:41:50 EDT 2020.
The alarm is generated on Tue Oct 06 05:41:50 EDT 2020.

The command above gets the alerts of a Cisco Callmanager using SXML (--mode=alerts). It uses api-username (--api-username='centreoncum'), an api-password (--api-password='myapipassword') and it connects to the Host mycucm.com (--Hostname='mycucm.com') on the port 443 (--port='443') using https (--proto='https'). By default, the backend method is curl (--http-backend=curl).

/usr/lib/centreon/plugins//centreon_cisco_cucm_sxml.pl 
--plugin=network::cisco::callmanager::sxml::plugin \
--mode=alerts \
--help

Why do I get the following error:

UNKNOWN: 500 Can't connect to mycucm.com:443

This error message means that the Centreon Plugin couldn't successfully connect to the Cisco Callmanager SXML. Check that no third party device (such as a firewall) is blocking the request. A proxy connection may also be necessary to connect to the API. This can be done by using the --proxyurl='http://proxy.mycompany:8080' option in the command.

UNKNOWN: 501 Protocol scheme 'connect' is not supported |

When using a proxy to connect to the Cisco Callmanager SXML, this error message means that the Centreon Plugin library does not support the proxy connection protocol.

In order to prevent this issue, use the lwp HTTP backend by adding the following option to the command: --http-backend='lwp'.