on 06-02-2014 03:31 PM
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:
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
Documentation:
User Guide for Cisco UCS Manager Plugin Release 0.9.4 for Nagios
------------------------------
Cisco IMC Plugin Release 0.9.3 for Nagios:
Downloads:
Download Cisco IMC Plugin Release 0.9.3 for Nagios
Documentation:
User Guide for Cisco IMC Plug-In Release 0.9.3 for Nagios
Also available on Nagios exchange:
http://planet.nagios.org/archives/84-nagios-exchange/6338-cisco-imc-plugin
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 ucs-nagios@cisco.com for support questions and ask-ucs-tme@cisco.com or ask-ucs-pm@cisco.com for roadmap questions and feedback.
Cisco UCS Python SDK version is 0.8.3.
Firmware on UCS C210 M2: 1.4(3x)
Output of ./NagiosAutoDiscoveryUCS.py –version
Cisco UCSM Nagios Auto Discovery version : 0.9.3
Output of ./NagiosAutoDiscoveryUCS.py –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
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).
Yes Chris. Its in the roadmap.
Thanks very much! This and the IMC plugin are great!
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?
Thanks,
Fraser
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.
Thanks
Cary
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 "./installer.py" and autodiscovery run for a single domain "./NagiosAutoDiscoveryUCS.py --debug".
--Prateek
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.
Thanks
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." sys.exit(retval)
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
Prateek,
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.
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/NagiosAutoDiscoveryIMC.py --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 - '1.1.1.1' with user 'admin' and password 'adminenc'
Connect using NoSsl as 'False', port as '443' and proxy as 'None'
1.1.1.1 ====> <aaaLogin inName="admin" inPassword="passwordblah" />
1.1.1.1 <==== <aaaLogin cookie="" response="yes" outCookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" outRefreshPeriod="600" outPriv="admin" outSessionId="11" outVersion="2.0(1b)"> </aaaLogin>
1.1.1.1 ====> <configResolveDn cookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" dn="sys/rack-unit-1" inHierarchical="false" />
1.1.1.1 <==== <configResolveDn cookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" response="yes" dn="sys/rack-unit-1">
<outConfig>
<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>
1.1.1.1 ====> <aaaLogout inCookie="1457380988/f42425d8-2d7a-1d7a-8009-f665e522e470" />
1.1.1.1 <==== <aaaLogout cookie="" response="yes" outStatus="success"> </aaaLogout>
Error while trying to discover : 1.1.1.1
Exception: [ErrorMessage]: [Error]: login : Invalid IMC Server <1.1.1.1>
------------------------------------------------------------
Traceback (most recent call last):
File "/opt/cisco-imc-nagios-0.9.2/autodiscovery/NagiosAutoDiscoveryIMC.py", 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/ImcNagiosDiscovery.py", line 61, in __init__
ImcNagiosFileHandler.__init__(self, self.get_imc_handle(), self.imc_dict)
File "/opt/cisco-imc-nagios-0.9.2/autodiscovery/ImcNagiosDiscovery.py", line 69, in get_imc_handle
self.no_ssl, self.port, self.proxy,auto_refresh=False)
File "/usr/lib/python2.6/site-packages/ImcSdk/ImcHandle.py", line 420, in login
raise ImcValidationException('[Error]: login : Invalid IMC Server <%s>' %(self.__name))
ImcValidationException: [ErrorMessage]: [Error]: login : Invalid IMC Server <1.1.1.1>
------------------------------------------------------------
Error while trying to auto discover Rack Infrastructure. Check if any of the Rack's are reachable.
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?
Jeff
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).
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: