From 75148184fdc54aeb724c81f8173389b0f6801737 Mon Sep 17 00:00:00 2001 From: "Th.L" <thl-cmk@outlook.com> Date: Wed, 24 Mar 2021 17:55:26 +0100 Subject: [PATCH] update project --- agent_based/cisco_asa_connections.py | 6 +- cisco_asa_connections.mkp | Bin 2468 -> 2785 bytes packages/cisco_asa_connections | 5 +- web/plugins/metrics/cisco_asa_connections.py | 79 +++++-------------- web/plugins/wato/cisco_fw_connections.py | 52 ++++++++++++ 5 files changed, 77 insertions(+), 65 deletions(-) create mode 100644 web/plugins/wato/cisco_fw_connections.py diff --git a/agent_based/cisco_asa_connections.py b/agent_based/cisco_asa_connections.py index d6be45d..99c0818 100644 --- a/agent_based/cisco_asa_connections.py +++ b/agent_based/cisco_asa_connections.py @@ -18,7 +18,7 @@ # more specific "1.3.6.1.4.1.9.9.147.1.2.2.2.1.5.40" # 2020-02-24: added support for Cisco Firepower Threat Defense # 2020-04-28: changed item from Cisco ASA connections to Firewall connections --> more clear, with cisco_asa_conn check -# 2021-03-24: rewrite for CMK 2.0 Check API +# 2021-03-24: rewrite for CMK 2.0 Check API, added lower levels # # sample snmp walk # @@ -70,7 +70,7 @@ def discovery_cisco_asa_connections(section: CiscoAsaFwConnections) -> Discovery def check_cisco_asa_connections(params, section: CiscoAsaFwConnections) -> CheckResult: yield from check_levels( section.current, - levels_lower=params.get('lower', None), + levels_lower=params.get('connections_lower', None), levels_upper=params.get('connections', None), metric_name='fw_connections_active', render_func=lambda v: '%s' % str(v), @@ -79,7 +79,7 @@ def check_cisco_asa_connections(params, section: CiscoAsaFwConnections) -> Check yield from check_levels( section.peak, label='Max. since system startup', - metric_name='peak_connections', + metric_name='fw_connections_peak', render_func=lambda v: '%s' % str(v), ) diff --git a/cisco_asa_connections.mkp b/cisco_asa_connections.mkp index 84f04cfc5cbc3059b0951346203c46a360bd8eb0..4bb7115c46edc6d269ff923a840d6fef5a40bcda 100644 GIT binary patch delta 2758 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 E1+cSXUjP6A delta 2420 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 diff --git a/packages/cisco_asa_connections b/packages/cisco_asa_connections index 19c2cb7..b081f15 100644 --- a/packages/cisco_asa_connections +++ b/packages/cisco_asa_connections @@ -10,9 +10,10 @@ 'connections\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['cisco_asa_connections.py'], - 'web': ['plugins/metrics/cisco_asa_connections.py']}, + 'web': ['plugins/metrics/cisco_asa_connections.py', + 'plugins/wato/cisco_fw_connections.py']}, 'name': 'cisco_asa_connections', - 'num_files': 2, + 'num_files': 3, 'title': 'Monitor Cisco ASA connections', 'version': '20210324.v.0.4', 'version.min_required': '2.0.0', diff --git a/web/plugins/metrics/cisco_asa_connections.py b/web/plugins/metrics/cisco_asa_connections.py index 7c33f9e..779627f 100644 --- a/web/plugins/metrics/cisco_asa_connections.py +++ b/web/plugins/metrics/cisco_asa_connections.py @@ -1,77 +1,36 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # # Cisco ASA connections metrics plugin # -# Author: Th.L. -# Date : 2018-01-09 -# - -##################################################################################################################### -# -# define units -# -##################################################################################################################### +from cmk.gui.i18n import _ -##################################################################################################################### -# -# define metrics -# -##################################################################################################################### +from cmk.gui.plugins.metrics import ( + metric_info, + graph_info, +) -metric_info['cisco_asa_connections_current_connections'] = { - 'title': _('current conections'), +metric_info['fw_connections_active'] = { + 'title': _('Active conections'), 'unit': 'count', 'color': '26/a', } - -metric_info['cisco_asa_connections_max_connections'] = { - 'title': _('max conections'), +metric_info['fw_connections_peak'] = { + 'title': _('Peak conections'), 'unit': 'count', - 'color': '11/a', + 'color': '16/a', } -###################################################################################################################### -# -# map perfdata to metric -# -###################################################################################################################### - -check_metrics['check_mk-cisco_asa_connections'] = { - 'current_connections': {'name': 'cisco_asa_connections_current_connections', }, - 'max_connections': {'name': 'cisco_asa_connections_max_connections',} -} - -###################################################################################################################### -# -# how to graph perdata -# -###################################################################################################################### - -graph_info.append({ - 'title': _('connections'), +graph_info['cisco_asa_connections'] = { + 'title': _('Firewall connections'), 'metrics': [ - ('cisco_asa_connections_max_connections', 'line'), - ('cisco_asa_connections_current_connections', 'area'), + ('fw_connections_active', 'line'), + ('fw_connections_peak', 'area'), ], 'scalars': [ - ('cisco_asa_connections_current_connections:crit', _('crit level')), - ('cisco_asa_connections_current_connections:warn', _('warn level')), + ('fw_connections_active:crit', _('crit level')), + ('fw_connections_active:warn', _('warn level')), ], -}) - -###################################################################################################################### -# -# define perf-o-meter -# -###################################################################################################################### - - -perfometer_info.append({ - 'type': 'logarithmic', - 'metric': 'cisco_asa_connections_current_connections', - 'half_value': 50000.0, - 'exponent': 2, -}) \ No newline at end of file +} diff --git a/web/plugins/wato/cisco_fw_connections.py b/web/plugins/wato/cisco_fw_connections.py new file mode 100644 index 0000000..69a1391 --- /dev/null +++ b/web/plugins/wato/cisco_fw_connections.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright (C) 2019 tribe29 GmbH - License: GNU General Public License v2 +# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and +# conditions defined in the file COPYING, which is part of this source code package. + +from cmk.gui.i18n import _ +from cmk.gui.valuespec import ( + Dictionary, + Integer, + Tuple, +) + +from cmk.gui.plugins.wato import ( + CheckParameterRulespecWithoutItem, + rulespec_registry, + RulespecGroupCheckParametersApplications, +) + + +def _parameter_valuespec_cisco_fw_connections(): + return Dictionary(elements=[ + ('connections', + Tuple( + help=_('This rule sets ipper limits to the current number of connections through a Cisco firewall.'), + title=_('Maximum number of firewall connections'), + elements=[ + Integer(title=_('Warning at'), unit='connections'), + Integer(title=_('Critical at'), unit='connections'), + ], + )), + ('connections_lower', + Tuple( + help=_('This rule sets lower limits to the current number of connections through a Cisco firewall.'), + title=_('Minimum number of firewall connections'), + elements=[ + Integer(title=_('Warning if below'), unit='connections'), + Integer(title=_('Critical if below'), unit='connections'), + ], + )), + + ],) + + +rulespec_registry.register( + CheckParameterRulespecWithoutItem( + check_group_name='cisco_fw_connections', + group=RulespecGroupCheckParametersApplications, + match_type='dict', + parameter_valuespec=_parameter_valuespec_cisco_fw_connections, + title=lambda: _('Cisco Firewall Connections'), + )) \ No newline at end of file -- GitLab