From 4346fbfa1f5ff518a3a5cf83271a09f51cd10e7a Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Wed, 7 Jun 2023 16:18:59 +0200 Subject: [PATCH] update project --- cisco_vpn_tunnel-0.4.0-20230607.mkp | Bin 0 -> 6397 bytes cisco_vpn_tunnel.mkp | Bin 6413 -> 6397 bytes gui/metrics/cisco_vpn_tunnel.py | 329 ++++++++++++++++++++++++++++ gui/wato/cisco_vpn_tunnel.py | 112 ++++++++++ packages/cisco_vpn_tunnel | 7 +- 5 files changed, 444 insertions(+), 4 deletions(-) create mode 100644 cisco_vpn_tunnel-0.4.0-20230607.mkp create mode 100644 gui/metrics/cisco_vpn_tunnel.py create mode 100644 gui/wato/cisco_vpn_tunnel.py diff --git a/cisco_vpn_tunnel-0.4.0-20230607.mkp b/cisco_vpn_tunnel-0.4.0-20230607.mkp new file mode 100644 index 0000000000000000000000000000000000000000..caf319ae4986237fae6e42e4770e93d1e0b94ad5 GIT binary patch literal 6397 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 literal 0 HcmV?d00001 diff --git a/cisco_vpn_tunnel.mkp b/cisco_vpn_tunnel.mkp index 29d37d1b291d301ee969286efbc7c50d0d5c90d0..caf319ae4986237fae6e42e4770e93d1e0b94ad5 100644 GIT binary patch delta 6344 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 KXHsSW$N&J=1cFKc delta 6378 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 diff --git a/gui/metrics/cisco_vpn_tunnel.py b/gui/metrics/cisco_vpn_tunnel.py new file mode 100644 index 0000000..45025ae --- /dev/null +++ b/gui/metrics/cisco_vpn_tunnel.py @@ -0,0 +1,329 @@ +#!/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 : 2017-12-29 +# +# Cisco VPN Tunnel metrics plugin +# + +from cmk.gui.i18n import _ + +from cmk.gui.plugins.metrics.utils import ( + metric_info, + graph_info, + perfometer_info, +) + +##################################################################################################################### +# +# define metrics for bgp peer perfdata +# +##################################################################################################################### + + +metric_info['cisco_vpn_tunnel_cikeTunActiveTime'] = { + 'title': _('IKE active time'), + 'help': _(''), + 'unit': 's', + 'color': '26/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInOctets'] = { + 'title': _('IKE Bytes in'), + 'unit': 'bytes/s', + 'color': '11/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutOctets'] = { + 'title': _('IKE Bytes out'), + 'help': _(''), + 'unit': 'bytes/s', + 'color': '21/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInPkts'] = { + 'title': _('IKE packets in'), + 'help': _(''), + 'unit': '1/s', + 'color': '31/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutPkts'] = { + 'title': _('IKE packets out'), + 'help': _(''), + 'unit': '1/s', + 'color': '41/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInDropPkts'] = { + 'title': _('IKE packets dropped in'), + 'help': _(''), + 'unit': '1/s', + 'color': '12/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutDropPkts'] = { + 'title': _('IKE packets dropped out'), + 'help': _(''), + 'unit': '1/s', + 'color': '22/a', +} + +metric_info['cisco_vpn_tunnel_cikeTunInNotifys'] = { + 'title': _('IKE in notifies'), + 'help': _(''), + 'unit': 'count', + 'color': '32/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutNotifys'] = { + 'title': _('IKE out notifies'), + 'help': _(''), + 'unit': 'count', + 'color': '42/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInP2Exchgs'] = { + 'title': _('IKE in phase 2 exchanges'), + 'help': _(''), + 'unit': 'count', + 'color': '13/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutP2Exchgs'] = { + 'title': _('IKE out phase 2 exchanges'), + 'help': _(''), + 'unit': 'count', + 'color': '23/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInP2ExchgInvalids'] = { + 'title': _('IKE in phase 2 exchanges invalid'), + 'help': _(''), + 'unit': 'count', + 'color': '33/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutP2ExchgInvalids'] = { + 'title': _('IKE out phase 2 exchanges invalid'), + 'help': _(''), + 'unit': 'count', + 'color': '43/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInP2ExchgRejects'] = { + 'title': _('IKE in phase 2 exchanges rejected'), + 'help': _(''), + 'unit': 'count', + 'color': '14/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutP2ExchgRejects'] = { + 'title': _('IKE out phase 2 exchanges rejected'), + 'help': _(''), + 'unit': 'count', + 'color': '24/a', +} +metric_info['cisco_vpn_tunnel_cikeTunInP2SaDelRequests'] = { + 'title': _('IKE in phase 2 SA delete requests'), + 'help': _(''), + 'unit': 'count', + 'color': '34/a', +} +metric_info['cisco_vpn_tunnel_cikeTunOutP2SaDelRequests'] = { + 'title': _('IKE out phase 2 SA delete requests'), + 'help': _(''), + 'unit': 'count', + 'color': '44/a', +} + +# IPSec counter + +metric_info['cisco_vpn_tunnel_cipSecTunActiveTime'] = { + 'title': _('IPSec active time'), + 'help': _(''), + 'unit': 's', + 'color': '26/b', +} + +metric_info['cisco_vpn_tunnel_ipsec_sa_count'] = { + 'title': _('IPSec SA count'), + 'help': _(''), + 'unit': 'count', + 'color': '12/b', +} + +metric_info['cisco_vpn_tunnel_cipSecTunHcInOctets'] = { + 'title': _('IPSec Bytes in'), + 'help': _(''), + 'unit': 'bytes/s', + 'color': '11/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunHcOutOctets'] = { + 'title': _('IPSec Bytes out'), + 'help': _(''), + 'unit': 'bytes/s', + 'color': '21/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInPkts'] = { + 'title': _('IPSec packets in'), + 'help': _(''), + 'unit': '1/s', + 'color': '31/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutPkts'] = { + 'title': _('IPSec packets out'), + 'help': _(''), + 'unit': '1/s', + 'color': '41/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInDropPkts'] = { + 'title': _('IPSec packets dropped in'), + 'help': _(''), + 'unit': '1/s', + 'color': '11/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutDropPkts'] = { + 'title': _('IPSec packets dropped out'), + 'help': _(''), + 'unit': '1/s', + 'color': '21/b', +} + +metric_info['cisco_vpn_tunnel_cipSecTunHcInDecompOctets'] = { + 'title': _('IPSec in decompressed octets'), + 'help': _(''), + 'unit': '1/s', + 'color': '32/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunHcOutUncompOctets'] = { + 'title': _('IPSec out compressed octets'), + 'help': _(''), + 'unit': '1/s', + 'color': '41/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInAuths'] = { + 'title': _('IPSec in authentication\'s'), + 'help': _(''), + 'unit': 'count', + 'color': '13/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutAuths'] = { + 'title': _('IPSec out authentication\'s'), + 'help': _(''), + 'unit': 'count', + 'color': '23/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInAuthFails'] = { + 'title': _('IPSec in authentication\'s failed'), + 'help': _(''), + 'unit': 'count', + 'color': '33/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutAuthFails'] = { + 'title': _('IPSec out authentication\'s failed'), + 'help': _(''), + 'unit': 'count', + 'color': '43/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInDecrypts'] = { + 'title': _('IPSec in decryption\'s'), + 'help': _(''), + 'unit': 'count', + 'color': '15/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutEncrypts'] = { + 'title': _('IPSec out encryption\'s'), + 'help': _(''), + 'unit': 'count', + 'color': '25/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInDecryptFails'] = { + 'title': _('IPSec in decryption\'s failed'), + 'help': _(''), + 'unit': 'count', + 'color': '35/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunOutEncryptFails'] = { + 'title': _('IPSec out encryption\'s failed'), + 'help': _(''), + 'unit': 'count', + 'color': '45/b', +} +metric_info['cisco_vpn_tunnel_cipSecTunInReplayDropPkts'] = { + 'title': _('IPSec in replay packets dropped'), + 'help': _(''), + 'unit': 'count', + 'color': '16/b', +} + +###################################################################################################################### +# +# how to graph perdata for cisco_vpn_tunnel +# +###################################################################################################################### + + +graph_info['cisco_vpn_tunnel_ike_uptime'] = { + 'title': _('IKE active time'), + 'metrics': [ + ('cisco_vpn_tunnel_cikeTunActiveTime', 'area'), + ], +} +graph_info['cisco_vpn_tunnel_ike_octets'] = { + 'title': _('IKE Bytes/s'), + 'metrics': [ + ('cisco_vpn_tunnel_cikeTunOutOctets', '-area'), + ('cisco_vpn_tunnel_cikeTunInOctets', 'area'), + ], +} +graph_info['cisco_vpn_tunnel_ike_packets'] = { + 'title': _('IKE packets/s'), + 'metrics': [ + ('cisco_vpn_tunnel_cikeTunOutDropPkts', '-line'), + ('cisco_vpn_tunnel_cikeTunInDropPkts', 'line'), + ('cisco_vpn_tunnel_cikeTunOutPkts', '-line'), + ('cisco_vpn_tunnel_cikeTunInPkts', 'line'), + ], +} + +graph_info['cisco_vpn_tunnel_ipsec_uptime'] = { + 'title': _('IPSec active time'), + 'metrics': [ + ('cisco_vpn_tunnel_cipSecTunActiveTime', 'area'), + ], +} +graph_info['cisco_vpn_tunnel_ipsec_sa_count'] = { + 'title': _('IPSec SA count'), + 'metrics': [ + ('cisco_vpn_tunnel_ipsec_sa_count', 'area'), + ], +} +graph_info['cisco_vpn_tunnel_ipsec_octets'] = { + 'title': _('IPSec Bytes/s'), + 'metrics': [ + ('cisco_vpn_tunnel_cipSecTunHcOutOctets', '-area'), + ('cisco_vpn_tunnel_cipSecTunHcInOctets', 'area'), + ], +} +graph_info['cisco_vpn_tunnel_pckets'] = { + 'title': _('IPSec packets/s'), + 'metrics': [ + ('cisco_vpn_tunnel_cipSecTunOutDropPkts', '-stack'), + ('cisco_vpn_tunnel_cipSecTunInDropPkts', 'stack'), + ('cisco_vpn_tunnel_cipSecTunOutPkts', '-stack'), + ('cisco_vpn_tunnel_cipSecTunInPkts', 'stack'), + ], +} + +###################################################################################################################### +# +# define perf-o-meter for cisco_vpn_tunnel uptime active time +# +###################################################################################################################### + +perfometer_info.append(('stacked', [ + { + 'type': 'logarithmic', + 'metric': 'cisco_vpn_tunnel_cikeTunActiveTime', + 'half_value': 2592000.0, + 'exponent': 2, + }, + { + 'type': 'logarithmic', + 'metric': 'cisco_vpn_tunnel_cipSecTunActiveTime', + 'half_value': 2592000.0, + 'exponent': 2, + }, +])) diff --git a/gui/wato/cisco_vpn_tunnel.py b/gui/wato/cisco_vpn_tunnel.py new file mode 100644 index 0000000..3addeb9 --- /dev/null +++ b/gui/wato/cisco_vpn_tunnel.py @@ -0,0 +1,112 @@ +#!/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 : 2017-12-28 + +from cmk.gui.i18n import _ +from cmk.gui.valuespec import ( + Dictionary, + TextAscii, + Tuple, + MonitoringState, + ListOf, + IPv4Address, + TextUnicode, + FixedValue, +) + +from cmk.gui.plugins.wato.utils import ( + CheckParameterRulespecWithItem, + rulespec_registry, + RulespecGroupCheckParametersNetworking, + RulespecGroupCheckParametersDiscovery, + HostRulespec, +) + + +def _parameter_valuespec_cisco_vpn_tunnel(): + return Dictionary( + elements=[ + ('tunnels', + ListOf( + Tuple( + title=_('VPN Tunnel Endpoints'), + elements=[ + IPv4Address( + title=_('Peer IP-Address'), + help=_('The configured value must match a tunnel reported by the monitored ' + 'device.'), + ), + TextUnicode( + title=_('Tunnel Alias'), + help=_('You can configure an individual alias here for the tunnel matching ' + 'the IP-Address or Name configured in the field above.'), + ), + MonitoringState( + default_value=2, + title=_('State if tunnel is not found'), + ), + MonitoringState( + default_value=1, + title=_('State if tunnel has no active IPSec SA'), + ), + ]), + add_label=_('Add tunnel'), + movable=False, + title=_('VPN tunnel specific configuration'), + )), + ('state', + MonitoringState( + title=_('Default state to report when tunnel can not be found anymore'), + help=_('Default state if a tunnel, which is not listed above in this rule, ' + 'can no longer be found.'), + default_value=2, + )), + ('missing_ipsec_sa_state', + MonitoringState( + title=_('Default state to report when tunnel has no active IPSec SA'), + help=_('Default state if a tunnel, which is not listed above in this rule, ' + 'has no active IPSec SA.'), + default_value=1, + )), + ], + ) + + +rulespec_registry.register( + CheckParameterRulespecWithItem( + check_group_name='cisco_vpn_tunnel', + group=RulespecGroupCheckParametersNetworking, + item_spec=lambda: TextAscii(title=_('IP-Address of Tunnel Endpoint'), ), + match_type='dict', + parameter_valuespec=_parameter_valuespec_cisco_vpn_tunnel, + title=lambda: _('Cisco VPN Tunnel'), + )) + + +def _valuespec_discovery_cisco_vpn_tunnel(): + return Dictionary( + title=_('VPN Tunnel discovery'), + elements=[( + 'discover_aggressive_mode', + FixedValue( + True, + default_value=False, + title=_('Discover aggressive mode VPN Tunnel'), + totext=_('Discover aggressive mode VPN Tunnel'), + ), + )], + ) + + +rulespec_registry.register( + HostRulespec( + group=RulespecGroupCheckParametersDiscovery, + match_type='dict', + name='discovery_cisco_vpn_tunnel', + valuespec=_valuespec_discovery_cisco_vpn_tunnel, + )) diff --git a/packages/cisco_vpn_tunnel b/packages/cisco_vpn_tunnel index c31c390..c6352d6 100644 --- a/packages/cisco_vpn_tunnel +++ b/packages/cisco_vpn_tunnel @@ -6,11 +6,10 @@ 'in/out octets and packets.\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['cisco_vpn_tunnel.py'], - 'web': ['plugins/metrics/cisco_vpn_tunnel.py', - 'plugins/wato/cisco_vpn_tunnel.py']}, + 'gui': ['metrics/cisco_vpn_tunnel.py', 'wato/cisco_vpn_tunnel.py']}, 'name': 'cisco_vpn_tunnel', 'title': 'Monitor Cisco VPN Tunnel', - 'version': '20230607.v0.4', - 'version.min_required': '2.0.0b1', + 'version': '0.4.0-20230607', + 'version.min_required': '2.1.0b1', 'version.packaged': '2.1.0p21', 'version.usable_until': None} \ No newline at end of file -- GitLab