Cisco has done a great job implementing SNMP into its 4400 WLC.
The sheer number of OIDs is phenomenal.
You will need two MIB files to translate OIDs from numeric into named
AIRESPACE-SWITCHING-MIB | 1.3.6.1.4.1.14179.1 | ||||
AIRESPACE-WIRELESS-MIB | 1.3.6.1.4.1.14179.2 |
Both are avaible to view and download here:
http://www.oidview.com/mibs/14179/md-14179-1.html
Or from Cisco site:
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=1.3.6.1.4.1.14179
First monitor - Number of users connected to given AP
This will tell us how many people are connected to one particular Cisco Airespace Access Point
For that we only need one OID:
From table: bsnAPIfLoadParametersTable
Entry: bsnAPIfLoadNumOfClients
Numerical OID: 1.3.6.1.4.1.14179.2.2.13.1.4
And if we do a snmpwalk on it we will find that there is a bit more work to do.
Why?
Because Cisco APs connected to given controller are identified in SNMP database by a string o random values preceded by a single 0 (zero) like this: 0.31.155.25.136.80 .
Also will can see that each AP has two OIDs. One ending with ".0" other with ".1".
Thats because the APs can work in one of two modes: a/h or b/g/n.
So in order to get the correct data (via smnpget) we need to join the OIDs into one string like this:
1.3.6.1.4.1.14179.2.2.13.1.4.0.31.155.25.136.8.0
Here is an example command:
snmpget -c public 192.168.200.100 -Ovq 1.3.6.1.4.1.14179.2.2.13.1.4.0.31.155.25.136.8.0
The output would be for example:
5
The -O parameter controls output of snmpget.
- 'v' - does not print OID string,
- 'q' - quick print values (without the value type) - makes parsing of output much simpler
http://www.monitoringexchange.org/inventory/Check-Plugins/Network/Cisco-AP-Client-number
Second monitor - Profile status of given AP
This will tell us the profile status of one particular Cisco Airespace Access Point
For that we need 4 OIDs:
From table: bsnAPIfProfileStateTable
1.3.6.1.4.1.14179.2.2.16.1.1
1.3.6.1.4.1.14179.2.2.16.1.2
1.3.6.1.4.1.14179.2.2.16.1.3
1.3.6.1.4.1.14179.2.2.16.1.24
The values of those OIDs are: Passed or Failed.
Word on profiles:
There are 4:
- load (...14179.2.2.16.1.1)
- noise (...14179.2.2.16.1.3)
- interference (...14179.2.2.16.1.2)
- coverage (...14179.2.2.16.1.24)
Here is a link to a Perl script I created for Nagios/Opsview:
http://www.monitoringexchange.org/inventory/Check-Plugins/Hardware/Network/Network-Gear/Cisco-AP-Profile-Status
Third monitor - basic traffic information of given AP
Those OIDs will give us information on total send and receive utilization (in %) as well as channel number and its utilization. Another information that should be checked is th operations status of the AP
For that we need few more OIDs:
From table: bsnAPTable
Administrative Status: 1.3.6.1.4.1.14179.2.2.1.1.37
The value of this OID can be:
1 - enable
2 - disable
Operational Status: 1.3.6.1.4.1.14179.2.2.1.1.6
The value of this OID can be:
1 - associated
2 - disassociating
3 - downloading
From table: bsnAPIfLoadParametersTable
TX utilization: 1.3.6.1.4.1.14179.2.2.13.1.1
RX utilization: 1.3.6.1.4.1.14179.2.2.13.1.2
Channel utilization: 1.3.6.1.4.1.14179.2.2.13.1.3
The value of those OIDs are given in %.
There are global values of the AP (not on per client basis)
And the number of channel used by this AP we get from table: bsnAPIfTable
1.3.6.1.4.1.14179.2.2.2.1.4
Here is a link to a Perl script I created for Nagios/Opsview:
http://www.monitoringexchange.org/inventory/Check-Plugins/Hardware/Network/Network-Gear/Cisco-AP-Traffic
Hello- Thanks for the article.. You noted: "Why?
ReplyDeleteBecause Cisco APs connected to given controller are identified in SNMP database by a string o random values preceded by a single 0 (zero) like this: 0.31.155.25.136.80 ".
This isn't a string of random values, and while it will probably begin with zero, it won't always. These last 6 values in the OID is decimal value of the device MAC address.
It is very useful as it can be used to easily get to an entry in a table if/when you know the mac address..
Almost Awesome admin ;-)
ReplyDeleteAdjusted Perl script with:
num_of_ap=`/usr/bin/snmpwalk -v 2c -c $community $hostname 1.3.6.1.4.1.14179.2.2.1.1.37 | grep -v "No Such Instance currently exists at this OID" | wc -l`
because 0 accesspoints reports still 1 line:
/etc/nagios/objects > /usr/bin/snmpwalk -v 2c -c c community host 1.3.6.1.4.1.14179.2.2.1.1.37
SNMPv2-SMI::enterprises.14179.2.2.1.1.37 = No Such Instance currently exists at this OID
Please let me know you mean to say that we walk/poll the device(WLC) with this OID 1.3.6.1.4.1.14179.2.2.13.1.4
ReplyDeleteand then add the result obtained back to this OID 1.3.6.1.4.1.14179.2.2.13.1.4 and then again do a walk ?
im new to nagios .. how would you implement this into the cofig files for nagios?
ReplyDeleteThank you! It help me a lot.
ReplyDelete