Showing results for 
Search instead for 
Did you mean: 

**Deprecated - Nagios Plug-Ins for Cisco UCS - Deprecated**


This version of the UCS Manager Nagios Plug-In is deprecated because it used a deprecated Python SDK

The following Nagios Plug-Ins are available for download from Cisco:

Cisco UCS Manager Plugin Release 0.9.4 for Nagios:

Details on this Release

Downloads (deprecated - no support provided for the 0.9.4 release on current Nagios versions):

Download Cisco UCS Manager Plugin Release 0.9.4 for Nagios


User Guide for Cisco UCS Manager Plugin Release 0.9.4 for Nagios


Cisco IMC Plugin Release 0.9.3 for Nagios:

Details on this release


Download Cisco IMC Plugin Release 0.9.3 for Nagios


User Guide for Cisco IMC Plug-In Release 0.9.3 for Nagios

Also available on Nagios exchange:

Note: Support is available only through the Cisco Communities forum.

External customers - For any queries/feedback on Plugins for Nagios, add a discussion to the Cisco Developed Integrations sub-space on Cisco UCS Communities

Internal (Cisco) customers and employees - Contact us at for support questions and or for roadmap questions and feedback.

Community Member

Cisco UCS Python SDK version is 0.8.3.

Firmware on UCS C210 M2: 1.4(3x)

Output of ./ –version

Cisco UCSM Nagios Auto Discovery version : 0.9.3

Output of ./ –debug

UCS host information csv file /root/zips/cisco-ucs-nagios-0.9.3/autodiscovery/UCSHostInfo.csv

/root/zips/cisco-ucs-nagios-0.9.3/autodiscovery/NagiosAutoDiscoveryUCS.cfg File exists

Removing the folder path : /usr/local/nagios/etc/cisco/ucsObjs

Copying the payload to /usr/local/nagios/etc/cisco/ucsObjs

Cisco Employee

This appears to be a standalone rack server. There are two issues - the plugin you are using is for UCSM managed servers. For standalone racks, you need the following

Cisco IMC Plugin for Nagios (version 0.9.2)

Even then, the min firmware it works with, is 1.5.x.


Hello, are there any plans to add a feature to output Performance Data for classes that return a numbered value? Such as Fan speed, temperature, power (watts).

Cisco Employee

Yes Chris. Its in the roadmap.


Thanks very much! This and the IMC plugin are great!

Community Member

Thanks for this plugin, it is working quite well.  A couple of questions though ...

Is there a way to query multiple classes at a time?  I'd like to set up a service such as ucs_Servers - it doesn't matter to us if the server is Blade or Rack and we don't want to monitor every single server as an independent unit. I've tried many things but haven't come up with a way to query both in a single plugin call.  For example this would be nice:

    cisco_ucs_nagios -u user -p pass -H ucs-host -t class -q ComputeBlade,ComputeRackUnit --inHierarchical   --onlyFaults

Above doesn't work of course.  I have to set up 1 service for each type of server (ucs_Blades and ucs_Rack).

One obvious way I think to do what I want is to patch the pluginn to support multiple config files.  For specific checks I can pass a different config file that has a different CLASS_FILTER_LIST, haven't done this yet as I'm wondering if there's just something obvious I've missed.

Also, in the plugin output there seems to almost always be many lines of inventory-type information, for example:

sys/rack-unit-14:OK - Model : UCSC-C240-M3L,Name : xxx

When there are over 30 servers in a UCS domain this becomes a bit verbose (especially when trying to pick out the single CRITICAL) that might be mixed in the middle.  Is there any way to suppress output other than an overall OK, or the specific WARNINGs and CRITICALs?



Community Member

I just installed this plugin on Nagios XI and the autodiscovery seemed to work as I have multiple files created afterward with the UCS domain details.  However, I can not find any docs stating how to get the information to show up in the Nagios XI web portal.  Any help is appreciated.



Cisco Employee

Hi Cary,

Plugin has been developed and qualified with Nagios Core, thus nothing has been mentioned in the docs about XI.

The plugin should work with XI, as Nagios Core is the backbone for XI also.

Please check below pointers in your Nagios Config files:

a. In "nagios.cfg" check for entry "cfg_dir=/usr/local/nagios/etc/cisco/ucsObjs" .

     # This entry should be there in Nagios, for it to look for UCS Domain services.

     # This entry should be in a new line , should not be appended to any other line.

     # Restart Nagios service, and check is there are any errors or warnings.

b. Verify the path "/usr/local/nagios/etc/cisco/ucsObjs", if it contains configuration files for your discovered UCS      domains.

If these does not help, then do share with us the o/p of "./" and autodiscovery run for a single domain "./ --debug".


Community Member

The object you mentioned in “a” was appended to the line above rather than on a new line. Corrected that and the information is now showing.


Community Member

Seems like there's a bug here where the Auto Discovery doesn't like an FQDN in the first column of the csv file even though the docs say it's completely possible. Having to write a wrapper for the autodiscovery to replace everything with FQDN and reload nagios is a pain...

The problem is arising on these lines where it thinks it's not a proper ucs dictionary mapping

                new_ucs_dict[ucs_ip] = ucs_info_dict[ucs_ip]
        ucs_info_dict = new_ucs_dict
        if not ucs_info_dict:
            print "Error occurred while trying to parse the host information"
            print "Exiting Auto Discovery process without any modifications."
Cisco Employee

Hello Logan,

Thanks for pointing out the issue. We will fix the same in next iteration.

The issue is not with using FQDN, but a scenario where the FQDN has exactly 3 dots "." , in such a scenario a verification method fails and gives us this error.

As a workaround you can make the below change, this should resolve your issue.

In "verify_ip_or_host(ip)" method,

replace :

if ip.count('.') == 3 :

    return True

to :

if ip.count('.') == 3 and  all(0<=int(num.split('-')[0])<256 for num in ip.rstrip().split('.')):

    return True

--- Prateek

Community Member


Thanks for the fix. That works well, however it only resolves part of the problem. During the setup of the FI's we gave them a hostname and suffix domain. Is there anyway the API can grab that info and use that in the nagios config instead of the FI IP's? When using the FQDN I'd like to use it all the way through, not just for the UCS Manager VIP.
Community Member

It seems I just can't get the IMC plugin to work with our C220 M3 servers. CIMC version is 2.0(1b).

We are running the latest version of the SDK as well as Nagios 3.3.


[root@eznag etc]# /opt/cisco-imc-nagios-0.9.2/autodiscovery/ --debug

IMC host information csv file   /opt/cisco-imc-nagios-0.9.2/autodiscovery/IMCHostInfo.csv

/opt/cisco-imc-nagios-0.9.2/autodiscovery/IMCHostInfo.csv File exists

/opt/cisco-imc-nagios-0.9.2/autodiscovery/NagiosAutoDiscoveryIMC.cfg File exists

Removing the folder path : /usr/local/nagios/etc/cisco/imcObjs

Copying the payload to /usr/local/nagios/etc/cisco/imcObjs


Connecting to IMC - '' with user 'admin' and password 'adminenc'

Connect using NoSsl as 'False', port as '443' and proxy as 'None' ====> <aaaLogin inName="admin" inPassword="passwordblah" /> <==== <aaaLogin cookie="" response="yes" outCookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" outRefreshPeriod="600" outPriv="admin" outSessionId="11" outVersion="2.0(1b)"> </aaaLogin> ====> <configResolveDn cookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" dn="sys/rack-unit-1" inHierarchical="false" /> <==== <configResolveDn cookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" response="yes" dn="sys/rack-unit-1">


<computeRackUnit dn="sys/rack-unit-1" adminPower="policy" availableMemory="32768" model="SNS-3495-K9" memorySpeed="1066" name="" numOfAdaptors="0" numOfCores="8" numOfCoresEnabled="8" numOfCpus="2" numOfEthHostIfs="0" numOfFcHostIfs="0" numOfThreads="8" operPower="on" originalUuid="XXXXXX-XXXXXX" presence="equipped" serverId="1" serial="FCHXXXXX" totalMemory="32768" usrLbl="mgmt" uuid="XXXXXXXXXXX" vendor="Cisco Systems Inc" ></computeRackUnit></outConfig>

</configResolveDn> ====> <aaaLogout inCookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" /> <==== <aaaLogout cookie="" response="yes" outStatus="success"> </aaaLogout>

Error while trying to discover  :

Exception: [ErrorMessage]: [Error]: login : Invalid IMC Server <>


Traceback (most recent call last):

  File "/opt/cisco-imc-nagios-0.9.2/autodiscovery/", line 219, in <module>

    imc_object = ImcNagiosClass(imc_ip, user, password,property_dict,no_ssl, port, proxy,debug)

  File "/opt/cisco-imc-nagios-0.9.2/autodiscovery/", line 61, in __init__

    ImcNagiosFileHandler.__init__(self, self.get_imc_handle(), self.imc_dict)

  File "/opt/cisco-imc-nagios-0.9.2/autodiscovery/", line 69, in get_imc_handle

    self.no_ssl, self.port, self.proxy,auto_refresh=False)

  File "/usr/lib/python2.6/site-packages/ImcSdk/", line 420, in login

    raise ImcValidationException('[Error]: login : Invalid IMC Server <%s>' %(self.__name))

ImcValidationException: [ErrorMessage]: [Error]: login : Invalid IMC Server <>


Error while trying to auto discover Rack Infrastructure. Check if any of the Rack's are reachable.

Jeffrey Foster
Cisco Employee

Hi Mathieu,

It looks like the issue here is the model of this platform. You mentioned that this is a C220 M3, but the model being reported back by the XML API is that this is a SNS-3495-K9 which looks to align with the fault message about this being an invalid server. Are you seeing the same on servers reporting model of C220 M3?

Community Member

I can't answer this I'm afraid. We bought indeed about a dozen of SNS-3495-K9 which are C220 M3 sold as appliance for Cisco Identity Services Engine (ISE).

Recognize Your Peers
Content for Community-Ad