From 616680a679dab87f5bc0e21803ec1ff2fa971e3c Mon Sep 17 00:00:00 2001 From: "Th.L" <thl-cmk@outlook.com> Date: Thu, 15 Jul 2021 21:50:00 +0200 Subject: [PATCH] update project --- agent_based/cisco_wlc_temp.py | 124 +++++++++++++++++++++++++++++ checkman/cisco_wlc_temp | 19 ++--- cisco_wlc_temp.mkp | Bin 2686 -> 2856 bytes packages/cisco_wlc_temp | 23 +++--- web/plugins/wato/cisco_wlc_temp.py | 78 +++++++++++++----- 5 files changed, 206 insertions(+), 38 deletions(-) create mode 100644 agent_based/cisco_wlc_temp.py diff --git a/agent_based/cisco_wlc_temp.py b/agent_based/cisco_wlc_temp.py new file mode 100644 index 0000000..37ae9de --- /dev/null +++ b/agent_based/cisco_wlc_temp.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# License: GNU General Public License v2 +# +# Author: thl-cmk[at]outlook[dot]com +# URL : https://thl-cmk.hopto.org +# Date : 2016-03-31 +# +# Monitors Cisco WLC temperature sensor +# +# tested with WLC2504, WLC5520 +# +# 2016-07-02: fixed crit/warn to >= +# 2018-09-14: workaround for wrong data from Mobility Express Controller --> removed +# 2021-07-15: rewritten for CMK 2.0 +# +# sample snmpwalk +# +# .1.3.6.1.4.1.14179.2.3.1.12.0 = STRING: "1" +# .1.3.6.1.4.1.14179.2.3.1.13.0 = STRING: "18" +# .1.3.6.1.4.1.14179.2.3.1.14.0 = STRING: "10" +# .1.3.6.1.4.1.14179.2.3.1.15.0 = STRING: "38" +# +# sample string_table +# +# [['1', '18', '10', '38']] +# + +from dataclasses import dataclass +from typing import Optional +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + +from cmk.base.plugins.agent_based.agent_based_api.v1 import ( + register, + Service, + Result, + SNMPTree, + contains, + State, + check_levels, +) + + +@dataclass +class CiscoWlcTemp: + environment: str + current: int + lowlimit: float + highlimit: float + + +_wlc_temp_environment = { + '0': 'unknown', + '1': 'commercial', + '2': 'industrial', +} + + +def parse_cisco_wlc_temp(string_table: StringTable) -> Optional[CiscoWlcTemp]: + try: + environment, temperature, lowlimit, highlimit = string_table[0] + except IndexError: + return + + temperature = int(temperature) + highlimit = int(highlimit) + lowlimit = int(lowlimit) + environment = _wlc_temp_environment.get(environment) + return CiscoWlcTemp( + environment=environment, + current=temperature, + lowlimit=lowlimit, + highlimit=highlimit, + ) + + +def discovery_cisco_wlc_temp(section: CiscoWlcTemp) -> DiscoveryResult: + yield Service() + + +def check_cisco_wlc_temp(params, section: CiscoWlcTemp) -> CheckResult: + yield from check_levels( + value=section.current, + label='Temperature', + levels_upper=params['levels_upper'], + levels_lower=params['levels_lower'], + render_func=lambda v: f'{v}°C', + metric_name='temp', + boundaries=(0, 100), + ) + + yield Result(state=State.OK, + notice=f'Lower/upper levels reported by the device: {section.lowlimit}°C/{section.highlimit}°C') + yield Result(state=State.OK, notice=f'Environment type reported by the device: {section.environment}') + + +register.snmp_section( + name='cisco_wlc_temp', + parse_function=parse_cisco_wlc_temp, + fetch=SNMPTree( + base='.1.3.6.1.4.1.14179.2.3.1', # AIRESPACE-WIRELESS-MIB::bsnGlobalDot11Config + oids=[ + '12', # bsnOperatingTemperatureEnvironment + '13', # bsnSensorTemperature (Current Internal Temperature of the unit in Centigrade) + '14', # bsnTemperatureAlarmLowLimit + '15', # bsnTemperatureAlarmHighLimit + ] + ), + detect=contains('.1.3.6.1.2.1.1.1.0', 'Cisco Controller'), # sysDescr +) + +register.check_plugin( + name='cisco_wlc_temp', + service_name='Temperature', + discovery_function=discovery_cisco_wlc_temp, + check_function=check_cisco_wlc_temp, + check_default_parameters={'levels_upper': (36, 38), 'levels_lower': (12, 10)}, + check_ruleset_name='cisco_wlc_temp', +) diff --git a/checkman/cisco_wlc_temp b/checkman/cisco_wlc_temp index cb4b034..2329c01 100644 --- a/checkman/cisco_wlc_temp +++ b/checkman/cisco_wlc_temp @@ -1,30 +1,31 @@ -title: Cisco WLC: temperatur sensors +title: Cisco WLC: temperature sensor agents: snmp author: Th.L. catalog: hw/network/cisco license: GPLv3 distribution: unkown description: - The Cisco "Wireless LAN Controller" (WLC) has some temperatur sensors. - This check allows to monitor this sensors. Default levels are 60°/70° celsius - for warning/critical. + The Cisco "Wireless LAN Controller" (WLC) has some temperature sensors. + This check allows to monitor this sensors. The check uses the bsnSensorTemperature from the AIRESPACE-WIRELESS-MIB (1.3.6.1.4.1.14179). - The check is tested against WLC2504 devices. + The check is tested against WLC2504 and WLC5520 devices. perfdata: - Temperatur + temp item: - One item per temperatur sensor is generated. + There is no item. inventory: - The check detects WLC temperatur sensors and saves them. + The check detects WLC temperature sensors and saves them. parameters: - Warning/Critical levels. Default is 60°/70° celsius. + lower_levels, default is 12°C/10°C + upper_levels, default is 36°C/38°C + diff --git a/cisco_wlc_temp.mkp b/cisco_wlc_temp.mkp index 4d4807e2bea9c71f8777ecff0b4dc3ad19429912..71b877e41331ed5e39b76fc356b087c056f8e8cb 100644 GIT binary patch delta 2825 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 b5eNj6QVJlG-3JK_UyFYOBc$sP0H6Q>zKf}j delta 2659 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 R4Iun~;lG%L<qZI!005JuH4Fd% diff --git a/packages/cisco_wlc_temp b/packages/cisco_wlc_temp index 6e34fe6..b864ecb 100644 --- a/packages/cisco_wlc_temp +++ b/packages/cisco_wlc_temp @@ -1,14 +1,15 @@ -{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)', - 'description': u'monitor Cisco WLC temperatur sensor\n\ntested with WLC2504\n', +{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)', + 'description': 'monitor Cisco WLC temperature sensor\n' + '\n' + 'tested with WLC2504 and WLC5520\n', 'download_url': 'https://thl-cmk.hopto.org', - 'files': {'checkman': ['cisco_wlc_temp'], - 'checks': ['cisco_wlc_temp'], - 'web': ['plugins/wato/cisco_wlc_temp.py', - 'plugins/metrics/cisco_wlc_temp.py']}, + 'files': {'agent_based': ['cisco_wlc_temp.py'], + 'checkman': ['cisco_wlc_temp'], + 'web': ['plugins/wato/cisco_wlc_temp.py']}, 'name': 'cisco_wlc_temp', - 'num_files': 4, - 'title': u'monitor Cisco WLC temperatur sensor', - 'version': '20180805.v.0.0.1', - 'version.min_required': '1.2.8b8', - 'version.packaged': '1.6.0p12', + 'num_files': 3, + 'title': 'monitor Cisco WLC temperature sensor', + 'version': '20210715.v.0.2', + 'version.min_required': '2.0.0', + 'version.packaged': '2021.07.14', 'version.usable_until': None} \ No newline at end of file diff --git a/web/plugins/wato/cisco_wlc_temp.py b/web/plugins/wato/cisco_wlc_temp.py index ef71059..e0ecbb4 100644 --- a/web/plugins/wato/cisco_wlc_temp.py +++ b/web/plugins/wato/cisco_wlc_temp.py @@ -1,22 +1,64 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # -# Author : Th.L. -# Content: wato plugin for snmp check 'cisco_wlc_temp' -# to configure waring/critical levels +# License: GNU General Public License v2 # +# Author: thl-cmk[at]outlook[dot]com +# URL : https://thl-cmk.hopto.org +# Date : 2016-03-31 # -register_check_parameters( - subgroup_environment, - 'cisco_wlc_temp', - _('Cisco WLC temperatur sensor'), - Tuple( - title=_('Cisco WLC temperatur sensor thresholds'), - elements=[ - Integer(title=_('warning at'), unit=_(u'° celsius'), default_value=50), - Integer(title=_('critical at'), unit=_(u'° celsius'), default_value=60), - ] - ), - None, - None +# WATO for plugin cisco_wlc_temp +# +# + +from cmk.gui.i18n import _ +from cmk.gui.valuespec import ( + Dictionary, + Tuple, + Integer, +) + +from cmk.gui.plugins.wato import ( + CheckParameterRulespecWithItem, + rulespec_registry, + RulespecGroupCheckParametersNetworking, ) + + +def _parameter_valuespec_cisco_wlc_temp(): + return Dictionary(elements=[ + ('levels_upper', + Tuple( + title=_('Temperature upper levels'), + help=_('Set the upper levels for temperature in °C. From the MID description: ' + 'Operating Environment of the Airespace Switch. commercial is Commercial (0 to 40 C) ' + 'and industrial is Industrial (-10 to 70 C)'), + elements=[ + Integer(title=_('Warning at'), unit=u'°C', default_value=36, minvalue=-20, maxvalue=100), + Integer(title=_('Critical at'), unit=u'°C', default_value=38, minvalue=-20, maxvalue=100) + ], + ), + ), + ('levels_lower', + Tuple( + title=_('Temperature lower levels'), + help=_('Set the lower levels for temperature in °C From the MID description: ' + 'Operating Environment of the Airespace Switch. commercial is Commercial (0 to 40 C) ' + 'and industrial is Industrial (-10 to 70 C)'), + elements=[ + Integer(title=_('Warning below'), unit=u'°C', default_value=12, minvalue=-20, maxvalue=100), + Integer(title=_('Critical below'), unit=u'°C', default_value=10, minvalue=-20, maxvalue=100) + ], + ), + ), + ]) + + +rulespec_registry.register( + CheckParameterRulespecWithItem( + check_group_name='cisco_wlc_temp', + group=RulespecGroupCheckParametersNetworking, + match_type='dict', + parameter_valuespec=_parameter_valuespec_cisco_wlc_temp, + title=lambda: _('Cisco WLC Temperature'), + )) -- GitLab