Cisco

check_snmp_cisco_wlc – Check the avaibility of Cisco WLC Access Points

Description:

check_snmp_cisco_wlc is a Nagios plugin to monitor the status of Cisco Wireless Lan Controller (former Airespace) access points.
By Martin Fuerstenau

Current Version

1.5

Last Release Date

2016-04-18

Compatible With

  • Nagios 3.x
  • Nagios 4.x

License

Other


Project Files
Project Notes
check_snmp_cisco_wlc is a Nagios plugin to monitor the status of Cisco Wireless Lan Controller (former Airespace) access points Author: ======= Martin Fuerstenau, Oce Printing Systems GmbH, martin.fuerstenau_at_oce.com History and Changes: ==================== - 13 Dec 2017 Version 1.5 - Added the amount of APs to output. - 18 Apr 2016 Version 1.4 - Added --showerror_only. This will only show WLCs causing trouble. - 21 Aug 2014 Version 1.3 - Bugfix for blacklisted items. The blacklisted AP was still written to the AP list because it was still in the hash storing all elements. Now it is deleted from the hash instead of skipped only. - 26 Jun 2014 Version 1.2 - Fixed some small issues in help und usage. - Added blacklist support (-B|--blacklist) for AP names. The blacklist is a case sensitive comma seperated list. If used with --isregexp every item of the list is interpreted as regular expression. - 04 Dec 2013 Version 1.1 Thanks to Mihail Karageorgiev. - Added SNMPv3 support. - fixed last 3 bytes AP. - 10 Aug 2012 Version 1 - First released version. Syntax: ======= ./check_snmp_cisco_wlc -H -C General: ======== Cisco Wireless Lan Controller (WLC) is in some parts a little bit tricky to monitor. At present this plugin is focussed on the availability of the access points (AP). The plugin test for the status of an AP. If an AP is downloading it is not available. This will give a warning alert. If it is disassociated it will give a critical alert. If an new AP joins the WLC is automatically added with a default name (ap_name.MAC-address). the plugin will determine this and give a warning. This warning disappears if the AP is configured and has a "real" name. The main problem in monitoring AP is the get an alert in case of a breakdown or power off of an AP. This is not a monitorable alert (normally) because the AP simply disappears from the WLC and after a power on it is back. There is no "offline" status to monitor. One method to solve this is to handle over the number of APs. The other more flexible method is to compare it with historical data. Therefore we will have a file to cache to old results (variable $plugin_cache around line 88). In my case to speed up cached results the cache directory is a tmpfs. The plugin compares the old data with the actual data. If there is no old data (first check) the actual data is stored and will be used as old data the next run. If old data is a subset of actual data old data is overwritten with the actual data. If there are APs in the old data but not in the actual data an critical alert is caused. To reset the alarm the cached data (old) can be removed by hand (but I am too lazy for this), by calling the plugin with option -r whith host address and without community string (does the same) or it can be resetted via a trick by acknowdging the problem. Here is how it goes. 1. Command definition ===================== define command{ command_name check_cisco_wlc command_line /usr/lib/nagios/my_plugins/check_snmp_cisco_wlc -H $HOSTADDRESS$ -C $ARG1$ --showerror } 2. Service check definition =========================== define service{ active_checks_enabled 1 passive_checks_enabled 1 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 host_name cisco-wlc service_description AccessPoints is_volatile 0 check_period 24x7 max_check_attempts 5 normal_check_interval 5 retry_check_interval 2 contact_groups network-adm,wlc-recover notification_interval 1440 notification_period 24x7 notification_options c,w,r check_command check_cisco_wlc!public } contactgroup wlc-recover is important. A direct contact is also possible- 3. contactgroup wlc-recover =========================== This contactgroup only contains one member: define contactgroup{ contactgroup_name wlc-recover alias Removes WLC historic data members wlc-recover } 4. contact wlc-recover ====================== Look at the service_notification_commands. From service_notification_options we only need option r but unfortunately sending a notification on for recovery is not possible. define contact{ contact_name wlc-recover alias wlc-recover service_notification_period 24x7 host_notification_period 24x7 service_notification_options c,w,r host_notification_options n service_notification_commands recover-cisco-wlc host_notification_commands host-notify-by-email email dummy@dummy.com } 5. Definition of recover-cisco-wlc ================================== This definition call a wrapper shell script becaus we must filter out notifications for all other than r: define command{ command_name recover-cisco-wlc command_line /usr/lib/nagios/my_plugins/wlc-recover "$NOTIFICATIONTYPE$" "$HOSTADDRESS$" } 6. The little wrapper script ============================ #!/bin/bash NOTIFICATIONTYPE=$1 HOSTADDRESS=$2 if [ "$NOTIFICATIONTYPE" = "RECOVERY" ] then /usr/lib/nagios/my_plugins/check_snmp_cisco_wlc -H $HOSTADDRESS -r fi With this trick a member of the contactgroup network-adm can acknowledge the problem (which means "Yeah - I kicked out the AP. It's ok") and reset it to green.
Reviews (7) Add a Review
Blacklist
by bramassendorp, May 31, 2023

Perfect script, small thing, the blacklist, anyone got that to work?



Able to monitor total no. of connected APs
by nishith, December 31, 2022

[root@nagios libexec]# ./check_snmp_cisco_wlc_1.5 -H 10.10.0.1 -C public -v 2c --showerror Total Connected APs are 17 Every AP of 17 APs on WCL is ok. DataCentre_AP01 is associated (Ok) SecurityGate_AP02 is associated (Ok) HR_Cabin_AP03 is associated (Ok) 1st_Floor_AP04 is associated (Ok) Main_Room_AP05 is associated (Ok) ..... Total 17 APs are showing. Also, this plug-in generates a "text file" named "10.10.0.1_17" inside "/usr/local/nagios/libexec/" directory that also contains similar information. This plug-in is really a worth. Also, I'm looking to monitor WLC CPU, Memory, Interface Utilization along with connected users on each AP. Has anyone identified such kind of plug-in? If yes, please share details on "nvblue@gmail.com".



Quick to setup.
by Grenage, October 31, 2021

Just what we needed, and quick to implement. Thank you.



Blacklist questions
by dbostic, April 30, 2020

I am trying to get the blacklist working on this. We have an access point that comes up for a few hours a day, so I thought I could blacklist it. Maybe I don't understand how this works. I thought if I listed that access point in the blacklist file, if the AP was there, it would be ignored so that when it is not there, it would not show as an error. I have tried everything I can think of and cannot get this one thing to work. I love this script for everything else and it seems to work well, but either I have something wrong with my blacklist or I just don't understand how it works. check_snmp_cisco_wlc_1.5 -H (hostname) -C (snmp) -B --exclude=/usr/local/nagios/libexec/ap_blacklist --showerror_only in the blacklist, I have put in the ap name, and I have tried it with the entire string out of the "old" file used to compare it to including the Hex to Decimal string. This is the only issue I have had and everything else seems to work great!



Works - but has a problem
by aherbjornsen, January 31, 2020

It works, but I noticed a problem where it got stuck reporting a problem when there was none. I line 446 it says: if ($NoAPs lt $NoAPs_old) This is a string comparison and iterates incorrectly when e.g. NoAPs_old100 I believe the correct syntax should be: if ($NoAPs I might have it all wrong.



SNMP 3 Error
by Toby777, September 30, 2019

Our WLC using SNMP 3 and when I run the command manually, I get the following results... -bash: !2: event not found Any ideas why this could be?



Seems to work
by cmeatsvg, December 31, 2013

Does what it says with minimal configuration. Well documented. If you are getting perl errors when running the command in Nagios but it works OK directly, add /bin/perl to the beginning of the command.



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4.3 (8)
Favorites
1
Views
75,834