From 78932095945a36d8f66ff13120df7e6d16a18768 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Tue, 7 Sep 2021 08:05:12 +0200 Subject: [PATCH] update project --- agent_based/checkpoint_vsx.py | 176 +++++++++++++------------- checkpoint_vsx.mkp | Bin 4042 -> 4045 bytes web/plugins/metrics/checkpoint_vsx.py | 2 +- 3 files changed, 90 insertions(+), 88 deletions(-) diff --git a/agent_based/checkpoint_vsx.py b/agent_based/checkpoint_vsx.py index c0ad057..878da36 100644 --- a/agent_based/checkpoint_vsx.py +++ b/agent_based/checkpoint_vsx.py @@ -16,6 +16,9 @@ # 2020-06-08: changed snmp-scan function # 2021-09-06: rewritten for CMK 2.0 # +# ToDo: create WATO for discovery and check function, +# if we discover other than 'virtual system' we need to adjust parse/check function +# # snmpwalk sample # # .1.3.6.1.4.1.2620.1.16.22.1.1.1.3.0 = Gauge32: 2 @@ -81,7 +84,6 @@ class CheckpointVsx: vsxCountersConnNum: int vsxCountersConnPeakNum: int vsxCountersConnTableLimit: int - vsxCountersIsDataValid: str metrics_rate: List[Tuple[str, int]] @@ -93,43 +95,43 @@ def parse_checkpoint_vsx_system(string_table: StringTable) -> Optional[Dict[str, vsxStatusSicTrustState, vsxStatusHAState, vsxStatusVSWeight, vsxCountersConnNum, vsxCountersConnPeakNum, \ vsxCountersConnTableLimit, vsxCountersPackets, vsxCountersDroppedTotal, vsxCountersAcceptedTotal, \ vsxCountersRejectedTotal, vsxCountersBytesAcceptedTotal, vsxCountersBytesDroppedTotal, \ - vsxCountersBytesRejectedTotal, vsxCountersLoggedTotal, vsxCountersIsDataValid = entry + vsxCountersBytesRejectedTotal, vsxCountersLoggedTotal = 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)), - ], - ) + # 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), + 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: +def discovery_checkpoint_vsx_system(params, section: Dict[str, CheckpointVsx]) -> DiscoveryResult: for key in section.keys(): - yield Service( - item=key, - parameters={'policyname': section[key].vsxStatusPolicyName, 'ha_state': section[key].vsxStatusHAState} - ) + if section[key].vsxStatusVsType.lower() in params['vsType']: + 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: @@ -139,66 +141,65 @@ def check_checkpoint_vsx_system(item, params, section: Dict[str, CheckpointVsx]) 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)) + if not vsx.vsxStatusSicTrustState.lower() in ['trust established']: + yield Result(state=State.WARN, notice='SIC not established') - # 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') + if vsx.vsxStatusVsType.lower() == 'virtual system': + yield Result(state=State.OK, notice=f'System name: {item}') + yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}') + yield Result(state=State.OK, summary=f'VS ID: {vsx.vsxStatusVSId}', details='Virtual system ID:') + yield Result(state=State.OK, notice=f'System type: {vsx.vsxStatusVsType}') - 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}') + 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}') - 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 not vsx.vsxStatusVsPolicyType.lower() in ['active']: + yield Result(state=State.CRIT, notice='No policy installed') - 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 params['policyname'] != vsx.vsxStatusPolicyName: # policy changed + yield Result( + state=State.WARN, + notice=f'Policy name changed: expected {params["policyname"]}, found {vsx.vsxStatusPolicyName}' + ) - 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 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}' + ) - if not vsx.vsxStatusSicTrustState.lower() in ['trust established']: - yield Result(state=State.WARN, notice='SIC not established') + yield Result(state=State.OK, notice=f'SIC status: {vsx.vsxStatusSicTrustState}') + yield Result(state=State.OK, notice=f'Weight: {vsx.vsxStatusVSWeight}') + yield Result(state=State.OK, notice=f'Policy name: {vsx.vsxStatusPolicyName}') + yield Result(state=State.OK, notice=f'Policy type: {vsx.vsxStatusVsPolicyType}') - if not vsx.vsxStatusVsPolicyType.lower() in ['active']: - yield Result(state=State.CRIT, notice='No policy installed') + # metrics rate + now_time = time.time() + value_store = get_value_store() + metrics_prefix = 'checkpoint_vsx_' - if params['policyname'] != vsx.vsxStatusPolicyName: # policy changed - yield Result( - state=State.WARN, - notice=f'Policy name changed: expected {params["policyname"]}, found {vsx.vsxStatusPolicyName}' - ) + 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)) - 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}' - ) + # metrics count + 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') + else: + yield Result(state=State.OK, notice=f'System name: {item}') + yield Result(state=State.OK, summary=f'Virtual system ID: {vsx.vsxStatusVSId}') + yield Result(state=State.OK, summary=f'System Type: {vsx.vsxStatusVsType}') + yield Result(state=State.OK, summary=f'SIC status: {vsx.vsxStatusSicTrustState}') register.snmp_section( @@ -234,7 +235,6 @@ register.snmp_section( '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'), @@ -249,9 +249,11 @@ 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={ + discovery_default_parameters={ 'vsType': ['virtual system', 'vsx gateway', 'virtual switch', 'virtual router'] }, + discovery_ruleset_name='checkpoint_vsx_system', + check_function=check_checkpoint_vsx_system, + check_default_parameters={}, + check_ruleset_name='checkpoint_vsx_system', ) diff --git a/checkpoint_vsx.mkp b/checkpoint_vsx.mkp index daaecabfd99fbd0ffe02b7a9a423efb61f5cefc4..e525a9f0688635f90ce09cb9e890fcc109d818fd 100644 GIT binary patch literal 4045 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 a<*VucUEBXJ@^-Zcf!`#rDUFwphxdQLCCQlp literal 4042 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 ae>d_!rTsq||Com12?GIjodksh1pfhpdeXcA diff --git a/web/plugins/metrics/checkpoint_vsx.py b/web/plugins/metrics/checkpoint_vsx.py index d423fd9..a10e976 100644 --- a/web/plugins/metrics/checkpoint_vsx.py +++ b/web/plugins/metrics/checkpoint_vsx.py @@ -111,7 +111,7 @@ graph_info['checkpoint_vsx_bytes'] = { graph_info['checkpoint_vsx_logges_send'] = { 'title': _('Check Point VSX: Logs'), 'metrics': [ - ('checkpoint_vsx_logges_send', 'line'), + ('checkpoint_vsx_loggs_send', 'line'), ] } -- GitLab