From 56738f05b23579d9e388d9e174bf7e10de2b7c14 Mon Sep 17 00:00:00 2001 From: thl-cmk <thl-cmk@outlook.com> Date: Tue, 3 Aug 2021 07:51:54 +0000 Subject: [PATCH] Delete cisco_eigrp_as_info --- checks/cisco_eigrp_as_info | 260 ------------------------------------- 1 file changed, 260 deletions(-) delete mode 100644 checks/cisco_eigrp_as_info diff --git a/checks/cisco_eigrp_as_info b/checks/cisco_eigrp_as_info deleted file mode 100644 index 7aba44f..0000000 --- a/checks/cisco_eigrp_as_info +++ /dev/null @@ -1,260 +0,0 @@ -#!/usr/bin/python -# -*- encoding: utf-8; py-indent-offset: 4 -*- -# -# Cisco EIGRP AS info -# -# Author: Th.L. -# Date : 2017-17-20 -# -# Monitor status of Cisco EIGRP AS info -# -# 2018-02-11: removed unnecessary OIDs -# 2018-08-06: modified scan function -# 2019-10-16: added support for IPv6 and VRFs, added parser function -# -# -# snmpwalk sample -# -# thl@surfbox-ii:~$ snmpwalk -v2c -c router-01 -ObentU simulant .1.3.6.1.4.1.9.9.449.1.2.1.1 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.2.65536.10 = Gauge32: 3 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.3.65536.10 = Counter32: 37436 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.4.65536.10 = Counter32: 32170 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.5.65536.10 = Counter32: 161 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.6.65536.10 = Counter32: 143 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.7.65536.10 = Counter32: 14 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.8.65536.10 = Counter32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.9.65536.10 = Counter32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.10.65536.10 = Counter32: 14 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.11.65536.10 = Counter32: 143 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.12.65536.10 = Counter32: 132 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.13.65536.10 = Gauge32: 2 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.14.65536.10 = Counter32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.15.65536.10 = Counter32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.16.65536.10 = Counter32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.17.65536.10 = INTEGER: 1 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.18.65536.10 = Hex-STRING: 0A A7 DC FF # can be also in the form of "10.10.10.10" :-( -# .1.3.6.1.4.1.9.9.449.1.2.1.1.19.65536.10 = Counter32: 10 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.20.65536.10 = Counter64: 1 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.21.65536.10 = Counter64: 135 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.22.65536.10 = Gauge32: 0 -# .1.3.6.1.4.1.9.9.449.1.2.1.1.23.65536.10 = Gauge32: 0 - -# -# sample info -# [ -# [u'65536.10', u'1', u'7081', u'6637', u'37', u'45', u'0', u'0', u'0', u'0', u'26', u'32', u'2', u'0', u'0', u'0', u'1', u'\n\xa7\xdc\xfd', u'10', u'0'] -# ] -# - -# -factory_settings['cisco_eigrp_as_info_defaults'] = { - -} - -########################################################################### -# -# DATA Parser function -# -########################################################################### - - -def parse_cisco_eigrp_as_info(info): - InetAddressType = {0: 'unknown', - 1: 'ipv4', - 2: 'ipv6', - 3: 'ipv4z', - 4: 'ipv6z', - 16: 'dns', - } - - def render_ip_address(bytestring): - return ".".join(["%s" % ord(m) for m in bytestring]) - - ASInfoTable = [] - ASTable = {} - ASInfo, VrfInfo = info - - for OID_END, cEigrpNbrCount, cEigrpHellosSent, cEigrpHellosRcvd, cEigrpUpdatesSent, cEigrpUpdatesRcvd, cEigrpQueriesSent, \ - cEigrpQueriesRcvd, cEigrpRepliesSent, cEigrpRepliesRcvd, cEigrpAcksSent, cEigrpAcksRcvd, cEigrpInputQHighMark, cEigrpInputQDrops, \ - cEigrpSiaQueriesSent, cEigrpSiaQueriesRcvd, cEigrpAsRouterIdType, cEigrpAsRouterId, cEigrpTopoRoutes, cEigrpXmitPendReplies in ASInfo: - - cEigrpVrfId = int(OID_END.split('.')[0]) - cEigrpAS = OID_END.split('.')[1] - - cEigrpVrfName = '' - for VrfId, VrfName in VrfInfo: - if int(VrfId) == cEigrpVrfId: - cEigrpVrfName = VrfName - if cEigrpVrfId < 100000: - cEigrpAddrFammily = 'IPv4' - else: - cEigrpAddrFammily = 'IPv6' - - if int(cEigrpAsRouterIdType) == 1: - if len(cEigrpAsRouterId) == 4: - cEigrpAsRouterId = render_ip_address(cEigrpAsRouterId) - - ASInfoTable.append({'cEigrpAS': cEigrpAS, - 'cEigrpVrfName': cEigrpVrfName, - 'cEigrpVrfId': cEigrpVrfId, - 'cEigrpAddrFammily': cEigrpAddrFammily, - 'cEigrpNbrCount': int(cEigrpNbrCount), - 'cEigrpHellosSent': int(cEigrpHellosSent), - 'cEigrpHellosRcvd': int(cEigrpHellosRcvd), - 'cEigrpUpdatesSent': int(cEigrpUpdatesSent), - 'cEigrpUpdatesRcvd': int(cEigrpUpdatesRcvd), - 'cEigrpQueriesSent': int(cEigrpQueriesSent), - 'cEigrpQueriesRcvd': int(cEigrpQueriesRcvd), - 'cEigrpRepliesSent': int(cEigrpRepliesSent), - 'cEigrpRepliesRcvd': int(cEigrpRepliesRcvd), - 'cEigrpAcksSent': int(cEigrpAcksSent), - 'cEigrpAcksRcvd': int(cEigrpAcksRcvd), - 'cEigrpInputQHighMark': int(cEigrpInputQHighMark), - 'cEigrpInputQDrops': int(cEigrpInputQDrops), - 'cEigrpSiaQueriesSent': int(cEigrpSiaQueriesSent), - 'cEigrpSiaQueriesRcvd': int(cEigrpSiaQueriesRcvd), - 'cEigrpAsRouterId': cEigrpAsRouterId, - 'cEigrpTopoRoutes': int(cEigrpTopoRoutes), - 'cEigrpXmitPendReplies': int(cEigrpXmitPendReplies), - }) - - if cEigrpVrfName == 'default' and cEigrpAddrFammily == 'IPv4': - ASTable.update({cEigrpVrfId: {'ServiceText': cEigrpAS, 'cEigrpVrfId': cEigrpVrfId}}) - elif cEigrpVrfName == 'default' and cEigrpAddrFammily == 'IPv6': - ASTable.update({cEigrpVrfId:{'ServiceText': '%s IPv6' % cEigrpAS, 'cEigrpVrfId': cEigrpVrfId}}) - elif cEigrpVrfName != 'default' and cEigrpAddrFammily == 'IPv4': - ASTable.update({cEigrpVrfId:{'ServiceText': '%s VRF %s' % (cEigrpAS, cEigrpVrfName), 'cEigrpVrfId': cEigrpVrfId}}) - elif cEigrpVrfName != 'default' and cEigrpAddrFammily == 'IPv6': - ASTable.update({cEigrpVrfId:{'ServiceText': '%s IPv6 VRF %s' % (cEigrpAS, cEigrpVrfName), 'cEigrpVrfId': cEigrpVrfId}}) - - return [ASTable, ASInfoTable] - -########################################################################### -# -# INVENTORY function -# -########################################################################### - - -def inventory_cisco_eigrp_as_info(parsed): - ASTable, ASInfoTable = parsed - ASTable = dict(ASTable) - for Key in ASTable.keys(): - ServiceText = ASTable.get(Key).get('ServiceText') - yield ServiceText, {} - -########################################################################### -# -# CHECK function -# -########################################################################### - - -def check_cisco_eigrp_as_info(item, params, parsed): - ASTable, ASInfoTable = parsed - ASTable = dict(ASTable) - - cEigrpVrfId = '' - for Key in ASTable.keys(): - ServiceText = ASTable.get(Key).get('ServiceText') - if ServiceText == item: - cEigrpVrfId = ASTable.get(Key).get('cEigrpVrfId') - - if cEigrpVrfId != '': - state = 0 - infotext = '' - longoutput = '' - perfdata = [] - - for AS in ASInfoTable: - if AS.get('cEigrpVrfId') == cEigrpVrfId: - cEigrpNbrCount = AS.get('cEigrpNbrCount') - cEigrpHellosSent = AS.get('cEigrpHellosSent') - cEigrpHellosRcvd = AS.get('cEigrpHellosRcvd') - cEigrpUpdatesSent = AS.get('cEigrpUpdatesSent') - cEigrpUpdatesRcvd = AS.get('cEigrpUpdatesRcvd') - cEigrpQueriesSent = AS.get('cEigrpQueriesSent') - cEigrpQueriesRcvd = AS.get('cEigrpQueriesRcvd') - cEigrpRepliesSent = AS.get('cEigrpRepliesSent') - cEigrpRepliesRcvd = AS.get('cEigrpRepliesRcvd') - cEigrpAcksSent = AS.get('cEigrpAcksSent') - cEigrpAcksRcvd = AS.get('cEigrpAcksRcvd') - cEigrpInputQHighMark = AS.get('cEigrpInputQHighMark') - cEigrpInputQDrops = AS.get('cEigrpInputQDrops') - cEigrpSiaQueriesSent = AS.get('cEigrpSiaQueriesSent') - cEigrpSiaQueriesRcvd = AS.get('cEigrpSiaQueriesRcvd') - cEigrpAsRouterId = AS.get('cEigrpAsRouterId') - cEigrpTopoRoutes = AS.get('cEigrpTopoRoutes') - cEigrpXmitPendReplies = AS.get('cEigrpXmitPendReplies') - - state = 0 - infotext = 'Router-ID: %s, neighbors: %s, Routes in topologie table: %s' % (cEigrpAsRouterId, cEigrpNbrCount, cEigrpTopoRoutes) - - perfdata = [ - ('cEigrpNbrCount', cEigrpNbrCount), - ('cEigrpHellosSent', get_rate('cisco_eigrp_as_info.%s.%s' % ('cEigrpHellosSent', item), time.time(), cEigrpHellosSent, onwrap=SKIP)), - ('cEigrpHellosRcvd', get_rate('cisco_eigrp_as_info.%s.%s' % ('cEigrpHellosRcvd', item), time.time(), cEigrpHellosRcvd, onwrap=SKIP)), - ('cEigrpUpdatesSent', cEigrpUpdatesSent), - ('cEigrpUpdatesRcvd', cEigrpUpdatesRcvd), - ('cEigrpQueriesSent', cEigrpQueriesSent), - ('cEigrpQueriesRcvd', cEigrpQueriesRcvd), - ('cEigrpRepliesSent', cEigrpRepliesSent), - ('cEigrpRepliesRcvd', cEigrpRepliesRcvd), - ('cEigrpAcksSent', cEigrpAcksSent), - ('cEigrpAcksRcvd', cEigrpAcksRcvd), - ('cEigrpInputQHighMark', cEigrpInputQHighMark), - ('cEigrpInputQDrops', cEigrpInputQDrops), - ('cEigrpSiaQueriesSent', cEigrpSiaQueriesSent), - ('cEigrpSiaQueriesRcvd', cEigrpSiaQueriesRcvd), - ('cEigrpTopoRoutes', cEigrpTopoRoutes), - ('cEigrpXmitPendReplies', cEigrpXmitPendReplies), - ] - - return state, infotext + longoutput, perfdata - -########################################################################### -# -# CHECK info -# -########################################################################### - - -check_info['cisco_eigrp_as_info'] = { - 'check_function' : check_cisco_eigrp_as_info, - 'inventory_function' : inventory_cisco_eigrp_as_info, - 'service_description' : 'EIGRP AS number %s', - 'has_perfdata' : True, - 'snmp_scan_function' : lambda oid: oid('.1.3.6.1.2.1.1.1.0').lower().find('cisco') != -1 and - oid('.1.3.6.1.4.1.9.9.449.1.2.1.1.2.*'), # CISCO-EIGRP-MIB::cEigrpNbrCount - 'group' : 'cisco_eigrp_as_info', - 'default_levels_variable': 'cisco_eigrp_as_info_defaults', - 'parse_function' : parse_cisco_eigrp_as_info, - 'snmp_info' : [('.1.3.6.1.4.1.9.9.449.1.2.1.1', [OID_END, # AS number [0] - '2', # cEigrpNbrCount [1] - '3', # cEigrpHellosSent [2] - '4', # cEigrpHellosRcvd [3] - '5', # cEigrpUpdatesSent [4] - '6', # cEigrpUpdatesRcvd [5] - '7', # cEigrpQueriesSent [6] - '8', # cEigrpQueriesRcvd [7] - '9', # cEigrpRepliesSent [8] - '10', # cEigrpRepliesRcvd [9] - '11', # cEigrpAcksSent [10] - '12', # cEigrpAcksRcvd [11] - '13', # cEigrpInputQHighMark [12] - '14', # cEigrpInputQDrops [13] - '15', # cEigrpSiaQueriesSent [14] - '16', # cEigrpSiaQueriesRcvd [15] - '17', # cEigrpAsRouterIdType [16] - '18', # cEigrpAsRouterId [17] - '19', # cEigrpTopoRoutes [18] - '22', # cEigrpXmitPendReplies [19] - # '20', # cEigrpHeadSerial [] - # '21', # cEigrpNextSerial [] - # '23', # cEigrpXmitDummies [] - ]), - ('.1.3.6.1.4.1.9.9.449.1.1.1.1', [OID_END, # VRF ID - '2', # cEigrpVpnName [0] - ]), - ], -} -- GitLab