Collection of CheckMK checks (see https://checkmk.com/). All checks and plugins are provided as is. Absolutely no warranty. Send any comments to thl-cmk[at]outlook[dot]com

Skip to content
Snippets Groups Projects
Commit 19cbf8d4 authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent 26e64539
Branches 1.6.x
No related tags found
No related merge requests found
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#
# 03.04.2016 : rewrite by Th.L.
# 24.05.2016 : added admin/operational state, fix for missing ap_name parameter
# 01.07.2016 : added long output
# 06.07.2016 : fixed: missing ap
# 05.01.2018 : cosmetic changes, added metrics/cisco_wlc.py
# 23.05.2018 : changed scan function, changed return values to yield
# code cleanup, removed unused oid's
# 26.07.2018 : added code for incomplete ap data (missing lwap, data)
# 03.08.2018 : changed cdp info: short interface name, dropped neighbor domain name, added S/N and Model to longoutput
# 14.09.2018 : fixed issue with missing AP, fixed issue with SSH check
#
# 2016-04-03: rewrite by Th.L.
# 2016-05-24: added admin/operational state, fix for missing ap_name parameter
# 2016-07-01: added long output
# 2016-07-06: fixed: missing ap
# 2018-01-05: cosmetic changes, added metrics/cisco_wlc.py
# 2018-05-23: changed scan function, changed return values to yield
# code cleanup, removed unused oid's
# 2018-07-26: added code for incomplete ap data (missing lwap, data)
# 2018-08-03: changed cdp info: short interface name, dropped neighbor domain name, added S/N and Model to longoutput
# 2018-09-14: fixed issue with missing AP, fixed issue with SSH check
# 2021-10-29: added basic suppoert for Catalyst 9800 Controllers
factory_settings['cisco_wlc_defaults'] = {
......@@ -87,27 +87,28 @@ def parse_cisco_wlc(info):
ap_assocfailcountforrssilow, ap_assocfailtimes, ap_echorequestcount, ap_echoresponselosscount = lwapapentry
if lwap_oid_end == OID_END:
lwapap_info = {'ap_uptime': int(ap_uptime),
'ap_encryptionenable': int(ap_encryptionenable),
'ap_powerstatus': int(ap_powerstatus),
'ap_telnetenable': int(ap_telnetenable),
'ap_sshenable': int(ap_sshenable),
'ap_wipsenable': int(ap_wipsenable),
'ap_encryptionsupported': int(ap_encryptionsupported),
'ap_dataencryptionstatus': int(ap_dataencryptionstatus),
'ap_adminstatus': int(ap_adminstatus),
'ap_assoccount': int(ap_assoccount),
'ap_associatedclientcount': int(ap_associatedclientcount),
'ap_maxclientlimitnumbertrap': int(ap_maxclientlimitnumbertrap),
'ap_reassocsucccount': int(ap_reassocsucccount),
'ap_reassocfailcount': int(ap_reassocfailcount),
'ap_activeclientcount': int(ap_activeclientcount),
'ap_assocfailcountforrssilow': int(ap_assocfailcountforrssilow),
'ap_assocfailtimes': int(ap_assocfailtimes),
'ap_echorequestcount': int(ap_echorequestcount),
'ap_echoresponselosscount': int(ap_echoresponselosscount)
}
lwapap_info = {
'ap_uptime': int(ap_uptime),
'ap_encryptionenable': int(ap_encryptionenable),
'ap_powerstatus': int(ap_powerstatus),
'ap_telnetenable': int(ap_telnetenable),
'ap_sshenable': int(ap_sshenable),
'ap_wipsenable': int(ap_wipsenable),
'ap_encryptionsupported': int(ap_encryptionsupported),
'ap_dataencryptionstatus': int(ap_dataencryptionstatus),
'ap_adminstatus': int(ap_adminstatus),
'ap_assoccount': int(ap_assoccount) if ap_assoccount.isdigit() else None,
'ap_associatedclientcount': int(ap_associatedclientcount) if ap_associatedclientcount.isdigit() else None,
'ap_maxclientlimitnumbertrap': int(ap_maxclientlimitnumbertrap) if ap_maxclientlimitnumbertrap.isdigit() else None,
'ap_reassocsucccount': int(ap_reassocsucccount) if ap_reassocsucccount.isdigit() else None,
'ap_reassocfailcount': int(ap_reassocfailcount) if ap_reassocfailcount.isdigit() else None,
'ap_activeclientcount': int(ap_activeclientcount) if ap_activeclientcount.isdigit() else None,
'ap_assocfailcountforrssilow': int(ap_assocfailcountforrssilow) if ap_assocfailcountforrssilow.isdigit() else None,
'ap_assocfailtimes': int(ap_assocfailtimes) if ap_assocfailtimes.isdigit() else None,
'ap_echorequestcount': int(ap_echorequestcount) if ap_echorequestcount.isdigit() else None,
'ap_echoresponselosscount': int(ap_echoresponselosscount) if ap_echoresponselosscount.isdigit() else None,
}
return lwapap_info
if len(info) != 0:
......@@ -205,7 +206,9 @@ def check_cisco_wlc(item, params, parsed):
else:
ap_uptime = 'unknown'
infotext = 'up since: %s, clients: %s' % (ap_uptime, ap.get('ap_activeclientcount', 'unknown'))
infotext = 'up since: %s' % ap_uptime
if ap.get('ap_activeclientcount'):
infotext += ', clients: %s' % ap.get('ap_activeclientcount', 'unknown')
longoutput = '\nBase data:'
longoutput += '\n - IP address: %s' % ap.get('ap_ipaddress')
......@@ -262,7 +265,7 @@ def check_cisco_wlc(item, params, parsed):
if not params.get('ignore_ap_powerstatus'):
yield 2, 'Not on full power'
if ap.get('cdp_neigh_duplex', 3) == 3:
if ap.get('cdp_neigh_duplex', None) == 3:
longoutput += '\n - CPD duplex state is half duplex (check network connection).'
if not params.get('ignore_cdp_duplex'):
yield 2, 'CDP state is half duplex'
......@@ -336,7 +339,8 @@ check_info['cisco_wlc'] = {
'has_perfdata': True,
'default_levels_variable': 'cisco_wlc_defaults',
'parse_function': parse_cisco_wlc,
'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0') == 'Cisco Controller',
'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0') == 'Cisco Controller' or
oid('.1.3.6.1.2.1.1.1.0').lower().find('c9800_iosxe') != -1,
'snmp_info': [('.1.3.6.1.4.1.14179.2.2.1.1', [ # AIRESPACE-WIRELESS-MIB::bsnAPEntry
OID_END,
'3', # 1 bsnAPName
......
No preview for this file type
{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)',
'description': 'Monitors Cisco WLC APs. \nservice checks for:\n - missing APs\n - ssh/telnet enabled\n - encryption disabled\n - not on full PoE\n - admin/operational state\nPerfdata: Clientcount, clientfail, uptime, ...',
{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)',
'description': u'Monitors Cisco WLC APs. \nservice checks for:\n - missing APs\n - ssh/telnet enabled\n - encryption disabled\n - not on full PoE\n - admin/operational state\nPerfdata: Clientcount, clientfail, uptime, ...\n\n',
'download_url': 'http://thl-cmk.hopto.org',
'files': {'agents': [],
'bin': [],
'checkman': [],
'checks': ['cisco_wlc'],
'doc': [],
'inventory': [],
'lib': [],
'notifications': [],
'pnp-templates': [],
'files': {'checks': ['cisco_wlc'],
'web': ['plugins/wato/cisco_wlc.py',
'plugins/metrics/cisco_wlc.py']},
'name': 'cisco_wlc',
'num_files': 3,
'title': 'monitor Cisco WLC APs',
'version': '20180914.v04c',
'title': u'monitor Cisco WLC APs',
'version': '20211029.v04d',
'version.min_required': '1.2.8b8',
'version.packaged': '1.4.0p38',
'version.packaged': '1.6.0p25',
'version.usable_until': None}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment