From ba0af01668c19e9d271a36c893e041ee0e672088 Mon Sep 17 00:00:00 2001 From: OMD site cmk16x <thl-cmk@outlook.com> Date: Thu, 29 Apr 2021 15:16:07 +0200 Subject: [PATCH] update project --- checkpoint_raid.mkp | Bin 5471 -> 5303 bytes checks/checkpoint_raid | 201 ++++++++++++++++++++--------------------- 2 files changed, 97 insertions(+), 104 deletions(-) diff --git a/checkpoint_raid.mkp b/checkpoint_raid.mkp index 22f498f239d229041f6dfdb9a320678a48857df6..b1c036349e8dbccd317b74201e8e6779db9347dc 100644 GIT binary patch delta 5220 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 delta 5407 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 JNooMd002UrtUCYz diff --git a/checks/checkpoint_raid b/checks/checkpoint_raid index 9293e03..38bbd07 100644 --- a/checks/checkpoint_raid +++ b/checks/checkpoint_raid @@ -67,15 +67,15 @@ factory_settings['checkpoint_raid_defaults'] = { def parse_checkpoint_raid(info): raidvolumetype = { - 0 : 'RAID-0', - 1 : 'RAID-1E', - 2 : 'RAID-1', - 3 : 'RAID_10', - 4 : 'RAID-4', - 5 : 'RAID-5', - 6 : 'RAID-6', - 7 : 'RAID-60', - 8 : 'RAID-50', + 0: 'RAID-0', + 1: 'RAID-1E', + 2: 'RAID-1', + 3: 'RAID_10', + 4: 'RAID-4', + 5: 'RAID-5', + 6: 'RAID-6', + 7: 'RAID-60', + 8: 'RAID-50', } raw_volumes, raw_disks = info @@ -86,14 +86,14 @@ def parse_checkpoint_raid(info): volumeindex, volumeid, volumetype, numofdisksonraid, volumemaxlba, volumestate, volumeflags, volumesize = volume if volumeindex.isdigit(): - volumes.append({'volumeindex' : int(volumeindex), - 'volumeid' : int(volumeid), - 'volumetype' : raidvolumetype.get(int(volumetype)), + volumes.append({'volumeindex': int(volumeindex), + 'volumeid': int(volumeid), + 'volumetype': raidvolumetype.get(int(volumetype)), 'numofdisksonraid': int(numofdisksonraid), - 'volumemaxlba' : int(volumemaxlba), - 'volumestate' : int(volumestate), - 'volumeflags' : volumeflags, - 'volumesize' : int(volumesize), + 'volumemaxlba': int(volumemaxlba), + 'volumestate': int(volumestate), + 'volumeflags': volumeflags, + 'volumesize': int(volumesize), }) for disk in raw_disks: @@ -101,17 +101,17 @@ def parse_checkpoint_raid(info): diskflags, disksyncstate, disksize = disk if diskindex.isdigit(): - disks.append({'diskindex' : int(diskindex), - 'diskvolumeid' : int(diskvolumeid), - 'diskid' : int(disknumber), - 'diskvendor' : diskvendor, + disks.append({'diskindex': int(diskindex), + 'diskvolumeid': int(diskvolumeid), + 'diskid': int(disknumber), + 'diskvendor': diskvendor, 'diskproductid': diskproductid, - 'diskrevision' : diskrevision, - 'diskmaxlba' : int(diskmaxlba), - 'diskstate' : int(diskstate), - 'diskflags' : diskflags, + 'diskrevision': diskrevision, + 'diskmaxlba': int(diskmaxlba), + 'diskstate': int(diskstate), + 'diskflags': diskflags, 'disksyncstate': int(disksyncstate), - 'disksize' : int(disksize) + 'disksize': int(disksize) }) parse = [volumes, disks] @@ -140,16 +140,16 @@ def check_checkpoint_raid(item, params, parse): } raidvolumeflags = { - 0 : 'NONE', - 1 : 'ENABLED', - 2 : 'QUIESCED', - 3 : 'RESYNC IN PROGRESS', - 4 : 'VOLUME INACTIVE', - 5 : 'NOT CONFIGURED', - 6 : 'USING INTERIM RECOVERY MODE', - 7 : 'READY FOR RECOVERY OPERATION', - 8 : 'WRONG PHYSICAL DRIVE WAS REPLACED', - 9 : 'A PHYSICAL DRIVE IS NOT PROPERLY CONNECTED', + 0: 'NONE', + 1: 'ENABLED', + 2: 'QUIESCED', + 3: 'RESYNC IN PROGRESS', + 4: 'VOLUME INACTIVE', + 5: 'NOT CONFIGURED', + 6: 'USING INTERIM RECOVERY MODE', + 7: 'READY FOR RECOVERY OPERATION', + 8: 'WRONG PHYSICAL DRIVE WAS REPLACED', + 9: 'A PHYSICAL DRIVE IS NOT PROPERLY CONNECTED', 10: 'HARDWARE IS OVER HEATING', 11: 'HARDWARE WAS OVERHEATED', 12: 'CURRENTLY EXPENDING', @@ -162,21 +162,21 @@ def check_checkpoint_raid(item, params, parse): } raiddiskstate = { - 0 : 'ONLINE', - 1 : 'MISSING', - 2 : 'NOT COMPATIBLE', - 3 : 'DISC FAILED', - 4 : 'INITIALIZING', - 5 : 'OFFLINE REQUESTED', - 6 : 'FAILED REQUESTED', - 7 : 'UNCONFIGURED GOOD SPUN UP', - 8 : 'UNCONFIGURED GOOD SPUN DOWN', - 9 : 'UNCONFIGURED BAD', - 10 : 'HOTSPARE', - 11 : 'DRIVE OFFLINE', - 12 : 'REBUILD', - 13 : 'FAILED', - 14 : 'COPYBACK', + 0: 'ONLINE', + 1: 'MISSING', + 2: 'NOT COMPATIBLE', + 3: 'DISC FAILED', + 4: 'INITIALIZING', + 5: 'OFFLINE REQUESTED', + 6: 'FAILED REQUESTED', + 7: 'UNCONFIGURED GOOD SPUN UP', + 8: 'UNCONFIGURED GOOD SPUN DOWN', + 9: 'UNCONFIGURED BAD', + 10: 'HOTSPARE', + 11: 'DRIVE OFFLINE', + 12: 'REBUILD', + 13: 'FAILED', + 14: 'COPYBACK', 255: 'OTHER OFFLINE', } @@ -208,7 +208,6 @@ def check_checkpoint_raid(item, params, parse): volumes, disks = parse infotext = '' longoutput = '' - perfdata = [] ignore_disks = [] if params: @@ -228,16 +227,16 @@ def check_checkpoint_raid(item, params, parse): else: yield 0, 'Volume state: %s' % raidvolumestate.get(volume.get('volumestate')) - infotext += '%s, ' % volume.get('volumetype') + infotext += '%s, ' % volume.get('volumetype') infotext += '%d disks, ' % volume.get('numofdisksonraid') - infotext += '%d GB, ' % volume.get('volumesize') + infotext += '%d GB, ' % volume.get('volumesize') longoutput += '\nVolume state: %s, ' % raidvolumestate.get(volume.get('volumestate')) - longoutput += 'Type: %s, ' % volume.get('volumetype') - longoutput += '# of disks: %d , ' % volume.get('numofdisksonraid') - longoutput += 'Size: %d GB, ' % volume.get('volumesize') - longoutput += 'max LBA: %d, ' % volume.get('volumemaxlba') - longoutput += 'Flags: %s' % getflags(volume.get('volumeflags'), raidvolumeflags) + longoutput += 'Type: %s, ' % volume.get('volumetype') + longoutput += '# of disks: %d , ' % volume.get('numofdisksonraid') + longoutput += 'Size: %d GB, ' % volume.get('volumesize') + longoutput += 'max LBA: %d, ' % volume.get('volumemaxlba') + longoutput += 'Flags: %s' % getflags(volume.get('volumeflags'), raidvolumeflags) # disk infos disks_in_array = 0 @@ -255,22 +254,17 @@ def check_checkpoint_raid(item, params, parse): disks_online += 1 longoutput += '\n%s disk (id %d): ' % (raiddiskid.get(diskid), diskid) - longoutput += 'State: %s, ' % raiddiskstate.get(disk.get('diskstate')) - longoutput += 'Sync: %d%s, ' % (syncstate, '%') - longoutput += 'Size: %d GB, ' % disk.get('disksize') - longoutput += 'max LBA: %d, ' % disk.get('diskmaxlba') - longoutput += 'Vendor: %s, ' % disk.get('diskvendor') - longoutput += 'Product id: %s, ' % disk.get('diskproductid') - longoutput += 'Revision: %s, ' % disk.get('diskrevision') - longoutput += 'Flags: %s' % getflags(disk.get('diskflags'), raiddiskflags) - - # perfdata.append(('disk_id_%d' % diskid, syncstate, None, None, 0, 100)) + longoutput += 'State: %s, ' % raiddiskstate.get(disk.get('diskstate')) + longoutput += 'Sync: %d%s, ' % (syncstate, '%') + longoutput += 'Size: %d GB, ' % disk.get('disksize') + longoutput += 'max LBA: %d, ' % disk.get('diskmaxlba') + longoutput += 'Vendor: %s, ' % disk.get('diskvendor') + longoutput += 'Product id: %s, ' % disk.get('diskproductid') + longoutput += 'Revision: %s, ' % disk.get('diskrevision') + longoutput += 'Flags: %s' % getflags(disk.get('diskflags'), raiddiskflags) else: disks_ignored += 1 - # remove last ', ' - # infotext = infotext[:-2] - if disks_in_array == disks_online: yield 0, '%d/%d Disks online' % (disks_online, disks_in_array) else: @@ -279,42 +273,41 @@ def check_checkpoint_raid(item, params, parse): if disks_ignored > 0: yield 0, '%d Disks ignored' % disks_ignored - yield 0, infotext + longoutput # , perfdata + yield 0, infotext + longoutput check_info['checkpoint_raid'] = { - 'check_function' : check_checkpoint_raid, - 'inventory_function' : inventory_checkpoint_raid, - 'parse_function' : parse_checkpoint_raid, - 'default_levels_variable' : 'checkpoint_raid_defaults', - 'service_description' : 'Soft RAID %s', - 'group' : 'checkpoint_raid', - # 'has_perfdata' : True, + 'check_function': check_checkpoint_raid, + 'inventory_function': inventory_checkpoint_raid, + 'parse_function': parse_checkpoint_raid, + 'default_levels_variable': 'checkpoint_raid_defaults', + 'service_description': 'Soft RAID %s', + 'group': 'checkpoint_raid', 'snmp_scan_function': lambda oid: (oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.2620.1.6.123.1') or oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.8072.3.2.10')) and oid('.1.3.6.1.4.1.2620.1.6.1.0', '').lower().startswith('svn foundation'), - 'snmp_info' : [('.1.3.6.1.4.1.2620.1.6.7.7.1.1', [ # CHECKPOINT-MIB::raidVolumeEntry - '1', # raidVolumeIndex - '2', # raidVolumeID - '3', # raidVolumeType - '4', # numOfDisksOnRaid - '5', # raidVolumeMaxLBA - '6', # raidVolumeState - '7', # raidVolumeFlags - '8', # raidVolumeSize - ]), - ('.1.3.6.1.4.1.2620.1.6.7.7.2.1', [ # CHECKPOINT-MIB::raidDiskEntry - '1', # raidDiskIndex - '2', # raidDiskVolumeID - '3', # raidDiskID - '4', # raidDiskNumber - '5', # raidDiskVendor - '6', # raidDiskProductID - '7', # raidDiskRevision - '8', # raidDiskMaxLBA - '9', # raidDiskState - '10', # raidDiskFlags - '11', # raidDiskSyncState - '12', # raidDiskSize - ])], -} \ No newline at end of file + 'snmp_info': [('.1.3.6.1.4.1.2620.1.6.7.7.1.1', [ # CHECKPOINT-MIB::raidVolumeEntry + '1', # raidVolumeIndex + '2', # raidVolumeID + '3', # raidVolumeType + '4', # numOfDisksOnRaid + '5', # raidVolumeMaxLBA + '6', # raidVolumeState + '7', # raidVolumeFlags + '8', # raidVolumeSize + ]), + ('.1.3.6.1.4.1.2620.1.6.7.7.2.1', [ # CHECKPOINT-MIB::raidDiskEntry + '1', # raidDiskIndex + '2', # raidDiskVolumeID + '3', # raidDiskID + '4', # raidDiskNumber + '5', # raidDiskVendor + '6', # raidDiskProductID + '7', # raidDiskRevision + '8', # raidDiskMaxLBA + '9', # raidDiskState + '10', # raidDiskFlags + '11', # raidDiskSyncState + '12', # raidDiskSize + ])], +} -- GitLab