From aecc3e24caeda5a772ac182f029accdfe5997bea Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Mon, 6 Sep 2021 20:59:15 +0200 Subject: [PATCH] update project --- agent_based/checkpoint_vsx.py | 257 ++++++++++++++++++++++++++ checkpoint_vsx.mkp | Bin 44 -> 4042 bytes packages/checkpoint_vsx | 2 +- web/plugins/metrics/checkpoint_vsx.py | 36 ++-- 4 files changed, 271 insertions(+), 24 deletions(-) create mode 100644 agent_based/checkpoint_vsx.py diff --git a/agent_based/checkpoint_vsx.py b/agent_based/checkpoint_vsx.py new file mode 100644 index 0000000..c0ad057 --- /dev/null +++ b/agent_based/checkpoint_vsx.py @@ -0,0 +1,257 @@ +#!/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-17-05 +# +# Check Point vsx Cluster status +# +# Monitor status of virtual systems in Check Point vsx/vsls cluster +# +# 2018-08-03: changed snmp scan function +# 2018-08-13: code cleanup, add metrics +# 2020-06-08: changed snmp-scan function +# 2021-09-06: rewritten for CMK 2.0 +# +# snmpwalk sample +# +# .1.3.6.1.4.1.2620.1.16.22.1.1.1.3.0 = Gauge32: 2 +# .1.3.6.1.4.1.2620.1.16.22.1.1.2.3.0 = Gauge32: 2 +# .1.3.6.1.4.1.2620.1.16.22.1.1.3.3.0 = STRING: "HRI" +# .1.3.6.1.4.1.2620.1.16.22.1.1.4.3.0 = STRING: "Virtual System" +# .1.3.6.1.4.1.2620.1.16.22.1.1.5.3.0 = STRING: "10.140.1.3" +# .1.3.6.1.4.1.2620.1.16.22.1.1.6.3.0 = STRING: "Standard" +# .1.3.6.1.4.1.2620.1.16.22.1.1.7.3.0 = STRING: "Active" +# .1.3.6.1.4.1.2620.1.16.22.1.1.8.3.0 = STRING: "Trust established" +# .1.3.6.1.4.1.2620.1.16.22.1.1.9.3.0 = STRING: "Standby" +# .1.3.6.1.4.1.2620.1.16.22.1.1.10.3.0 = Gauge32: 0 +# +# .1.3.6.1.4.1.2620.1.16.23.1.1.2.3.0 = Gauge32: 40 +# .1.3.6.1.4.1.2620.1.16.23.1.1.3.3.0 = Gauge32: 864 +# .1.3.6.1.4.1.2620.1.16.23.1.1.4.3.0 = Gauge32: 14900 +# .1.3.6.1.4.1.2620.1.16.23.1.1.5.3.0 = STRING: "69459" +# .1.3.6.1.4.1.2620.1.16.23.1.1.6.3.0 = STRING: "2405" +# .1.3.6.1.4.1.2620.1.16.23.1.1.7.3.0 = STRING: "67054" +# .1.3.6.1.4.1.2620.1.16.23.1.1.8.3.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.16.23.1.1.9.3.0 = STRING: "4228862" +# .1.3.6.1.4.1.2620.1.16.23.1.1.10.3.0 = STRING: "72445" +# .1.3.6.1.4.1.2620.1.16.23.1.1.11.3.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.16.23.1.1.12.3.0 = STRING: "7074" +# .1.3.6.1.4.1.2620.1.16.23.1.1.13.3.0 = INTEGER: 0 +# +import time +from dataclasses import dataclass +from typing import List, Dict, Optional, Tuple + +from cmk.base.plugins.agent_based.agent_based_api.v1 import ( + register, + Service, + Result, + State, + SNMPTree, + all_of, + startswith, + any_of, + equals, + Metric, + get_value_store, + get_rate, + GetRateError, +) +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + + +@dataclass +class CheckpointVsx: + vsxStatusVSId: str + vsxStatusVsType: str + vsxStatusMainIP: str + vsxStatusPolicyName: str + vsxStatusVsPolicyType: str + vsxStatusSicTrustState: str + vsxStatusHAState: str + vsxStatusVSWeight: str + vsxCountersConnNum: int + vsxCountersConnPeakNum: int + vsxCountersConnTableLimit: int + vsxCountersIsDataValid: str + metrics_rate: List[Tuple[str, int]] + + +def parse_checkpoint_vsx_system(string_table: StringTable) -> Optional[Dict[str, CheckpointVsx]]: + vsx_systems = {} + for entry in string_table: + try: + vsxStatusVSId, vsxStatusVsName, vsxStatusVsType, vsxStatusMainIP, vsxStatusPolicyName, vsxStatusVsPolicyType, \ + vsxStatusSicTrustState, vsxStatusHAState, vsxStatusVSWeight, vsxCountersConnNum, vsxCountersConnPeakNum, \ + vsxCountersConnTableLimit, vsxCountersPackets, vsxCountersDroppedTotal, vsxCountersAcceptedTotal, \ + vsxCountersRejectedTotal, vsxCountersBytesAcceptedTotal, vsxCountersBytesDroppedTotal, \ + vsxCountersBytesRejectedTotal, vsxCountersLoggedTotal, vsxCountersIsDataValid = entry + except ValueError: + return + if vsxStatusVsType.lower() in ['virtual system']: # , 'vsx gateway', 'virtual switch', 'virtual router' + vsx_systems[vsxStatusVsName] = CheckpointVsx( + vsxStatusVSId=vsxStatusVSId, + vsxStatusVsType=vsxStatusVsType, + vsxStatusMainIP=vsxStatusMainIP, + vsxStatusPolicyName=vsxStatusPolicyName, + vsxStatusVsPolicyType=vsxStatusVsPolicyType, + vsxStatusSicTrustState=vsxStatusSicTrustState, + vsxStatusHAState=vsxStatusHAState, + vsxStatusVSWeight=vsxStatusVSWeight, + vsxCountersConnNum=int(vsxCountersConnNum), + vsxCountersConnPeakNum=int(vsxCountersConnPeakNum), + vsxCountersConnTableLimit=int(vsxCountersConnTableLimit), + vsxCountersIsDataValid=vsxCountersIsDataValid, + metrics_rate=[ + ('packets_processed', int(vsxCountersPackets)), + ('packets_dropped', int(vsxCountersDroppedTotal)), + ('packets_accepted', int(vsxCountersAcceptedTotal)), + ('packets_rejected', int(vsxCountersRejectedTotal)), + ('bytes_accepted', int(vsxCountersBytesAcceptedTotal)), + ('bytes_dropped', int(vsxCountersBytesDroppedTotal)), + ('bytes_rejected', int(vsxCountersBytesRejectedTotal)), + ('loggs_send', int(vsxCountersLoggedTotal)), + ], + ) + return vsx_systems + + +def discovery_checkpoint_vsx_system(section: Dict[str, CheckpointVsx]) -> DiscoveryResult: + for key in section.keys(): + yield Service( + item=key, + parameters={'policyname': section[key].vsxStatusPolicyName, 'ha_state': section[key].vsxStatusHAState} + ) + + +def check_checkpoint_vsx_system(item, params, section: Dict[str, CheckpointVsx]) -> CheckResult: + try: + vsx = section[item] + except KeyError: + yield Result(state=State.UNKNOWN, notice='Item not found in SNMP data') + return + + now_time = time.time() + value_store = get_value_store() + metrics_prefix = 'checkpoint_vsx_' + + for key, value in vsx.metrics_rate: + try: + value = get_rate(value_store, f'{metrics_prefix}{key}', now_time, int(value), raise_overflow=True) + except GetRateError: + value = 0 + yield Metric(name=f'checkpoint_vsx_{key}', value=value, boundaries=(0, None)) + + # system information + yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}, VS ID: {vsx.vsxStatusVSId}', details=' ') + # Counters + # infotext = f'Connections: {vsx.vsxCountersConnNum:.0f}, ' \ + # f'Packets prosessed: {vsx.vsxCountersPackets:.0f}/s, ' \ + # f'Logs send: {vsx.vsxCountersLoggedTotal:0.2f}/s') + + yield Result(state=State.OK, notice=f'System name: {item}') + yield Result(state=State.OK, notice=f'Virtual system ID: {vsx.vsxStatusVSId}') + yield Result(state=State.OK, notice=f'Type: {vsx.vsxStatusVsType}') + yield Result(state=State.OK, notice=f'Weight: {vsx.vsxStatusVSWeight}') + yield Result(state=State.OK, notice=f'Main IP: {vsx.vsxStatusMainIP}') + yield Result(state=State.OK, notice=f'Policy name: {vsx.vsxStatusPolicyName}') + yield Result(state=State.OK, notice=f'Policy type: {vsx.vsxStatusVsPolicyType}') + yield Result(state=State.OK, notice=f'SIC status: {vsx.vsxStatusSicTrustState}') + + yield Result(state=State.OK, notice=f'Conn table limit: {vsx.vsxCountersConnTableLimit}') + yield Result(state=State.OK, notice=f'Is data valid: {vsx.vsxCountersIsDataValid}') + + if vsx.vsxCountersConnTableLimit > 0: + yield Metric(value=vsx.vsxCountersConnNum, name=f'{metrics_prefix}connections', + boundaries=(0, vsx.vsxCountersConnTableLimit), + levels=(None, vsx.vsxCountersConnTableLimit)) + else: + yield Metric(value=vsx.vsxCountersConnNum, name=f'{metrics_prefix}connections') + yield Metric(value=vsx.vsxCountersConnPeakNum, name=f'{metrics_prefix}connections_peak') + + if not vsx.vsxStatusHAState.lower() in ['active', 'standby']: + yield Result(state=State.WARN, summary=f'H/A Status: {vsx.vsxStatusHAState}') + else: + yield Result(state=State.OK, summary=f'H/A Status: {vsx.vsxStatusHAState}') + + if not vsx.vsxStatusSicTrustState.lower() in ['trust established']: + yield Result(state=State.WARN, notice='SIC not established') + + if not vsx.vsxStatusVsPolicyType.lower() in ['active']: + yield Result(state=State.CRIT, notice='No policy installed') + + if params['policyname'] != vsx.vsxStatusPolicyName: # policy changed + yield Result( + state=State.WARN, + notice=f'Policy name changed: expected {params["policyname"]}, found {vsx.vsxStatusPolicyName}' + ) + + if params['ha_state'] != vsx.vsxStatusHAState: # H/A state changed + yield Result( + state=State.WARN, + notice=f'State changed: expected/found {params["ha_state"]}/{vsx.vsxStatusHAState}' + ) + + +register.snmp_section( + name='checkpoint_vsx_system', + parse_function=parse_checkpoint_vsx_system, + supersedes=[ + 'checkpoint_vsx', + 'checkpoint_vsx_connections', + 'checkpoint_vsx_traffic', + 'checkpoint_vsx_packets', + 'checkpoint_vsx_status', + ], + fetch=SNMPTree( + base='.1.3.6.1.4.1.2620.1.16', # CHECKPOINT-MIB::vsx + oids=[ + '22.1.1.1', # vsxStatusVSId + '22.1.1.3', # vsxStatusVsName + '22.1.1.4', # vsxStatusVsType + '22.1.1.5', # vsxStatusMainIP + '22.1.1.6', # vsxStatusPolicyName + '22.1.1.7', # vsxStatusVsPolicyType + '22.1.1.8', # vsxStatusSicTrustState + '22.1.1.9', # vsxStatusHAState + '22.1.1.10', # vsxStatusVSWeight + '23.1.1.2', # vsxCountersConnNum + '23.1.1.3', # vsxCountersConnPeakNum + '23.1.1.4', # vsxCountersConnTableLimit + '23.1.1.5', # vsxCountersPackets + '23.1.1.6', # vsxCountersDroppedTotal + '23.1.1.7', # vsxCountersAcceptedTotal + '23.1.1.8', # vsxCountersRejectedTotal + '23.1.1.9', # vsxCountersBytesAcceptedTotal + '23.1.1.10', # vsxCountersBytesDroppedTotal + '23.1.1.11', # vsxCountersBytesRejectedTotal + '23.1.1.12', # vsxCountersLoggedTotal + '23.1.1.13', # vsxCountersIsDataValid + ]), + detect=any_of( + startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'), + all_of( + equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'), + equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'), + ) + ) +) + +register.check_plugin( + name='checkpoint_vsx_system', + service_name='VSX System %s', + discovery_function=discovery_checkpoint_vsx_system, + check_function=check_checkpoint_vsx_system, + check_ruleset_name='checkpoint_vsx_system', + check_default_parameters={ + 'vsType': ['virtual system', 'vsx gateway', 'virtual switch', 'virtual router'] + }, +) diff --git a/checkpoint_vsx.mkp b/checkpoint_vsx.mkp index bad2a15f09c29ce110000d7df390deac591fef16..daaecabfd99fbd0ffe02b7a9a423efb61f5cefc4 100644 GIT binary patch literal 4042 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 ae>d_!rTsq||Com12?GIjodksh1pfhpdeXcA delta 13 UcmX>lufrza&A~A*Wg?pz02)ODl>h($ diff --git a/packages/checkpoint_vsx b/packages/checkpoint_vsx index cd48699..078afc8 100644 --- a/packages/checkpoint_vsx +++ b/packages/checkpoint_vsx @@ -9,7 +9,7 @@ ' - monitors VSX virtual system counters ' '(connections/packets/bytes/logs).\n', 'download_url': 'https://thl-cmk.hopto.org', - 'files': {'agent_based': ['checkpoint_vsx.ps'], + 'files': {'agent_based': ['checkpoint_vsx.py'], 'web': ['plugins/metrics/checkpoint_vsx.py']}, 'name': 'checkpoint_vsx', 'num_files': 2, diff --git a/web/plugins/metrics/checkpoint_vsx.py b/web/plugins/metrics/checkpoint_vsx.py index a4700f2..d423fd9 100644 --- a/web/plugins/metrics/checkpoint_vsx.py +++ b/web/plugins/metrics/checkpoint_vsx.py @@ -17,6 +17,7 @@ from cmk.gui.plugins.metrics import ( graph_info, perfometer_info, ) + metric_info['checkpoint_vsx_connections'] = { 'title': _('Connections active'), 'unit': 'count', @@ -70,35 +71,25 @@ metric_info['checkpoint_vsx_bytes_rejected'] = { 'color': '33/a', } -metric_info['checkpoint_vsx_logges_send'] = { +metric_info['checkpoint_vsx_loggs_send'] = { 'title': _('Loggs send'), 'unit': '1/s', 'color': '14/a', } -check_metrics['check_mk-checkpoint_vsx'] = { - 'connections': {'name': 'checkpoint_vsx_connections', }, - 'connections_peak': {'name': 'checkpoint_vsx_connections_peak', }, - 'connections_limit': {'name': 'checkpoint_vsx_connections_limit', }, - 'packets_processed': {'name': 'checkpoint_vsx_packets_processed', }, - 'packets_dropped': {'name': 'checkpoint_vsx_packets_dropped', }, - 'packets_accepted': {'name': 'checkpoint_vsx_packets_accepted', }, - 'packets_rejected': {'name': 'checkpoint_vsx_packets_rejected', }, - 'bytes_accepted': {'name': 'checkpoint_vsx_bytes_accepted', }, - 'bytes_dropped': {'name': 'checkpoint_vsx_bytes_dropped', }, - 'bytes_rejected': {'name': 'checkpoint_vsx_bytes_rejected', }, - 'logges_send': {'name': 'checkpoint_vsx_logges_send', }, -} - -graph_info['checkpoint_vsx_connections']={ +graph_info['checkpoint_vsx_connections'] = { 'title': _('Check Point VSX: Connections'), 'metrics': [ ('checkpoint_vsx_connections_peak', 'line'), ('checkpoint_vsx_connections', 'area'), - ] + ], + 'scalars': [ + ('checkpoint_vsx_connections:crit', _('crit')), + # ('checkpoint_vsx_connections:warn', _('warn')), + ], } -graph_info['checkpoint_vsx_packets']={ +graph_info['checkpoint_vsx_packets'] = { 'title': _('Check Point VSX: Packets'), 'metrics': [ ('checkpoint_vsx_packets_rejected', 'line'), @@ -108,7 +99,7 @@ graph_info['checkpoint_vsx_packets']={ ] } -graph_info['checkpoint_vsx_bytes']={ +graph_info['checkpoint_vsx_bytes'] = { 'title': _('Check Point VSX: Bytes'), 'metrics': [ ('checkpoint_vsx_bytes_rejected', 'line'), @@ -117,7 +108,7 @@ graph_info['checkpoint_vsx_bytes']={ ] } -graph_info['checkpoint_vsx_logges_send']={ +graph_info['checkpoint_vsx_logges_send'] = { 'title': _('Check Point VSX: Logs'), 'metrics': [ ('checkpoint_vsx_logges_send', 'line'), @@ -128,14 +119,13 @@ perfometer_info.append(('stacked', [ { 'type': 'logarithmic', 'metric': 'checkpoint_vsx_connections', - 'half_value': 259200.0, + 'half_value': 50000.0, 'exponent': 2, }, { 'type': 'logarithmic', 'metric': 'checkpoint_vsx_packets_processed', - 'half_value': 25920.0, + 'half_value': 50000.0, 'exponent': 2, }, ])) - -- GitLab