Friday 15 May 2015

Cisco UCS C-Series servers CIMC SNMP configuration and features.

SNMP was designed as a response/request protocol. A network-management system that wants to inquire about the condition of a managed device issues a GET command to retrieve an object from the agent on the managed device. If the object is one of several objects in a list or table, the network-management system can use the GETNEXT command to retrieve the next object.

The network-managment system can also use SNMP to control the managed-device by using the SET command to change the value of an object [WARNING! SET command is NOT supported on C-Series servers]. If the managed-device needs to notify the network-management station of some event, it can issue a TRAP command to pass messages to the NMS (Network Management Station).

Cisco C-Series CIMC SNMP implementation supports SNMP version 2 and 3.Using this protocol we can monitor hardware e.g. CPU temperature etc.

The SNMP is not enabled and configured on C-Series CIMC by default. We have to enabled it and configure:

* Login to CIMC using IP address or FQDN name:

Choose -> Admin TAB -> Communications Services -> SNMP TAB -> Check BOX 'SNMP Enabled' and enter appropriate values into the fields.



* Configure your NMS (Network Managemet Station) IP address which will receive TRAPS from C-Series Server CIMC:

Choose -> Admin TAB -> Communications Services -> SNMP TAB -> Trap Destinations TAB (Right Side of the pane) -> click Add button and enter appropriate values.

 
* we can login to CIMC via SSH to check or set snmp configuration.

Under the hood of CIMC we have Linux OS with running snmpd daemon. This daemon can crash.Unfortunately to get access to Linux we have to involve Cisco TAC which will enable Linux shell using so called debug-plugin. I hope that Cisco will eventually open access to that shell following good example of Arista Networks.

We still can troubleshoot SNMP using net-snmp-utils package on your Linux box. (I am using Fedora on my laptop.)

# yum -y install net-snmp\*

The net-snmp-utils package includes a number of useful applications for querying managed devices from the command line. The snmpwalk command uses SNMP GetNext commands to recursively browse the MIB-tree below a given Table. For example, the following command will return a list of all objects subordinate to the 'cucsProcessorUnitTable'

# snmpwalk -v2c -t 15 -c public -mALL -M /home/user/Cisco_MIBs <CIMC IP ADDRESS> <OID or TEXT NAME OF OID>

-v2c : SNMP ver.2
-t : timeout 15sec
-c : community string 
-mALL : all MIBs
-M : all MIBs in directory 
 

To download Cisco UCS C-Series Manager MIBs please go to link:

ftp://ftp.cisco.com/pub/mibs/supportlists/ucs/ucs-C-supportlist.html 
 
How to translate OID to text name? We can use snmptranslate command:

If you can't remember the branch of the MIB tree that contains particular object, use command below:

#snmptranslate -IR -mALL -M /home/user/CISCO_C-Series_MIBs/UCS_Cseries2.0/ cucsProcessorUnitTable
CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB::cucsProcessorUnitTable


To obtain OID of text name use command below:

#snmptranslate -On -mALL -M /home/user/CISCO_C-Series_MIBs/UCS_Cseries2.0/ CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB::cucsProcessorUnitTable
.1.3.6.1.4.1.9.9.719.1.41.9 


To get text name knowing OID use this command:

#snmptranslate -mALL -M /home/user/CISCO_C-Series_MIBs/UCS_Cseries2.0/  .1.3.6.1.4.1.9.9.719.1.9.6
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardTable

 
To print the branch of tree for particular object ID:

#snmptranslate -Tp -mALL -M /home/kb/Documents/CISCO_C-Series_MIBs/UCS_Cseries2.0/  .1.3.6.1.4.1.9.9.719.1.9.6
+--cucsComputeBoardTable(6)
   |
   +--cucsComputeBoardEntry(1)

...snip...snip...

Using the command above we can find the values of given object:

 

If you prefer GUI you can use MIB browsers e.g.

http://ireasoning.com/mibbrowser.shtml

or

https://www.manageengine.com/products/mibbrowser-free-tool/


To test your configuration you can send test trap using 'Send SNMP Test Trap' button in CIMC web console. Or if you prefer hard and unsupported way and if Cisco TAC open Linux shell entering debug-plugin you can use ipmitool and change thresholds (again this is unsupported!!! but much more fun ;-)) e.g. FAN and monitor traps on your NMS.







  the end.