From 7bca3f83e6418216b80b08f7c1881e322e9086e0 Mon Sep 17 00:00:00 2001 From: Thl CMK <thl-cmk@outlook.com> Date: Sun, 8 Nov 2020 10:42:58 +0100 Subject: [PATCH] update project --- checkpoint_asg_vsls.mkp | Bin 521 -> 1838 bytes checks/checkpoint_asg_vsls | 126 +++++++++++++++++++++++++++++++++++ packages/checkpoint_asg_vsls | 2 +- 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 checks/checkpoint_asg_vsls diff --git a/checkpoint_asg_vsls.mkp b/checkpoint_asg_vsls.mkp index 4c5c5eb34c8732913cb961b0d3f34a6fc45ce0e0..9231e6d99b42e1bed2f2a4e42e93ac32adfcff6d 100644 GIT binary patch delta 1817 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 H08jt`*{y^V delta 489 zcmV<F0T%wQ4v7Q>ABzYGc##Dxf0Rv+(=ZT*d*)YIz62z2?QNT&y&(=<wt!T`rK%!t z>TOJ2Pw+=Mtoq;aBt)B5U4fQm5falwEc>0Aj+5ur_6A0OICzSDI&GgRPM^HslaZJd zGf_<PS&{Zd`tcFrqbG>ygLH&E%8<k1{*k!NWDGU9?2^RnQ_Zdzc^+!>f2!JTmols% z1_Q8Nt|6={*uBVJJ|o#$`O4`gXs~VC9IOuD$lF>~Tk;XK4P-8r4-Uv;{(*d6TrJX} z^j>?Ct~*5E)q!u;fLxc+nN%pNLuf9?;~(u=4NU+BZZmGxH`*wlWVcy`eQ>$#mJN0+ zrQeiQ*CbmVFvH57!n!A-f4w(de;apYUsd2n(7~v7r29sBvv_wjPFrWMobT=;yWkgG z2wt!~XJUBBcG{LseT~|wH7W(0GTuyHABh@SZRMsH<VhfAM}p|(wNYiXLF1LZ2dfUh z_5O9@pMCLQ|04f+o}ch9c>bUNr{SNr1kl74?YK(IB|Xm-O<WOrTkeZaNwoi>Y0@Bi zxOWCUJnlRP1wXeO)VE-w{8zceq@lfF?!ERx2SW`3OG!2wgX8p0LD4Dh)IG1=_#Ll< fYPfym2<_jxb5A^ffO*ox<Gugyf8BV800;m8PdxQ` diff --git a/checks/checkpoint_asg_vsls b/checks/checkpoint_asg_vsls new file mode 100644 index 0000000..b0f8a70 --- /dev/null +++ b/checks/checkpoint_asg_vsls @@ -0,0 +1,126 @@ +#!/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-07 +# +# Monitor Check Point Maestro SMO Vsls Chassis status +# +# sample snmpwalk +# .1.3.6.1.4.1.2620.1.48.30.20.1.0 = Gauge32: 50 +# .1.3.6.1.4.1.2620.1.48.30.20.2.0 = STRING: "1 2 " +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.1.1.0 = Gauge32: 0 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.2.1.0 = STRING: "k01001s11-017500009" +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.3.1.0 = Gauge32: 1 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.4.1.0 = Gauge32: 1 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.5.1.0 = STRING: "OK" +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.6.1.0 = STRING: "Primary chassis health is good." +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.7.1.0 = Gauge32: 0 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.8.1.0 = Gauge32: 0 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.9.1.0 = Gauge32: 2 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.10.1.0 = Gauge32: 2 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.21.1.0 = Gauge32: 0 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.22.1.0 = Gauge32: 0 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.23.1.0 = Gauge32: 1 +# .1.3.6.1.4.1.2620.1.48.30.20.10.1.24.1.0 = Gauge32: 1 +# +# sample info +# [[[u'50', u'1 2']], [[u'0', u'k01001s11-017500009', u'1', u'1', u'OK', u'Primary chassis health is good.', u'2', u'2', u'1', u'1', u'', u'']]] +# + +def inventory_checkpoint_asg_vsls(info): + chassis_info, chassis_state = info + try: + asgVslsSgmRatio, asgVslsSystemPrimaryChassis = chassis_info[0] + yield None, {'inv_state': chassis_state[0]} + except KeyError: + pass + + +def check_checkpoint_asg_vsls(_no_item, params, info): + chassis_info, chassis_state = info + + asgVslsSgmRatio, asgVslsSystemPrimaryChassis = chassis_info[0] + + asgVslsVsid, asgVslsVsName, asgVslsVsPrimaryChassis, asgVslsVsActiveChassis, asgVslsVsHealth, asgVslsVsReason, \ + asgVslsVsChassis1FwksUp, asgVslsVsChassis1FwksTotal, \ + asgVslsVsChassis2FwksUp, asgVslsVsChassis2FwksTotal, \ + asgVslsVsChassis3FwksUp, asgVslsVsChassis3FwksTotal = chassis_state[0] + + asgVslsSystemPrimaryChassis = asgVslsSystemPrimaryChassis.strip().split(' ') + + inv_asgVslsVsActiveChassis = asgVslsVsActiveChassis + + if params: + inv_state = params.get ('inv_state') + inv_asgVslsVsActiveChassis = inv_state[3] + + + infotext = '' + longoutput = '' + state = 0 + + # longoutput += '\n\nTo verify this output use the "asg monitor" command on the Check Point SMO cli,\n' + longoutput += '\nSystem name: %s' % asgVslsVsName + longoutput += '\nHealth status: %s' % asgVslsVsHealth + longoutput += '\nHealth reason: %s' % asgVslsVsReason + + chassis_state = [ + [int(asgVslsVsChassis1FwksUp), int(asgVslsVsChassis1FwksTotal)], + [int(asgVslsVsChassis2FwksUp), int(asgVslsVsChassis2FwksTotal)], + [int(asgVslsVsChassis2FwksUp), int(asgVslsVsChassis2FwksTotal)], + ] + + if asgVslsVsHealth != "OK": + yield 1, "Health: %s, Reason: %s" % (asgVslsVsHealth, asgVslsVsReason) + + yield_text = 'Primary/Active chassis: %s/%s' % (asgVslsVsPrimaryChassis, asgVslsVsActiveChassis) + if inv_asgVslsVsActiveChassis != asgVslsVsActiveChassis: + yield 1, yield_text + else: + yield 0, yield_text + + for chassis in asgVslsSystemPrimaryChassis: + asgVslsVsChassisFwksUp, asgVslsVsChassisFwksTotal = chassis_state[int(chassis) - 1] + yield_text = 'Chassis %s: %s/%s SGMs UP' % (chassis, asgVslsVsChassisFwksUp, asgVslsVsChassisFwksTotal ) + if asgVslsVsChassisFwksUp != asgVslsVsChassisFwksTotal: + yield 2, yield_text + else: + yield 0, yield_text + + yield state, infotext + longoutput + '\n' + + +check_info['checkpoint_asg_vsls'] = { + 'check_function': check_checkpoint_asg_vsls, + 'inventory_function': inventory_checkpoint_asg_vsls, + 'service_description': "ASG VSLS", + 'snmp_scan_function': scan_checkpoint, + 'group': 'checkpoint_asg_vsls', + 'snmp_info': [( + '.1.3.6.1.4.1.2620.1.48.30.20', # CHECKPOINT-MIB::asgVslsInfo + [ + 1, # asgVslsSgmRatio + 2, # asgVslsSystemPrimaryChassis + ]), + ('.1.3.6.1.4.1.2620.1.48.30.20.10.1', # CHECKPOINT-MIB::asgVslsStateEntry + [ + 1, # asgVslsVsid + 2, # asgVslsVsName + 3, # asgVslsVsPrimaryChassis + 4, # asgVslsVsActiveChassis + 5, # asgVslsVsHealth + 6, # asgVslsVsReason + 9, # asgVslsVsChassis1FwksUp + 10, # asgVslsVsChassis1FwksTotal + 23, # asgVslsVsChassis2FwksUp + 24, # asgVslsVsChassis2FwksTotal + 33, # asgVslsVsChassis3FwksUp + 34, # asgVslsVsChassis3FwksTotal + ]) + ], + 'includes': ['checkpoint.include'], +} \ No newline at end of file diff --git a/packages/checkpoint_asg_vsls b/packages/checkpoint_asg_vsls index bba4a00..06a26a4 100644 --- a/packages/checkpoint_asg_vsls +++ b/packages/checkpoint_asg_vsls @@ -1,7 +1,7 @@ {'author': u'Th.L. (thl-cmk[at]outlook[dot]com)', 'description': u'Monitor Check Point Maestro SMO VSLS Chassis status', 'download_url': 'http://thl-cmk.hopto.org/', - 'files': {'checks': ['checkpoint_asg_chassis']}, + 'files': {'checks': ['checkpoint_asg_vsls']}, 'name': 'checkpoint_asg_vsls', 'num_files': 1, 'title': u'Check Point Maestro SMO ASG VSLS Chassis', -- GitLab