From e804b23ccbb35d2667ea3d18560eb64a060f4bfb Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Wed, 29 Sep 2021 17:00:46 +0200 Subject: [PATCH] update project --- agent_based/checkpoint_asg_sg_counters.py | 227 ++++++++++++++ checkpoint_asg_sg_counters.mkp | Bin 0 -> 3396 bytes packages/checkpoint_asg_sg_counters | 12 + .../metrics/checkpoint_asg_sg_counters.py | 288 ++++++++++++++++++ 4 files changed, 527 insertions(+) create mode 100644 agent_based/checkpoint_asg_sg_counters.py create mode 100644 checkpoint_asg_sg_counters.mkp create mode 100644 packages/checkpoint_asg_sg_counters create mode 100644 web/plugins/metrics/checkpoint_asg_sg_counters.py diff --git a/agent_based/checkpoint_asg_sg_counters.py b/agent_based/checkpoint_asg_sg_counters.py new file mode 100644 index 0000000..ff9b56d --- /dev/null +++ b/agent_based/checkpoint_asg_sg_counters.py @@ -0,0 +1,227 @@ +#!/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-11-09 +# +# Monitor Check Point Maestro SG Counters +# +# 2021-09-10: rewritten for CMK 2.0 +# 2021-09-11: added metrics file +# 2021-09-29: renamed from checkpoint_asg_smo_counters to checkpoint_asg_sg_counters +# +# sample snmpwalk +# .1.3.6.1.4.1.2620.1.48.20.1.0 = STRING: "111802" +# .1.3.6.1.4.1.2620.1.48.20.2.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.3.0 = STRING: "84" +# .1.3.6.1.4.1.2620.1.48.20.4.0 = STRING: "91" +# .1.3.6.1.4.1.2620.1.48.20.5.0 = STRING: "N/A" +# .1.3.6.1.4.1.2620.1.48.20.6.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.7.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.8.0 = STRING: "9" +# .1.3.6.1.4.1.2620.1.48.20.9.0 = STRING: "79" +# .1.3.6.1.4.1.2620.1.48.20.10.0 = STRING: "1" +# .1.3.6.1.4.1.2620.1.48.20.11.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.12.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.13.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.14.0 = STRING: "1" +# .1.3.6.1.4.1.2620.1.48.20.15.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.16.0 = STRING: "7" +# .1.3.6.1.4.1.2620.1.48.20.17.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.18.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.19.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.20.0 = STRING: "0" +# .1.3.6.1.4.1.2620.1.48.20.21.0 = STRING: "N/A" +# +# sample string_table +# [ +# [ +# '111802', '0', '84', '91', 'N/A', '0', '0', '9', '79', '1', '0', '0', '0', '1', '0', '7', '0', '0', '0', '0', 'N/A' +# ] +# ] +# + +from dataclasses import dataclass +from typing import Dict + +from cmk.base.plugins.agent_based.agent_based_api.v1 import ( + register, + Service, + Result, + Metric, + State, + SNMPTree, + all_of, + startswith, + any_of, + equals, +) +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( + DiscoveryResult, + CheckResult, + StringTable, +) + + +@dataclass +class CheckpointAsgSgCounters: + counters: Dict[str, int] + label: str + unit: str + text: str + + +def parse_checkpoint_asg_sg_counters(string_table: StringTable) -> Dict[str, CheckpointAsgSgCounters]: + items = {} + for entry in string_table: + asgThroughput, asgConnectionRate, asgPacketRate, asgConcurrConn, asgClearConn, asgAccelConnectionRate, \ + asgNonAccelConnectionRate, asgAccelConcurrConn, asgNonAccelConcurrConn, asgLoad, asgAccelLoadAvg, \ + asgAccelLoadMin, asgAccelLoadMax, asgInstancesLoadAvg, asgInstancesLoadMin, asgInstancesLoadMax, \ + asgVpnThroughput, asgVpnConn, asgNatConnRate, asgNatConn, asgVsxCpu1MinAvg = entry + + items['Concurrent connections'] = CheckpointAsgSgCounters( + counters={ + 'concurr_conn': int(asgConcurrConn), + 'accel_concurr_conn': int(asgAccelConcurrConn), + 'non_accel_concurr_conn': int(asgNonAccelConcurrConn), + }, + label='all/accelerated/non accelerated', + unit=' connections', + text=f'{int(asgConcurrConn):d}/{int(asgAccelConcurrConn):d}/{int(asgNonAccelConcurrConn):d}', + ) + items['Connection rate'] = CheckpointAsgSgCounters( + counters={ + 'connection_rate': int(asgConnectionRate), + 'accel_connection_rate': int(asgAccelConnectionRate), + 'non_accel_connection_rate': int(asgNonAccelConnectionRate), + }, + label='current/average/min/max', + unit=' connections/s', + text=f'{int(asgLoad):d}/{int(asgAccelLoadAvg):d}/{int(asgAccelLoadMin):d}/{int(asgAccelLoadMax):d}', + ) + items['Load'] = CheckpointAsgSgCounters( + counters={ + 'load': int(asgLoad), + 'accel_load_avg': int(asgAccelLoadAvg), + 'accel_load_min': int(asgAccelLoadMin), + 'accel_load_max': int(asgAccelLoadMax), + }, + label='current/average/min/max', + unit='%', + text=f'{int(asgLoad):d}/{int(asgAccelLoadAvg):d}/{int(asgAccelLoadMin):d}/{int(asgAccelLoadMax):d}', + ) + items['Instances load'] = CheckpointAsgSgCounters( + counters={ + 'instances_load_avg': int(asgInstancesLoadAvg), + 'instances_load_min': int(asgInstancesLoadMin), + 'instances_load_max': int(asgInstancesLoadMax), + }, + label='average/min/max', + unit='%', + text=f'{int(asgInstancesLoadAvg):d}/{int(asgInstancesLoadMin):d}/{int(asgInstancesLoadMax):d}', + ) + items['NAT'] = CheckpointAsgSgCounters( + counters={ + 'nat_conn_rate': int(asgNatConnRate), + 'nat_conn': int(asgNatConn), + }, + label='NAT Connections/NAT connection rate', + unit=' connections', + text=f'{int(asgNatConn):d}/{int(asgNatConn):d}', + ) + items['VPN'] = CheckpointAsgSgCounters( + counters={ + 'vpn_throughput': int(asgVpnThroughput), + 'vpn_conn': int(asgVpnConn), + }, + label='VPN Connections/VPN Throughput', + unit='', + text=f'{int(asgVpnConn):d}/{int(asgVpnThroughput):d}', + ) + items['Throughput'] = CheckpointAsgSgCounters( + counters={ + 'throughput': int(asgThroughput), + }, + label='Throughput', + unit=' Bytes/s', + text=f'{int(asgThroughput):d}' + ) + items['Packet rate'] = CheckpointAsgSgCounters( + counters={ + 'packet_rate': int(asgPacketRate), + }, + label='Packet Rate', + unit=' Packets/s', + text=f'{int(asgPacketRate):d}', + ) + if items: + return items + + +def discovery_checkpoint_asg_sg_counters(section:Dict[str, CheckpointAsgSgCounters]) -> DiscoveryResult: + for item in section.keys(): + yield Service(item=item) + + +def check_checkpoint_asg_sg_counters(item, params, section: Dict[str, CheckpointAsgSgCounters]) -> CheckResult: + try: + entry = section[item] + except KeyError: + yield Result(state=State.UNKNOWN, notice='Item not found in SNMP data') + return + + for key in entry.counters.keys(): + yield Metric(value=entry.counters[key], name=f'checkpoint_asg_sg_counters_{key}') + + yield Result(state=State.OK, summary=f'{entry.label}: {entry.text}{entry.unit}') + + +register.snmp_section( + name='checkpoint_asg_sg_counters', + parse_function=parse_checkpoint_asg_sg_counters, + fetch=SNMPTree( + base='.1.3.6.1.4.1.2620.1.48.20', # CHECKPOINT-MIB::asgIPv4PerformanceCounters + oids=[ + '1', # asgThroughput + '2', # asgConnectionRate + '3', # asgPacketRate + '4', # asgConcurrConn + '5', # asgClearConn + '6', # asgAccelConnectionRate + '7', # asgNonAccelConnectionRate + '8', # asgAccelConcurrConn + '9', # asgNonAccelConcurrConn + '10', # asgLoad + '11', # asgAccelLoadAvg + '12', # asgAccelLoadMin + '13', # asgAccelLoadMax + '14', # asgInstancesLoadAvg + '15', # asgInstancesLoadMin + '16', # asgInstancesLoadMax + '17', # asgVpnThroughput + '18', # asgVpnConn + '19', # asgNatConnRate + '20', # asgNatConn + '21', # asgVsxCpu1MinAvg + ] + ), + 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_asg_sg_counters', + service_name='ASG SG counters %s', + discovery_function=discovery_checkpoint_asg_sg_counters, + check_function=check_checkpoint_asg_sg_counters, + check_ruleset_name='checkpoint_asg_sg_counters', + check_default_parameters={}, +) diff --git a/checkpoint_asg_sg_counters.mkp b/checkpoint_asg_sg_counters.mkp new file mode 100644 index 0000000000000000000000000000000000000000..8c65b71bd4a798f18bf21d1d5bb4e364287c83c0 GIT binary patch literal 3396 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 aHPuv8O*Pe2Q%yBhr2hiFxS|dKcmMz`lB84s literal 0 HcmV?d00001 diff --git a/packages/checkpoint_asg_sg_counters b/packages/checkpoint_asg_sg_counters new file mode 100644 index 0000000..9bec67b --- /dev/null +++ b/packages/checkpoint_asg_sg_counters @@ -0,0 +1,12 @@ +{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)', + 'description': 'Monitor Check Point Maestro SG performance counters\n', + 'download_url': 'http://thl-cmk.hopto.org/', + 'files': {'agent_based': ['checkpoint_asg_sg_counters.py'], + 'web': ['plugins/metrics/checkpoint_asg_sg_counters.py']}, + 'name': 'checkpoint_asg_sg_counters', + 'num_files': 2, + 'title': 'Check Point Maestro SG performance counters', + 'version': '20210929.v0.3', + 'version.min_required': '2.0.0', + 'version.packaged': '2021.09.20', + 'version.usable_until': None} \ No newline at end of file diff --git a/web/plugins/metrics/checkpoint_asg_sg_counters.py b/web/plugins/metrics/checkpoint_asg_sg_counters.py new file mode 100644 index 0000000..84014ce --- /dev/null +++ b/web/plugins/metrics/checkpoint_asg_sg_counters.py @@ -0,0 +1,288 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# + +from cmk.gui.i18n import _ + +from cmk.gui.plugins.metrics import ( + metric_info, + graph_info, + perfometer_info, +) + +metric_info['checkpoint_asg_sg_counters_concurr_conn'] = { + 'title': _('Connections'), + 'unit': 'count', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_accel_concurr_conn'] = { + 'title': _('Connections Accelerated'), + 'unit': 'count', + 'color': '32/a', +} +metric_info['checkpoint_asg_sg_counters_non_accel_concurr_conn'] = { + 'title': _('Connections non Accelerated'), + 'unit': 'count', + 'color': '16/a', +} + +metric_info['checkpoint_asg_sg_counters_connection_rate'] = { + 'title': _('Connection Rate'), + 'unit': '1/s', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_accel_connection_rate'] = { + 'title': _('Connection Rate Accelerated'), + 'unit': '1/s', + 'color': '32/a', +} +metric_info['checkpoint_asg_sg_counters_non_accel_connection_rate'] = { + 'title': _('Connection Rate non Accelerated'), + 'unit': '1/s', + 'color': '16/a', +} + +metric_info['checkpoint_asg_sg_counters_load'] = { + 'title': _('Load'), + 'unit': '%', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_accel_load_max'] = { + 'title': _('Accel load (max)'), + 'unit': '%', + 'color': '31/a', +} +metric_info['checkpoint_asg_sg_counters_accel_load_avg'] = { + 'title': _('Accel load (avg)'), + 'unit': '%', + 'color': '16/a', +} +metric_info['checkpoint_asg_sg_counters_accel_load_min'] = { + 'title': _('Accel load (min)'), + 'unit': '%', + 'color': '11/a', +} + +metric_info['checkpoint_asg_sg_counters_instances_load_avg'] = { + 'title': _('Instances load (avg)'), + 'unit': '%', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_instances_load_min'] = { + 'title': _('Instances load (min)'), + 'unit': '%', + 'color': '32/a', +} +metric_info['checkpoint_asg_sg_counters_instances_load_max'] = { + 'title': _('Instances load (max)'), + 'unit': '%', + 'color': '16/a', +} + +metric_info['checkpoint_asg_sg_counters_nat_conn'] = { + 'title': _('NAT connections'), + 'unit': 'count', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_nat_conn_rate'] = { + 'title': _('NAT Conn Rate'), + 'unit': '1/s', + 'color': '32/a', +} + +metric_info['checkpoint_asg_sg_counters_vpn_conn'] = { + 'title': _('VPN connections'), + 'unit': 'count', + 'color': '26/a', +} +metric_info['checkpoint_asg_sg_counters_vpn_throughput'] = { + 'title': _('VPN Throughput'), + 'unit': 'bytes/s', + 'color': '32/a', +} + +metric_info['checkpoint_asg_sg_counters_throughput'] = { + 'title': _('Throughput'), + 'unit': 'bytes/s', + 'color': '26/a', +} + +metric_info['checkpoint_asg_sg_counters_packet_rate'] = { + 'title': _('Packet Rate'), + 'unit': '1/s', + 'color': '26/a', +} + +graph_info['checkpoint_asg_sg_counters_connections'] = { + 'title': _('Check Point SG Concurrent Connections'), + 'metrics': [ + ('checkpoint_asg_sg_counters_non_accel_concurr_conn', 'line'), + ('checkpoint_asg_sg_counters_accel_concurr_conn', 'line'), + ('checkpoint_asg_sg_counters_concurr_conn', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_concurr_conn:max'), +} + +graph_info['checkpoint_asg_sg_counters_connection_rate'] = { + 'title': _('Check Point SG Counter Connection Rate'), + 'metrics': [ + ('checkpoint_asg_sg_counters_non_accel_connection_rate', 'line'), + ('checkpoint_asg_sg_counters_accel_connection_rate', 'line'), + ('checkpoint_asg_sg_counters_connection_rate', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_connection_rate:max'), +} + +graph_info['checkpoint_asg_sg_counters_accel_load'] = { + 'title': _('Check Point SG Counter Load'), + 'metrics': [ + ('checkpoint_asg_sg_counters_accel_load_min', 'line'), + ('checkpoint_asg_sg_counters_accel_load_avg', 'line'), + ('checkpoint_asg_sg_counters_accel_load_max', 'line'), + ('checkpoint_asg_sg_counters_load', 'area'), + ], + 'range': (0, 110), +} + +graph_info['checkpoint_asg_sg_counters_instances_load'] = { + 'title': _('Check Point SG Counter Instances Load'), + 'metrics': [ + ('checkpoint_asg_sg_counters_instances_load_min', 'line'), + ('checkpoint_asg_sg_counters_instances_load_avg', 'area'), + ('checkpoint_asg_sg_counters_instances_load_max', 'line'), + ], + 'range': (0, 110), +} + +graph_info['checkpoint_asg_sg_counters_nat_conn'] = { + 'title': _('Check Point SG Counter NAT connections'), + 'metrics': [ + ('checkpoint_asg_sg_counters_nat_conn', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_nat_conn:max'), +} +graph_info['checkpoint_asg_sg_counters_nat_conn_rate'] = { + 'title': _('Check Point SG Counter NAT connection rate'), + 'metrics': [ + ('checkpoint_asg_sg_counters_nat_conn_rate', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_nat_conn_rate:max'), +} + +graph_info['checkpoint_asg_sg_counters_vpn_conn'] = { + 'title': _('Check Point SG Counter VPN connections'), + 'metrics': [ + ('checkpoint_asg_sg_counters_vpn_conn', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_vpn_conn:max'), +} +graph_info['checkpoint_asg_sg_counters_vpn_throughput'] = { + 'title': _('Check Point SGM Counter VPN Throughput'), + 'metrics': [ + ('checkpoint_asg_sg_counters_vpn_throughput', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_vpn_throughput:max'), +} + +graph_info['checkpoint_asg_sg_counters_throughput'] = { + 'title': _('Check Point SG Counter Throughput'), + 'metrics': [ + ('checkpoint_asg_sg_counters_throughput', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_throughput:max'), +} + +graph_info['checkpoint_asg_sg_counters_packet_rate'] = { + 'title': _('Check Point SG Counter Packet Rate'), + 'metrics': [ + ('checkpoint_asg_sg_counters_packet_rate', 'area'), + ], + 'range': (0, 'checkpoint_asg_sg_counters_packet_rate:max'), +} + + +perfometer_info.append(('stacked', [ + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_accel_concurr_conn', + 'half_value': 100000.0, + 'exponent': 2, + }, + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_non_accel_concurr_conn', + 'half_value': 100000.0, + 'exponent': 2, + }, +])) + +perfometer_info.append(('stacked', [ + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_accel_connection_rate', + 'half_value': 10000.0, + 'exponent': 2, + }, + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_non_accel_connection_rate', + 'half_value': 10000.0, + 'exponent': 2, + }, +])) + +perfometer_info.append({ + 'type': 'linear', + 'segments': ['checkpoint_asg_sg_counters_accel_load_avg'], + 'total': 100, +}) + +perfometer_info.append({ + 'type': 'linear', + 'segments': ['checkpoint_asg_sg_counters_instances_load_avg'], + 'total': 100, +}) + +perfometer_info.append(('stacked', [ + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_nat_conn', + 'half_value': 10000.0, + 'exponent': 2, + }, + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_nat_conn_rate', + 'half_value': 500.0, + 'exponent': 2, + }, +])) + +perfometer_info.append(('stacked', [ + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_vpn_conn', + 'half_value': 500.0, + 'exponent': 2, + }, + { + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_vpn_throughput', + 'half_value': 2592000.0, + 'exponent': 2, + }, +])) + +perfometer_info.append({ + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_throughput', + 'half_value': 500.0, + 'exponent': 2, +}) + +perfometer_info.append({ + 'type': 'logarithmic', + 'metric': 'checkpoint_asg_sg_counters_packet_rate', + 'half_value': 100000.0, + 'exponent': 2, +}) -- GitLab