Collection of CheckMK checks (see https://checkmk.com/). All checks and plugins are provided as is. Absolutely no warranty. Send any comments to thl-cmk[at]outlook[dot]com

Skip to content
Snippets Groups Projects
Commit c58d55f2 authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent 18906e4d
No related branches found
No related tags found
No related merge requests found
File added
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#
# 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 SMO SGM Counters
#
# sample snmpwalk (for one existing SGM)
# .1.3.6.1.4.1.2620.1.48.20.25.1.1.1.0 = Gauge32: 1
# .1.3.6.1.4.1.2620.1.48.20.25.1.2.1.0 = STRING: "1_01"
# .1.3.6.1.4.1.2620.1.48.20.25.1.3.1.0 = STRING: "72609"
# .1.3.6.1.4.1.2620.1.48.20.25.1.4.1.0 = STRING: "0"
# .1.3.6.1.4.1.2620.1.48.20.25.1.5.1.0 = STRING: "76"
# .1.3.6.1.4.1.2620.1.48.20.25.1.6.1.0 = STRING: "37"
# .1.3.6.1.4.1.2620.1.48.20.25.1.7.1.0 = STRING: "0"
# .1.3.6.1.4.1.2620.1.48.20.25.1.8.1.0 = STRING: "0"
# .1.3.6.1.4.1.2620.1.48.20.25.1.9.1.0 = STRING: "0"
# .1.3.6.1.4.1.2620.1.48.20.25.1.10.1.0 = STRING: "2"
# .1.3.6.1.4.1.2620.1.48.20.25.1.11.1.0 = STRING: "0"
# .1.3.6.1.4.1.2620.1.48.20.25.1.12.1.0 = STRING: "9"
#
# # sample snmpwalk (for one none existing SGM)
# .1.3.6.1.4.1.2620.1.48.20.25.1.1.3.0 = Gauge32: 3
# .1.3.6.1.4.1.2620.1.48.20.25.1.2.3.0 = STRING: "1_03"
# .1.3.6.1.4.1.2620.1.48.20.25.1.3.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.4.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.5.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.6.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.7.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.8.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.9.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.10.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.11.3.0 = STRING: "N/A"
# .1.3.6.1.4.1.2620.1.48.20.25.1.12.3.0 = STRING: "N/A"
#
#
# sample info
# [
# [u'1_01', u'72609', u'0', u'76', u'37', u'0', u'0', u'0', u'2', u'0', u'9'],
# [u'1_02', u'39193', u'0', u'8', u'29', u'0', u'0', u'1', u'1', u'0', u'7'],
# [u'1_03', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_04', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_05', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_06', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_07', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_08', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_09', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_10', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_11', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_12', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_13', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'1_14', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_01', u'0', u'0', u'0', u'25', u'0', u'0', u'0', u'1', u'0', u'5'],
# [u'2_02', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_03', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_04', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_05', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_06', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_07', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_08', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_09', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_10', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_11', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_12', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_13', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A'],
# [u'2_14', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A', u'N/A']
# ]
#
def parse_checkpoint_asg_counters(info):
items = {}
for sgm in info:
asgBladeId, asgThroughput, asgConnRate, asgPacketRate, asgConcurrConnNum, asgAccelLoadAverage, asgAccelLoadMin, asgAccelLoadMax, asgInstanceLoadAverage, asgInstanceLoadMin, asgInstanceLoadMax = sgm
if not asgThroughput == asgConnRate == 'N/A': # do not add interfaces without ip address
item = '%s' % (asgBladeId)
items.update({item: {'asgThroughput': int(asgThroughput),
'asgConnRate': int(asgConnRate),
'asgPacketRate': int(asgPacketRate),
'asgConcurrConnNum': int(asgConcurrConnNum),
'asgAccelLoadAverage': int(asgAccelLoadAverage),
'asgAccelLoadMin': int(asgAccelLoadMin),
'asgAccelLoadMax': int(asgAccelLoadMax),
'asgInstanceLoadAverage': int(asgInstanceLoadAverage),
'asgInstanceLoadMin': int(asgInstanceLoadMin),
'asgInstanceLoadMax': int(asgInstanceLoadMax)
}
})
return items
def inventory_checkpoint_asg_counters(parsed):
# sample parsed
# {
# u'1_01': {'asgAccelLoadMax': 0, 'asgPacketRate': 76, 'asgInstanceLoadMin': 0, 'asgConnRate': 0, 'asgInstanceLoadAverage': 2, 'asgAccelLoadAverage': 0, 'asgThroughput': 72609, 'asgConcurrConnNum': 37, 'asgInstanceLoadMax': 9, 'asgAccelLoadMin': 0},
# u'1_02': {'asgAccelLoadMax': 1, 'asgPacketRate': 8, 'asgInstanceLoadMin': 0, 'asgConnRate': 0, 'asgInstanceLoadAverage': 1, 'asgAccelLoadAverage': 0, 'asgThroughput': 39193, 'asgConcurrConnNum': 29, 'asgInstanceLoadMax': 7, 'asgAccelLoadMin': 0},
# u'2_01': {'asgAccelLoadMax': 0, 'asgPacketRate': 0, 'asgInstanceLoadMin': 0, 'asgConnRate': 0, 'asgInstanceLoadAverage': 1, 'asgAccelLoadAverage': 0, 'asgThroughput': 0, 'asgConcurrConnNum': 25, 'asgInstanceLoadMax': 5, 'asgAccelLoadMin': 0}
# }
#
for item in parsed.keys():
yield item, None
def check_checkpoint_asg_counters(item, params, parsed):
try:
sgm = parsed[item]
asgThroughput = sgm['asgThroughput']
asgConnRate = sgm['asgConnRate']
asgPacketRate = sgm['asgPacketRate']
asgConcurrConnNum = sgm['asgConcurrConnNum']
asgAccelLoadAverage = sgm['asgAccelLoadAverage']
asgAccelLoadMin = sgm['asgAccelLoadMin']
asgAccelLoadMax = sgm['asgAccelLoadMax']
asgInstanceLoadAverage = sgm['asgInstanceLoadAverage']
asgInstanceLoadMin = sgm['asgInstanceLoadMin']
asgInstanceLoadMax = sgm['asgInstanceLoadMax']
if params:
pass
now_time = time.time()
rate_item = item.lower().replace(' ', '_').replace(':', '_')
# rx_bits = get_rate('checkpoint_asg_counters.%s.%s' % ('asgNetIfRx', rate_item), now_time, asg_interface['asgNetIfRx'] * 8, onwrap=SKIP)
perfdata = []
perfdata.append(('asgThroughput', asgThroughput, None, None, None, None))
perfdata.append(('asgConnRate', asgConnRate, None, None, None, None))
perfdata.append(('asgPacketRate', asgPacketRate, None, None, None, None))
perfdata.append(('asgConcurrConnNum', asgConcurrConnNum, None, None, None, None))
perfdata.append(('asgAccelLoadAverage', asgAccelLoadAverage, None, None, None, None))
perfdata.append(('asgAccelLoadMin', asgAccelLoadMin, None, None, None, None))
perfdata.append(('asgAccelLoadMax', asgAccelLoadMax, None, None, None, None))
perfdata.append(('asgInstanceLoadAverage', asgInstanceLoadAverage, None, None, None, None))
perfdata.append(('asgInstanceLoadMin', asgInstanceLoadMin, None, None, None, None))
perfdata.append(('asgInstanceLoadMax', asgInstanceLoadMax, None, None, None, None))
longoutput = ''
infotext = 'Throughput (bytes/s): %d, Connections/s: %d, Packets/s: %d,Concurrent connections: %d, AccelLoadAverage: %d, InstanceLoadAverage: %d' %(asgThroughput, asgConnRate, asgPacketRate, asgConcurrConnNum, asgAccelLoadAverage, asgInstanceLoadAverage)
yield 0, infotext + longoutput, perfdata
except KeyError:
pass
check_info['checkpoint_asg_counters'] = {
'check_function': check_checkpoint_asg_counters,
'inventory_function': inventory_checkpoint_asg_counters,
'service_description': "ASG SGM counters %s",
'snmp_scan_function': scan_checkpoint,
'parse_function': parse_checkpoint_asg_counters,
'group': 'checkpoint_asg_counters',
'has_perfdata': True,
'snmp_info': (
'.1.3.6.1.4.1.2620.1.48.20.25.1', # CHECKPOINT-MIB::asgCountersEntry
[
'2', # asgCountersBladeId
'3', # asgCountersThroughput
'4', # asgCountersConnRate
'5', # asgCountersPacketRate
'6', # asgCountersConcurrConnNum
'7', # asgCountersAccelLoadAverage
'8', # asgCountersAccelLoadMin
'9', # asgCountersAccelLoadMax
'10', # asgCountersInstanceLoadAverage
'11', # asgCountersInstanceLoadMin
'12', # asgCountersInstanceLoadMax
]),
'includes': ['checkpoint.include'],
}
{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)',
'description': u'Monitor Check Point Maestro SMO counters',
'download_url': 'http://thl-cmk.hopto.org/',
'files': {'checks': ['checkpoint_asg_counters']},
'name': 'checkpoint_asg_counters',
'num_files': 1,
'title': u'Check Point Maestro SMO counters',
'version': '20201109.v0.1',
'version.min_required': '1.4.0p38',
'version.packaged': '1.6.0p15',
'version.usable_until': None}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment