From 96ec9cf345280486ab585ddc31c80fbd62476b83 Mon Sep 17 00:00:00 2001 From: "Th.L" <thl-cmk@outlook.com> Date: Sun, 21 Mar 2021 22:43:49 +0100 Subject: [PATCH] update project --- agent_based/cisco_asyncos_cpu.py | 82 +++++++++++++++++++++++ agent_based/cisco_asyncos_mem.py | 95 ++++++++++++++++++++++++++ agent_based/cisco_asyncos_temp.py | 107 ++++++++++++++++++++++++++++++ checks/cisco_asyncos_cpu | 58 ---------------- checks/cisco_asyncos_dns | 5 +- checks/cisco_asyncos_fan | 6 +- checks/cisco_asyncos_license | 5 +- checks/cisco_asyncos_mem | 83 ----------------------- checks/cisco_asyncos_messageage | 5 +- checks/cisco_asyncos_power | 5 +- checks/cisco_asyncos_queue | 5 +- checks/cisco_asyncos_raid | 5 +- checks/cisco_asyncos_resources | 5 +- checks/cisco_asyncos_temp | 75 --------------------- checks/cisco_asyncos_update | 5 +- cisco_asyncos.mkp | Bin 11328 -> 11862 bytes packages/cisco_asyncos | 39 ++++++++--- 17 files changed, 342 insertions(+), 243 deletions(-) create mode 100644 agent_based/cisco_asyncos_cpu.py create mode 100644 agent_based/cisco_asyncos_mem.py create mode 100644 agent_based/cisco_asyncos_temp.py delete mode 100644 checks/cisco_asyncos_cpu delete mode 100644 checks/cisco_asyncos_mem delete mode 100644 checks/cisco_asyncos_temp diff --git a/agent_based/cisco_asyncos_cpu.py b/agent_based/cisco_asyncos_cpu.py new file mode 100644 index 0000000..1ad56b1 --- /dev/null +++ b/agent_based/cisco_asyncos_cpu.py @@ -0,0 +1,82 @@ +#!/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 : 2021-03-21 + +from typing import Mapping, Dict, List, Tuple, NamedTuple + +from .agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + +from .agent_based_api.v1 import ( + register, + Service, + equals, + Result, + check_levels, + State, + SNMPTree, + contains, + startswith, + all_of, + any_of, +) + + +# +# sample string_table +# [[['41']]] +# +def parse_cisco_asyncos_cpu(string_table: List[StringTable]) -> int: + try: + return int(string_table[0][0][0]) + except KeyError: + pass + + +def discovery_cisco_asyncos_cpu(section: int) -> DiscoveryResult: + yield Service() + + +def check_cisco_asyncos_cpu(params, section: int) -> CheckResult: + def render_percent(value) -> str: + return '%s%%' % value + + yield from check_levels( + section, + label='CPU utilization in the last minute', + levels_upper=params.get('util', None), + metric_name='util', # if params.get('output_metrics') else None, + render_func=render_percent, + ) + + +register.snmp_section( + name='cisco_asyncos_cpu', + parse_function=parse_cisco_asyncos_cpu, + fetch=[ + SNMPTree( + base='.1.3.6.1.4.1.15497.1.1.1', + oids=[ + '2' # ASYNCOS-MAIL-MIB::perCentCPUUtilization + ] + ), + ], + detect=contains('.1.3.6.1.2.1.1.1.0', 'AsyncOS'), +) + +register.check_plugin( + name='cisco_asyncos_cpu', + service_name='CPU Utilization 1 min', + discovery_function=discovery_cisco_asyncos_cpu, + check_function=check_cisco_asyncos_cpu, + check_default_parameters={}, + check_ruleset_name='cpu_utilization' +) diff --git a/agent_based/cisco_asyncos_mem.py b/agent_based/cisco_asyncos_mem.py new file mode 100644 index 0000000..b4ddf23 --- /dev/null +++ b/agent_based/cisco_asyncos_mem.py @@ -0,0 +1,95 @@ +#!/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 : 2021-03-21 +# +# .1.3.6.1.4.1.15497.1.1.1.1.0 = INTEGER: 0 +# .1.3.6.1.4.1.15497.1.1.1.7.0 = INTEGER: 1 +# +# ASYNCOS-MAIL-MIB::perCentMemoryUtilization.0 = INTEGER: 0 +# ASYNCOS-MAIL-MIB::memoryAvailabilityStatus.0 = INTEGER: memoryAvailable(1) +# +# sample info +# [[u'0', u'1']] +# + +from typing import Mapping, Dict, List, Tuple, NamedTuple + +from .agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + +from .agent_based_api.v1 import ( + register, + Service, + equals, + Result, + check_levels, + State, + SNMPTree, + contains, + startswith, + all_of, + any_of, +) + + +# factory_settings['cisco_asyncos_mem_default_levels'] = { +# 'levels':(80.0, 90.0), +# } + +# +# [[['48']] +# +def parse_cisco_asyncos_mem(string_table: List[StringTable]) -> int: + try: + return int(string_table[0][0][0]) + except KeyError: + pass + + +def discovery_cisco_asyncos_mem(section: int) -> DiscoveryResult: + yield Service() + + +def check_cisco_asyncos_mem(params, section: int) -> CheckResult: + def render_percent(value) -> str: + return '%s%%' % value + + yield from check_levels( + section, + label='Memory utilization', + levels_upper=params.get('util', None), + metric_name='util', # if params.get('output_metrics') else None, + render_func=render_percent, + ) + + +register.snmp_section( + name='cisco_asyncos_mem', + parse_function=parse_cisco_asyncos_mem, + fetch=[ + SNMPTree( + base='.1.3.6.1.4.1.15497.1.1.1', + oids=[ + '1', # perCentMemoryUtilization + ] + ), + ], + detect=contains('.1.3.6.1.2.1.1.1.0', 'AsyncOS'), +) + +register.check_plugin( + name='cisco_asyncos_mem', + service_name='Memory utilization', + discovery_function=discovery_cisco_asyncos_mem, + check_function=check_cisco_asyncos_mem, + check_default_parameters={}, + check_ruleset_name='memory' +) diff --git a/agent_based/cisco_asyncos_temp.py b/agent_based/cisco_asyncos_temp.py new file mode 100644 index 0000000..2b26886 --- /dev/null +++ b/agent_based/cisco_asyncos_temp.py @@ -0,0 +1,107 @@ +#!/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 : 2020-02-10 +# +# monitors status Cisco IronPort Appliances (ESA/SMA/WSA) temperature sensors +# Tested with: C380, M380, C370, M670, S370 +# +# 2021-03-21: rewrite for CMK 2.0 +# +# sample snmpwalk +# .1.3.6.1.4.1.15497.1.1.1.9.1.1.1 = INTEGER: 1 +# .1.3.6.1.4.1.15497.1.1.1.9.1.2.1 = INTEGER: 22 +# .1.3.6.1.4.1.15497.1.1.1.9.1.3.1 = STRING: Ambient +# +# ASYNCOS-MAIL-MIB::temperatureIndex.1 = INTEGER: 1 +# ASYNCOS-MAIL-MIB::degreesCelsius.1 = INTEGER: 22 +# ASYNCOS-MAIL-MIB::temperatureName.1 = STRING: Ambient +# + +from typing import Mapping, Dict, List, Tuple, NamedTuple + +from .agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + +from .agent_based_api.v1 import ( + register, + Service, + equals, + Result, + check_levels, + State, + SNMPTree, + contains, + startswith, + all_of, + any_of, +) + +from .utils.temperature import ( + check_temperature, + TempParamType, + to_celsius, +) + + +# +# [[['22', 'FP_TEMP_SENSOR']]] +# +def parse_cisco_asyncos_temp(string_table: List[StringTable]) -> dict: + sensors = {} + for sensor in string_table[0]: + try: + value, item = sensor + item = item.replace('_', ' ') + sensors.update({item: int(value)}) + except (ValueError, IndexError): + pass + return sensors + + +def discovery_cisco_asyncos_temp(section: Dict) -> DiscoveryResult: + for key in section.keys(): + yield Service(item=key) + + +def check_cisco_asyncos_temp(item, params: TempParamType, section) -> CheckResult: + try: + yield from check_temperature( + section[item], + params=params, + unique_name='check_cisco_asyncos_temp.%s' % item, + ) + except KeyError: + pass + + +register.snmp_section( + name='cisco_asyncos_temp', + parse_function=parse_cisco_asyncos_temp, + fetch=[ + SNMPTree( + base='.1.3.6.1.4.1.15497.1.1.1.9.1', # ASYNCOS-MAIL-MIB::temperatureEntry + oids=[ + '2', # degreesCelsius + '3', # temperatureName + ] + ), + ], + detect=contains('.1.3.6.1.2.1.1.1.0', 'AsyncOS'), +) + +register.check_plugin( + name='cisco_asyncos_temp', + service_name='Temperature %s', + discovery_function=discovery_cisco_asyncos_temp, + check_function=check_cisco_asyncos_temp, + check_default_parameters={}, + check_ruleset_name='temperature' +) diff --git a/checks/cisco_asyncos_cpu b/checks/cisco_asyncos_cpu deleted file mode 100644 index 1beb308..0000000 --- a/checks/cisco_asyncos_cpu +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- -# +------------------------------------------------------------------+ -# | ____ _ _ __ __ _ __ | -# | / ___| |__ ___ ___| | __ | \/ | |/ / | -# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / | -# | | |___| | | | __/ (__| < | | | | . \ | -# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ | -# | | -# | Copyright Mathias Kettner 2013 mk@mathias-kettner.de | -# +------------------------------------------------------------------+ -# -# This file is part of Check_MK. -# The official homepage is at http://mathias-kettner.de/check_mk. -# -# check_mk is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation in version 2. check_mk is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- -# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU General Public License for more de- -# ails. You should have received a copy of the GNU General Public -# License along with GNU Make; see the file COPYING. If not, write -# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -# Boston, MA 02110-1301 USA. - - -cisco_asyncos_cpu_default_levels = (80.0, 90.0) - - -def inventory_cisco_asyncos_cpu(info): - if len(info) > 0: - return [(None, 'cisco_asyncos_cpu_default_levels')] - - -def check_cisco_asyncos_cpu(_no_item, params, info): - warn, crit = params - util = float(info[0][0]) - perfdata=[('util', util, warn, crit, 0, 100)] - infotext = '%2.1f%% utilization in the last minute' % util - if util >= crit: - return 2, infotext + ' (critical at %d%%)' % crit, perfdata - elif util >= warn: - return 1, infotext + ' (warning at %d%%)' % warn, perfdata - else: - return 0, infotext, perfdata - - -check_info['cisco_asyncos_cpu'] = { - 'check_function': check_cisco_asyncos_cpu, - 'inventory_function': inventory_cisco_asyncos_cpu, - 'service_description': 'CPU Utilization', - 'has_perfdata': True, - 'group': 'cpu_utilization', - 'snmp_info': ('.1.3.6.1.4.1.15497.1.1.1', ['2']), # ASYNCOS-MAIL-MIB::perCentCPUUtilization - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], -} diff --git a/checks/cisco_asyncos_dns b/checks/cisco_asyncos_dns index 4d65116..a98e20d 100644 --- a/checks/cisco_asyncos_dns +++ b/checks/cisco_asyncos_dns @@ -66,7 +66,8 @@ check_info['cisco_asyncos_dns'] = { '15', # outstandingDNSRequests '16', # pendingDNSRequests ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], 'default_levels_variable': 'cisco_asyncos_dns_default_levels', } diff --git a/checks/cisco_asyncos_fan b/checks/cisco_asyncos_fan index 7109cc5..6c32919 100644 --- a/checks/cisco_asyncos_fan +++ b/checks/cisco_asyncos_fan @@ -90,7 +90,9 @@ check_info['cisco_asyncos_fan'] = { '2', # fanRPMs '3', # fanName ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include', 'fan.include'], 'default_levels_variable': 'cisco_asyncos_fan_default_levels', + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include', 'fan.include'], + # 'includes': ['fan.include'], } diff --git a/checks/cisco_asyncos_license b/checks/cisco_asyncos_license index 789ddd0..f950eb9 100644 --- a/checks/cisco_asyncos_license +++ b/checks/cisco_asyncos_license @@ -190,8 +190,9 @@ check_info['cisco_asyncos_license'] = { '3', # keyIsPerpetual '4', # keySecondsUntilExpire ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'default_levels_variable': 'cisco_asyncos_license_default_levels', + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'default_levels_variable': 'cisco_asyncos_license_default_levels', 'includes': ['cisco_asyncos.include'], } diff --git a/checks/cisco_asyncos_mem b/checks/cisco_asyncos_mem deleted file mode 100644 index 7efdd67..0000000 --- a/checks/cisco_asyncos_mem +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- -# -# original check by Andreas Doehler, rewritten by thl-cmk[at]outlook.com -# date: 09.03.2020 -# -# added oid for memoryAvailabilityStatus, added mitrics (Graph, Perf-O-Meter) -# -# -# check_mk is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation in version 2. check_mk is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- -# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU General Public License for more de- -# ails. You should have received a copy of the GNU General Public -# License along with GNU Make; see the file COPYING. If not, write -# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -# Boston, MA 02110-1301 USA. -# -# .1.3.6.1.4.1.15497.1.1.1.1.0 = INTEGER: 0 -# .1.3.6.1.4.1.15497.1.1.1.7.0 = INTEGER: 1 -# -# ASYNCOS-MAIL-MIB::perCentMemoryUtilization.0 = INTEGER: 0 -# ASYNCOS-MAIL-MIB::memoryAvailabilityStatus.0 = INTEGER: memoryAvailable(1) -# -# sample info -# [[u'0', u'1']] -# - - -factory_settings['cisco_asyncos_mem_default_levels'] = { - 'levels':(80.0, 90.0), - } - - -def inventory_cisco_asyncos_mem(info): - if len(info) > 0: - return [(None, None)] - - -def check_cisco_asyncos_mem(_no_item, params, info): - if 'levels' in params: - warn, crit = params['levels'] - else: - warn, crit = params - - perc_used, memoryStatus = info[0] - perc_used = float(perc_used) - - perfdata=[('mem_used', perc_used, warn, crit, 0, 100)] - infotext = '%2.1f%% Memory usage' % perc_used - if perc_used >= crit: - yield 2, infotext + ' (critical at %d%%)' % crit, perfdata - elif perc_used >= warn: - yield 1, infotext + ' (warning at %d%%)' % warn, perfdata - else: - yield 0, infotext, perfdata - - if memoryStatus.isdigit(): - memoryStatus = int(memoryStatus) - if memoryStatus == 1: - yield 0, 'Memory: available' - elif memoryStatus == 2: - yield 2, 'Memory: shortage' - elif memoryStatus == 3: - yield 1, 'Memory: full' - - -check_info['cisco_asyncos_mem'] = { - 'check_function': check_cisco_asyncos_mem, - 'inventory_function': inventory_cisco_asyncos_mem, - 'service_description': 'Memory Usage', - 'has_perfdata': True, - 'group': 'memory', - 'snmp_info': ('.1.3.6.1.4.1.15497.1.1.1', [ # ASYNCOS-MAIL-MIB - '1', # perCentMemoryUtilization - '7', # memoryAvailabilityStatus - ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], - 'default_levels_variable': 'cisco_asyncos_mem_default_levels', -} \ No newline at end of file diff --git a/checks/cisco_asyncos_messageage b/checks/cisco_asyncos_messageage index c2b3fc5..b1e3ee5 100644 --- a/checks/cisco_asyncos_messageage +++ b/checks/cisco_asyncos_messageage @@ -71,7 +71,8 @@ check_info['cisco_asyncos_messageage'] = { [ '14', # oldestMessageAge ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], 'default_levels_variable': 'cisco_asyncos_messageage_default_levels', + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } diff --git a/checks/cisco_asyncos_power b/checks/cisco_asyncos_power index b89ad00..fe9aa17 100644 --- a/checks/cisco_asyncos_power +++ b/checks/cisco_asyncos_power @@ -97,6 +97,7 @@ check_info['cisco_asyncos_power'] = { '3', # powerSupplyRedundancy '4', # powerSupplyName ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } \ No newline at end of file diff --git a/checks/cisco_asyncos_queue b/checks/cisco_asyncos_queue index 582e574..4330b2e 100644 --- a/checks/cisco_asyncos_queue +++ b/checks/cisco_asyncos_queue @@ -78,8 +78,9 @@ check_info['cisco_asyncos_queue'] = { '11' # workQueueMessages ] ), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, 'default_levels_variable': 'cisco_asyncos_queue_default_levels', + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } diff --git a/checks/cisco_asyncos_raid b/checks/cisco_asyncos_raid index 12bd831..ef9e921 100644 --- a/checks/cisco_asyncos_raid +++ b/checks/cisco_asyncos_raid @@ -93,6 +93,7 @@ check_info['cisco_asyncos_raid'] = { '3', # raidID '4', # raidLastError ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } \ No newline at end of file diff --git a/checks/cisco_asyncos_resources b/checks/cisco_asyncos_resources index 2915a74..761a5bb 100644 --- a/checks/cisco_asyncos_resources +++ b/checks/cisco_asyncos_resources @@ -57,6 +57,7 @@ check_info['cisco_asyncos_resources'] = { [ '6', # resourceConservationReason ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } diff --git a/checks/cisco_asyncos_temp b/checks/cisco_asyncos_temp deleted file mode 100644 index ac21c20..0000000 --- a/checks/cisco_asyncos_temp +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- -# -# Author: Th.L. -# Date: 10-02-2020 -# -# monitors status Cisco IronPort Appliances (ESA/SMA/WSA) temperature sensors -# Tested with: C380, M380, C370, M670, S370 -# -# -# based on original Check_MK temp checks (fireeye) -# -# check_mk is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation in version 2. check_mk is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- -# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the GNU General Public License for more de- -# ails. You should have received a copy of the GNU General Public -# License along with GNU Make; see the file COPYING. If not, write -# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -# Boston, MA 02110-1301 USA. -# -# OMD[cmk16x]:~/local/share/check_mk/checks$ snmpwalk -v2c -c C370-MAIL localhost -ObentU -m ASYNCOS-MAIL-MIB temperatureTable -# .1.3.6.1.4.1.15497.1.1.1.9.1.1.1 = INTEGER: 1 -# .1.3.6.1.4.1.15497.1.1.1.9.1.2.1 = INTEGER: 22 -# .1.3.6.1.4.1.15497.1.1.1.9.1.3.1 = STRING: Ambient -# -# OMD[cmk16x]:~/local/share/check_mk/checks$ snmpwalk -v2c -c C370-MAIL localhost -m ASYNCOS-MAIL-MIB temperatureTable -# ASYNCOS-MAIL-MIB::temperatureIndex.1 = INTEGER: 1 -# ASYNCOS-MAIL-MIB::degreesCelsius.1 = INTEGER: 22 -# ASYNCOS-MAIL-MIB::temperatureName.1 = STRING: Ambient -# - -factory_settings['cisco_asyncos_temp_default_levels'] = {'levels_lower': (0.0, -10.0), - 'levels': (60, 80), - 'output_unit': 'c', - 'device_levels_handling': 'usr', - } - -def inventory_cisco_asyncos_temp(info): - if info: - for line in info: - celsius, name = line - item = name - yield item, {} - - -def check_cisco_asyncos_temp(item, params, info): - if info: - for line in info: - reading_str, name = line - if item == name: - yield check_temperature(float(reading_str), - params, - 'cisco_asyncos_temp_%s' % name, - ) - - -check_info['cisco_asyncos_temp'] = { - 'inventory_function': inventory_cisco_asyncos_temp, - 'check_function': check_cisco_asyncos_temp, - 'service_description': 'Temperature %s', - 'has_perfdata': True, - 'snmp_info': ( - '.1.3.6.1.4.1.15497.1.1.1.9.1', # ASYNCOS-MAIL-MIB::temperatureEntry - [ - '2', # degreesCelsius - '3', # temperatureName - ]), - 'snmp_scan_function': scan_cisco_asyncos, - 'group': 'temperature', - 'default_levels_variable': 'cisco_asyncos_temp_default_levels', - 'includes': ['temperature.include', 'cisco_asyncos.include'], -} diff --git a/checks/cisco_asyncos_update b/checks/cisco_asyncos_update index 5c597db..333795a 100644 --- a/checks/cisco_asyncos_update +++ b/checks/cisco_asyncos_update @@ -251,8 +251,9 @@ check_info['cisco_asyncos_update'] = { '3', # updates --> The number of successful attempts that have occurred when updating a service '4', # updateFailures --> "The number of failed attempts that have occurred when updating a service ]), - 'snmp_scan_function': scan_cisco_asyncos, 'default_levels_variable': 'cisco_asyncos_update_default_levels', - 'includes': ['cisco_asyncos.include'], + 'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0').find('AsyncOS') != -1, + # 'snmp_scan_function': scan_cisco_asyncos, + # 'includes': ['cisco_asyncos.include'], } diff --git a/cisco_asyncos.mkp b/cisco_asyncos.mkp index 75863cc0dbe251e94846b745d23683252e7f5917..0587cbb03450684d01757b1a334ebf94537a97dd 100644 GIT binary patch literal 11862 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 EKR@7nmjD0& literal 11328 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 Y;s0r+{~rYiiy&B}m&azXPH?dQ1D(-gVE_OC diff --git a/packages/cisco_asyncos b/packages/cisco_asyncos index c62480e..ceae4b3 100644 --- a/packages/cisco_asyncos +++ b/packages/cisco_asyncos @@ -1,17 +1,37 @@ -{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)', - 'description': u'Cisco AsyncOS (IronPort) checks\n\n- fixed inventory function\n- changed scan function, to look for "AsyncOS"\n- cisco_asyncos_queue: added wato\n\n- cisco_asyncos_fan, cisco_asyncos_power, cisco_asyncos_raid, cisco_asyncos_license, cisco_asyncos_update and cisco_asyncos_temp rewriten by Th.L. all other checks by A.Doehler\n\n- cisco_asyncos_fan uses fan.include\n- cisco_asyncos_temp uses temperature.include\n\n- 2020-03-08: added cisco_asyncos_dns, cisco_asyncos_resources, cisco_asyncos_messageage\n- 2020-05-14: added wato option to cisco_asyncos_update to ignore features\n', +{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)', + 'description': 'Cisco AsyncOS (IronPort) checks\n' + '\n' + '- fixed inventory function\n' + '- changed scan function, to look for "AsyncOS"\n' + '- cisco_asyncos_queue: added wato\n' + '\n' + '- cisco_asyncos_fan, cisco_asyncos_power, cisco_asyncos_raid, ' + 'cisco_asyncos_license, cisco_asyncos_update and ' + 'cisco_asyncos_temp rewriten by Th.L. all other checks by ' + 'A.Doehler\n' + '\n' + '- cisco_asyncos_fan uses fan.include\n' + '- cisco_asyncos_temp uses temperature.include\n' + '\n' + '- 2020-03-08: added cisco_asyncos_dns, ' + 'cisco_asyncos_resources, cisco_asyncos_messageage\n' + '- 2020-05-14: added wato option to cisco_asyncos_update to ' + 'ignore features\n' + '\n' + '- 2021-03-21: rewrite cisco_asyncos_cpu, cisco_asyncos_mem, ' + 'cisco_asyncos_temp for CMK 2.0\n', 'download_url': 'https://thl-cmk.hopto.org', - 'files': {'checks': ['cisco_asyncos_bandwidth', + 'files': {'agent_based': ['cisco_asyncos_cpu.py', + 'cisco_asyncos_mem.py', + 'cisco_asyncos_temp.py'], + 'checks': ['cisco_asyncos_bandwidth', 'cisco_asyncos_cache', 'cisco_asyncos_conn', - 'cisco_asyncos_cpu', 'cisco_asyncos_fan', 'cisco_asyncos_license', - 'cisco_asyncos_mem', 'cisco_asyncos_power', 'cisco_asyncos_queue', 'cisco_asyncos_raid', - 'cisco_asyncos_temp', 'cisco_asyncos_update', 'cisco_asyncos.include', 'cisco_asyncos_dns', @@ -23,7 +43,8 @@ 'plugins/metrics/cisco_asyncos.py']}, 'name': 'cisco_asyncos', 'num_files': 20, - 'title': u'Cisco AsyncOS (IronPort) checks', + 'title': 'Cisco AsyncOS (IronPort) checks', 'version': '20200514_v0.1.4', - 'version.min_required': '1.6.0p6', - 'version.packaged': '1.6.0p8'} \ No newline at end of file + 'version.min_required': '2.0.0', + 'version.packaged': '2.0.0p1', + 'version.usable_until': None} \ No newline at end of file -- GitLab