Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package monitoring-plugins-nwc_health for openSUSE:Factory checked in at 2021-03-05 13:49:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health (Old) and /work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "monitoring-plugins-nwc_health" Fri Mar 5 13:49:15 2021 rev:10 rq:876952 version:8.3.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health/monitoring-plugins-nwc_health.changes 2021-01-19 16:04:09.523557513 +0100 +++ /work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2378/monitoring-plugins-nwc_health.changes 2021-03-05 13:51:31.543966826 +0100 @@ -1,0 +2,20 @@ +Wed Mar 3 07:31:25 UTC 2021 - Martin Hauke <mar...@gmx.de> + +- Update to version 8.3.1.1 + * bugfix in interface-stack-status (triggered when --name did + not match) + +------------------------------------------------------------------- +Sat Feb 13 13:52:40 UTC 2021 - Martin Hauke <mar...@gmx.de> + +- Update to version 8.3.1 + * add mode license-status for cisco + * split Bluecat in AddressManager and DnsDhcpServer + * do not use cpmCPUMemoryHCCommitted, except if you want mem + usage > 100% + * check the memory of all members in a cisco stack only if + there are > 1 members + * check the memory of all members in a cisco stack + * bugfix in Bluecat jvm + +------------------------------------------------------------------- Old: ---- check_nwc_health-8.1.tar.gz New: ---- check_nwc_health-8.3.1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ monitoring-plugins-nwc_health.spec ++++++ --- /var/tmp/diff_new_pack.QX5xSa/_old 2021-03-05 13:51:32.059967322 +0100 +++ /var/tmp/diff_new_pack.QX5xSa/_new 2021-03-05 13:51:32.063967326 +0100 @@ -19,7 +19,7 @@ %define realname check_nwc_health Name: monitoring-plugins-nwc_health -Version: 8.1 +Version: 8.3.1.1 Release: 0 Summary: This plugin checks the health of network components and interfaces # https://github.com/lausser/check_nwc_health ++++++ check_nwc_health-8.1.tar.gz -> check_nwc_health-8.3.1.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/ChangeLog new/check_nwc_health-8.3.1.1/ChangeLog --- old/check_nwc_health-8.1/ChangeLog 2021-01-18 21:21:42.786666600 +0100 +++ new/check_nwc_health-8.3.1.1/ChangeLog 2021-03-02 21:19:13.227187600 +0100 @@ -1,3 +1,17 @@ +* 2021-03-02 8.3.1.1 + bugfix in interface-stack-status (triggered when --name did not match) +* 2021-02-12 8.3.1 + add mode license-status for cisco +* 2021-02-08 8.3 + split Bluecat in AddressManager and DnsDhcpServer +* 2021-01-28 8.2.0.2 + do not use cpmCPUMemoryHCCommitted, except if you want mem usage > 100% +* 2021-01-27 8.2.0.1 + check the memory of all members in a cisco stack only if there are > 1 members +* 2021-01-22 8.2 + check the memory of all members in a cisco stack +* 2021-01-18 8.1.0.1 + bugfix in Bluecat jvm * 2021-01-18 8.1 add Bluecat Address Manager * 2021-01-13 8.0.0.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm --- old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm 2021-01-18 21:21:43.294172400 +0100 +++ new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm 2021-03-02 21:19:13.760167300 +0100 @@ -5,7 +5,13 @@ name => 'CISCO-PROCESS-MIB', }; +$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'CISCO-PROCESS-MIB'} = + '1.3.6.1.4.1.9.9.109'; + $Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-PROCESS-MIB'} = { + 'ciscoProcessMIB' => '1.3.6.1.4.1.9.9.109', + 'ciscoProcessMIBObjects' => '1.3.6.1.4.1.9.9.109.1', + 'cpmCPU' => '1.3.6.1.4.1.9.9.109.1.1', 'cpmCPUTotalTable' => '1.3.6.1.4.1.9.9.109.1.1.1', 'cpmCPUTotalEntry' => '1.3.6.1.4.1.9.9.109.1.1.1.1', 'cpmCPUTotalIndex' => '1.3.6.1.4.1.9.9.109.1.1.1.1.1', @@ -17,11 +23,205 @@ 'cpmCPUTotal1minRev' => '1.3.6.1.4.1.9.9.109.1.1.1.1.7', 'cpmCPUTotal5minRev' => '1.3.6.1.4.1.9.9.109.1.1.1.1.8', 'cpmCPUMonInterval' => '1.3.6.1.4.1.9.9.109.1.1.1.1.9', - 'cpmCPUTotalMonIntervalDefinition' => '1.3.6.1.4.1.9.9.109.1.1.1.1.10', - 'cpmCPUInterruptMonIntervalDefinition' => '1.3.6.1.4.1.9.9.109.1.1.1.1.11', + 'cpmCPUTotalMonIntervalValue' => '1.3.6.1.4.1.9.9.109.1.1.1.1.10', + 'cpmCPUInterruptMonIntervalValue' => '1.3.6.1.4.1.9.9.109.1.1.1.1.11', + 'cpmCPUMemoryUsed' => '1.3.6.1.4.1.9.9.109.1.1.1.1.12', + 'cpmCPUMemoryFree' => '1.3.6.1.4.1.9.9.109.1.1.1.1.13', + 'cpmCPUMemoryKernelReserved' => '1.3.6.1.4.1.9.9.109.1.1.1.1.14', + 'cpmCPUMemoryLowest' => '1.3.6.1.4.1.9.9.109.1.1.1.1.15', + 'cpmCPUMemoryUsedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.16', + 'cpmCPUMemoryHCUsed' => '1.3.6.1.4.1.9.9.109.1.1.1.1.17', + 'cpmCPUMemoryFreeOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.18', + 'cpmCPUMemoryHCFree' => '1.3.6.1.4.1.9.9.109.1.1.1.1.19', + 'cpmCPUMemoryKernelReservedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.20', + 'cpmCPUMemoryHCKernelReserved' => '1.3.6.1.4.1.9.9.109.1.1.1.1.21', + 'cpmCPUMemoryLowestOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.22', + 'cpmCPUMemoryHCLowest' => '1.3.6.1.4.1.9.9.109.1.1.1.1.23', + 'cpmCPULoadAvg1min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.24', + 'cpmCPULoadAvg5min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.25', + 'cpmCPULoadAvg15min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.26', + 'cpmCPUMemoryCommitted' => '1.3.6.1.4.1.9.9.109.1.1.1.1.27', + 'cpmCPUMemoryCommittedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.28', + 'cpmCPUMemoryHCCommitted' => '1.3.6.1.4.1.9.9.109.1.1.1.1.29', + 'cpmCoreTable' => '1.3.6.1.4.1.9.9.109.1.1.2', + 'cpmCoreEntry' => '1.3.6.1.4.1.9.9.109.1.1.2.1', + 'cpmCoreIndex' => '1.3.6.1.4.1.9.9.109.1.1.2.1.1', + 'cpmCorePhysicalIndex' => '1.3.6.1.4.1.9.9.109.1.1.2.1.2', + 'cpmCore5sec' => '1.3.6.1.4.1.9.9.109.1.1.2.1.3', + 'cpmCore1min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.4', + 'cpmCore5min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.5', + 'cpmCoreLoadAvg1min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.6', + 'cpmCoreLoadAvg5min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.7', + 'cpmCoreLoadAvg15min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.8', + 'cpmProcess' => '1.3.6.1.4.1.9.9.109.1.2', + 'cpmProcessTable' => '1.3.6.1.4.1.9.9.109.1.2.1', + 'cpmProcessEntry' => '1.3.6.1.4.1.9.9.109.1.2.1.1', + 'cpmProcessPID' => '1.3.6.1.4.1.9.9.109.1.2.1.1.1', + 'cpmProcessName' => '1.3.6.1.4.1.9.9.109.1.2.1.1.2', + 'cpmProcessuSecs' => '1.3.6.1.4.1.9.9.109.1.2.1.1.4', + 'cpmProcessTimeCreated' => '1.3.6.1.4.1.9.9.109.1.2.1.1.5', + 'cpmProcessAverageUSecs' => '1.3.6.1.4.1.9.9.109.1.2.1.1.6', + 'cpmProcessExtTable' => '1.3.6.1.4.1.9.9.109.1.2.2', + 'cpmProcessExtEntry' => '1.3.6.1.4.1.9.9.109.1.2.2.1', + 'cpmProcExtMemAllocated' => '1.3.6.1.4.1.9.9.109.1.2.2.1.1', + 'cpmProcExtMemFreed' => '1.3.6.1.4.1.9.9.109.1.2.2.1.2', + 'cpmProcExtInvoked' => '1.3.6.1.4.1.9.9.109.1.2.2.1.3', + 'cpmProcExtRuntime' => '1.3.6.1.4.1.9.9.109.1.2.2.1.4', + 'cpmProcExtUtil5Sec' => '1.3.6.1.4.1.9.9.109.1.2.2.1.5', + 'cpmProcExtUtil1Min' => '1.3.6.1.4.1.9.9.109.1.2.2.1.6', + 'cpmProcExtUtil5Min' => '1.3.6.1.4.1.9.9.109.1.2.2.1.7', + 'cpmProcExtPriority' => '1.3.6.1.4.1.9.9.109.1.2.2.1.8', + 'cpmProcExtPriorityDefinition' => 'CISCO-PROCESS-MIB::cpmProcExtPriority', + 'cpmProcessExtRevTable' => '1.3.6.1.4.1.9.9.109.1.2.3', + 'cpmProcessExtRevEntry' => '1.3.6.1.4.1.9.9.109.1.2.3.1', + 'cpmProcExtMemAllocatedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.1', + 'cpmProcExtMemFreedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.2', + 'cpmProcExtInvokedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.3', + 'cpmProcExtRuntimeRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.4', + 'cpmProcExtUtil5SecRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.5', + 'cpmProcExtUtil1MinRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.6', + 'cpmProcExtUtil5MinRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.7', + 'cpmProcExtPriorityRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.8', + 'cpmProcExtPriorityRevDefinition' => 'CISCO-PROCESS-MIB::cpmProcExtPriorityRev', + 'cpmProcessType' => '1.3.6.1.4.1.9.9.109.1.2.3.1.9', + 'cpmProcessTypeDefinition' => 'CISCO-PROCESS-MIB::cpmProcessType', + 'cpmProcessRespawn' => '1.3.6.1.4.1.9.9.109.1.2.3.1.10', + 'cpmProcessRespawnCount' => '1.3.6.1.4.1.9.9.109.1.2.3.1.11', + 'cpmProcessRespawnAfterLastPatch' => '1.3.6.1.4.1.9.9.109.1.2.3.1.12', + 'cpmProcessMemoryCore' => '1.3.6.1.4.1.9.9.109.1.2.3.1.13', + 'cpmProcessMemoryCoreDefinition' => 'CISCO-PROCESS-MIB::cpmProcessMemoryCore', + 'cpmProcessLastRestartUser' => '1.3.6.1.4.1.9.9.109.1.2.3.1.14', + 'cpmProcessTextSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.15', + 'cpmProcessDataSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.16', + 'cpmProcessStackSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.17', + 'cpmProcessDynamicMemorySize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.18', + 'cpmProcExtMemAllocatedRevOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.19', + 'cpmProcExtHCMemAllocatedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.20', + 'cpmProcExtMemFreedRevOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.21', + 'cpmProcExtHCMemFreedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.22', + 'cpmProcessTextSegmentSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.23', + 'cpmProcessHCTextSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.24', + 'cpmProcessDataSegmentSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.25', + 'cpmProcessHCDataSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.26', + 'cpmProcessStackSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.27', + 'cpmProcessHCStackSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.28', + 'cpmProcessDynamicMemorySizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.29', + 'cpmProcessHCDynamicMemorySize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.30', + 'cpmCPUThresholdTable' => '1.3.6.1.4.1.9.9.109.1.2.4', + 'cpmCPUThresholdEntry' => '1.3.6.1.4.1.9.9.109.1.2.4.1', + 'cpmCPUThresholdClass' => '1.3.6.1.4.1.9.9.109.1.2.4.1.1', + 'cpmCPUThresholdClassDefinition' => 'CISCO-PROCESS-MIB::cpmCPUThresholdClass', + 'cpmCPURisingThresholdValue' => '1.3.6.1.4.1.9.9.109.1.2.4.1.2', + 'cpmCPURisingThresholdPeriod' => '1.3.6.1.4.1.9.9.109.1.2.4.1.3', + 'cpmCPUFallingThresholdValue' => '1.3.6.1.4.1.9.9.109.1.2.4.1.4', + 'cpmCPUFallingThresholdPeriod' => '1.3.6.1.4.1.9.9.109.1.2.4.1.5', + 'cpmCPUThresholdEntryStatus' => '1.3.6.1.4.1.9.9.109.1.2.4.1.6', + 'cpmCPUHistory' => '1.3.6.1.4.1.9.9.109.1.2.5', + 'cpmCPUHistoryThreshold' => '1.3.6.1.4.1.9.9.109.1.2.5.1', + 'cpmCPUHistorySize' => '1.3.6.1.4.1.9.9.109.1.2.5.2', + 'cpmCPUHistoryTable' => '1.3.6.1.4.1.9.9.109.1.2.5.3', + 'cpmCPUHistoryEntry' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1', + 'cpmCPUHistoryReportId' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.1', + 'cpmCPUHistoryReportSize' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.2', + 'cpmCPUHistoryTotalUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.3', + 'cpmCPUHistoryInterruptUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.4', + 'cpmCPUHistoryCreatedTime' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.5', + 'cpmCPUProcessHistoryTable' => '1.3.6.1.4.1.9.9.109.1.2.5.4', + 'cpmCPUProcessHistoryEntry' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1', + 'cpmCPUProcessHistoryIndex' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.1', + 'cpmCPUHistoryProcId' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.2', + 'cpmCPUHistoryProcName' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.3', + 'cpmCPUHistoryProcCreated' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.4', + 'cpmCPUHistoryProcUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.5', + 'cpmThread' => '1.3.6.1.4.1.9.9.109.1.3', + 'cpmThreadTable' => '1.3.6.1.4.1.9.9.109.1.3.1', + 'cpmThreadEntry' => '1.3.6.1.4.1.9.9.109.1.3.1.1', + 'cpmThreadID' => '1.3.6.1.4.1.9.9.109.1.3.1.1.1', + 'cpmThreadName' => '1.3.6.1.4.1.9.9.109.1.3.1.1.2', + 'cpmThreadPriority' => '1.3.6.1.4.1.9.9.109.1.3.1.1.3', + 'cpmThreadState' => '1.3.6.1.4.1.9.9.109.1.3.1.1.4', + 'cpmThreadStateDefinition' => 'CISCO-PROCESS-MIB::cpmThreadState', + 'cpmThreadBlockingProcess' => '1.3.6.1.4.1.9.9.109.1.3.1.1.5', + 'cpmThreadCpuUtilization' => '1.3.6.1.4.1.9.9.109.1.3.1.1.6', + 'cpmThreadStackSize' => '1.3.6.1.4.1.9.9.109.1.3.1.1.7', + 'cpmThreadStackSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.3.1.1.8', + 'cpmThreadHCStackSize' => '1.3.6.1.4.1.9.9.109.1.3.1.1.9', + 'cpmVirtualProcess' => '1.3.6.1.4.1.9.9.109.1.4', + 'cpmVirtualProcessTable' => '1.3.6.1.4.1.9.9.109.1.4.1', + 'cpmVirtualProcessEntry' => '1.3.6.1.4.1.9.9.109.1.4.1.1', + 'cpmVirtualProcessID' => '1.3.6.1.4.1.9.9.109.1.4.1.1.1', + 'cpmVirtualProcessName' => '1.3.6.1.4.1.9.9.109.1.4.1.1.2', + 'cpmVirtualProcessUtil5Sec' => '1.3.6.1.4.1.9.9.109.1.4.1.1.3', + 'cpmVirtualProcessUtil1Min' => '1.3.6.1.4.1.9.9.109.1.4.1.1.4', + 'cpmVirtualProcessUtil5Min' => '1.3.6.1.4.1.9.9.109.1.4.1.1.5', + 'cpmVirtualProcessMemAllocated' => '1.3.6.1.4.1.9.9.109.1.4.1.1.6', + 'cpmVirtualProcessMemFreed' => '1.3.6.1.4.1.9.9.109.1.4.1.1.7', + 'cpmVirtualProcessInvokeCount' => '1.3.6.1.4.1.9.9.109.1.4.1.1.8', + 'cpmVirtualProcessRuntime' => '1.3.6.1.4.1.9.9.109.1.4.1.1.9', + 'cpmVirtualProcessMemAllocatedOvrflw' => '1.3.6.1.4.1.9.9.109.1.4.1.1.10', + 'cpmVirtualProcessHCMemAllocated' => '1.3.6.1.4.1.9.9.109.1.4.1.1.11', + 'cpmVirtualProcessMemFreedOvrflw' => '1.3.6.1.4.1.9.9.109.1.4.1.1.12', + 'cpmVirtualProcessHCMemFreed' => '1.3.6.1.4.1.9.9.109.1.4.1.1.13', + 'ciscoProcessMIBNotifPrefix' => '1.3.6.1.4.1.9.9.109.2', + 'ciscoProcessMIBNotifs' => '1.3.6.1.4.1.9.9.109.2.0', + 'ciscoProcessMIBConformance' => '1.3.6.1.4.1.9.9.109.3', + 'cpmCompliances' => '1.3.6.1.4.1.9.9.109.3.1', + 'cpmGroups' => '1.3.6.1.4.1.9.9.109.3.2', }; - -1; - -__END__ +$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'CISCO-PROCESS-MIB'} = { + 'cpmThreadState' => { + '1' => 'other', + '2' => 'dead', + '3' => 'running', + '4' => 'ready', + '5' => 'stopped', + '6' => 'send', + '7' => 'receive', + '8' => 'reply', + '9' => 'stack', + '10' => 'waitpage', + '11' => 'sigsuspend', + '12' => 'sigwaitinfo', + '13' => 'nanosleep', + '14' => 'mutex', + '15' => 'condvar', + '16' => 'join', + '17' => 'intr', + '18' => 'sem', + }, + 'cpmProcExtPriority' => { + '1' => 'critical', + '2' => 'high', + '3' => 'normal', + '4' => 'low', + '5' => 'notAssigned', + }, + 'cpmProcExtPriorityRev' => { + '1' => 'critical', + '2' => 'high', + '3' => 'normal', + '4' => 'low', + '5' => 'notAssigned', + }, + 'cpmProcessType' => { + '1' => 'other', + '2' => 'posix', + '3' => 'ios', + }, + 'cpmProcessMemoryCore' => { + '1' => 'other', + '2' => 'mainmem', + '3' => 'mainmemSharedmem', + '4' => 'mainmemText', + '5' => 'mainmemTextSharedmem', + '6' => 'sharedmem', + '7' => 'sparse', + '8' => 'off', + }, + 'cpmCPUThresholdClass' => { + '1' => 'total', + '2' => 'interrupt', + '3' => 'process', + }, +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm --- old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm 2021-03-02 21:19:13.819163700 +0100 @@ -0,0 +1,97 @@ +package Monitoring::GLPlugin::SNMP::MibsAndOids::CISCOSMARTLICMIB; + +$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'CISCO-SMART-LIC-MIB'} = { + url => '', + name => 'CISCO-SMART-LIC-MIB', +}; + +$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'CISCO-SMART-LIC-MIB'} = + '1.3.6.1.4.1.9.9.831'; + +$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-SMART-LIC-MIB'} = { + 'ciscoSmartLicMIB' => '1.3.6.1.4.1.9.9.831', + 'ciscoSlaMIBObjects' => '1.3.6.1.4.1.9.9.831.0', + 'ciscoSlaInstanceId' => '1.3.6.1.4.1.9.9.831.0.1', + 'ciscoSlaSUDIInfo' => '1.3.6.1.4.1.9.9.831.0.2', + 'ciscoSlaVersion' => '1.3.6.1.4.1.9.9.831.0.3', + 'ciscoSlaEnabled' => '1.3.6.1.4.1.9.9.831.0.4', + 'ciscoSlaEnabledDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue', + 'ciscoSlaEntitlementInfo' => '1.3.6.1.4.1.9.9.831.0.5', + 'ciscoSlaEntitlementInfoTable' => '1.3.6.1.4.1.9.9.831.0.5.1', + 'ciscoSlaEntitlementInfoEntry' => '1.3.6.1.4.1.9.9.831.0.5.1.1', + 'ciscoSlaEntitlementInfoIndex' => '1.3.6.1.4.1.9.9.831.0.5.1.1.1', + 'ciscoSlaEntitlementRequestCount' => '1.3.6.1.4.1.9.9.831.0.5.1.1.2', + 'ciscoSlaEntitlementTag' => '1.3.6.1.4.1.9.9.831.0.5.1.1.3', + 'ciscoSlaEntitlementVersion' => '1.3.6.1.4.1.9.9.831.0.5.1.1.4', + 'ciscoSlaEntitlementEnforceMode' => '1.3.6.1.4.1.9.9.831.0.5.1.1.5', + 'ciscoSlaEntitlementEnforceModeDefinition' => 'CISCO-SMART-LIC-MIB::ciscoSlaEntitlementEnforceMode', + 'ciscoSlaEntitlementDescription' => '1.3.6.1.4.1.9.9.831.0.5.1.1.6', + 'ciscoSlaEntitlementFeatureName' => '1.3.6.1.4.1.9.9.831.0.5.1.1.7', + 'ciscoSlaRegistrationStatusInfo' => '1.3.6.1.4.1.9.9.831.0.6', + 'ciscoSlaRegistrationStatusInfoTable' => '1.3.6.1.4.1.9.9.831.0.6', + 'ciscoSlaRegistrationStatusInfoEntry' => '1.3.6.1.4.1.9.9.831.0.6', + 'ciscoSlaRegistrationStatus' => '1.3.6.1.4.1.9.9.831.0.6.1', + 'ciscoSlaRegistrationStatusDefinition' => 'CISCO-SMART-LIC-MIB::ciscoSlaRegistrationStatus', + 'ciscoSlaVirtualAccount' => '1.3.6.1.4.1.9.9.831.0.6.2', + 'ciscoSlaNextCertificateExpireTime' => '1.3.6.1.4.1.9.9.831.0.6.3', + 'ciscoSlaEnterpriseAccountName' => '1.3.6.1.4.1.9.9.831.0.6.4', + 'ciscoSlaRegisterTime' => '1.3.6.1.4.1.9.9.831.0.6.5', + 'ciscoSlaRegisterInitTime' => '1.3.6.1.4.1.9.9.831.0.6.5.1', + 'ciscoSlaRegisterSuccess' => '1.3.6.1.4.1.9.9.831.0.6.5.2', + 'ciscoSlaRegisterSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue', + 'ciscoSlaRegisterFailureReason' => '1.3.6.1.4.1.9.9.831.0.6.5.3', + 'ciscoSlaRegisterNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.6.5.4', + 'ciscoSlaRenewTime' => '1.3.6.1.4.1.9.9.831.0.6.6', + 'ciscoSlaRenewInitTime' => '1.3.6.1.4.1.9.9.831.0.6.6.1', + 'ciscoSlaRenewSuccess' => '1.3.6.1.4.1.9.9.831.0.6.6.2', + 'ciscoSlaRenewSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue', + 'ciscoSlaRenewFailureReason' => '1.3.6.1.4.1.9.9.831.0.6.6.3', + 'ciscoSlaRenewNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.6.6.4', + 'ciscoSlaAuthorizationInfo' => '1.3.6.1.4.1.9.9.831.0.7', + 'ciscoSlaAuthorizationInfoTable' => '1.3.6.1.4.1.9.9.831.0.7', + 'ciscoSlaAuthorizationInfoEntry' => '1.3.6.1.4.1.9.9.831.0.7', + 'ciscoSlaAuthExpireTime' => '1.3.6.1.4.1.9.9.831.0.7.1', + 'ciscoSlaAuthComplianceStatus' => '1.3.6.1.4.1.9.9.831.0.7.2', + 'ciscoSlaAuthOOCStartTime' => '1.3.6.1.4.1.9.9.831.0.7.3', + 'ciscoSlaAuthEvalPeriod' => '1.3.6.1.4.1.9.9.831.0.7.4', + 'ciscoSlaAuthEvalPeriodInUse' => '1.3.6.1.4.1.9.9.831.0.7.4.1', + 'ciscoSlaAuthEvalPeriodInUseDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue', + 'ciscoSlaAuthEvalExpiredTime' => '1.3.6.1.4.1.9.9.831.0.7.4.2', + 'ciscoSlaAuthEvalPeriodLeft' => '1.3.6.1.4.1.9.9.831.0.7.4.3', + 'ciscoSlaAuthRenewTime' => '1.3.6.1.4.1.9.9.831.0.7.5', + 'ciscoSlaAuthRenewInitTime' => '1.3.6.1.4.1.9.9.831.0.7.5.1', + 'ciscoSlaAuthRenewSuccess' => '1.3.6.1.4.1.9.9.831.0.7.5.2', + 'ciscoSlaAuthRenewSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue', + 'ciscoSlaAuthRenewFailureReason' => '1.3.6.1.4.1.9.9.831.0.7.5.3', + 'ciscoSlaAuthRenewNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.7.5.4', + 'ciscoSlaNotifObjects' => '1.3.6.1.4.1.9.9.831.0.8', + 'ciscoSlaGlobalNotifEnable' => '1.3.6.1.4.1.9.9.831.0.8.1', + 'ciscoSlaEntitlementNotifEnable' => '1.3.6.1.4.1.9.9.831.0.8.2', + 'ciscoSlaMIBNotifs' => '1.3.6.1.4.1.9.9.831.1', + 'ciscoSlaMIBConform' => '1.3.6.1.4.1.9.9.831.2', + 'ciscoSlaMIBCompliances' => '1.3.6.1.4.1.9.9.831.2.1', + 'ciscoSlaMIBGroups' => '1.3.6.1.4.1.9.9.831.2.2', +}; + +$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'CISCO-SMART-LIC-MIB'} = { + 'ciscoSlaEntitlementEnforceMode' => { + '1' => 'initialized', + '2' => 'waiting', + '3' => 'authorized', + '4' => 'outOfCompliance', + '5' => 'overage', + '6' => 'evaluationPeriod', + '7' => 'evaluationExpired', + '8' => 'gracePeriod', + '9' => 'gracePeriodExpired', + '10' => 'disabled', + '11' => 'invalidTag', + }, + 'ciscoSlaRegistrationStatus' => { + '1' => 'notRegistered', + '2' => 'registrationInProgress', + '3' => 'registrationFailed', + '4' => 'registrationRetryinProgress', + '5' => 'registrationCompleted', + }, +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin.pm new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin.pm --- old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin.pm 2021-01-18 21:21:44.277149100 +0100 +++ new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin.pm 2021-03-02 21:19:14.770353000 +0100 @@ -20,7 +20,7 @@ $Data::Dumper::Sparseseen = 1; }; our $AUTOLOAD; -*VERSION = \'3.3.2'; +*VERSION = \'3.3.3.1'; use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/configure new/check_nwc_health-8.3.1.1/configure --- old/check_nwc_health-8.1/configure 2021-01-18 21:20:18.203549900 +0100 +++ new/check_nwc_health-8.3.1.1/configure 2021-03-02 21:19:03.583820000 +0100 @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for check_nwc_health 8.1. +# Generated by GNU Autoconf 2.69 for check_nwc_health 8.3.1.1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='check_nwc_health' PACKAGE_TARNAME='check_nwc_health' -PACKAGE_VERSION='8.1' -PACKAGE_STRING='check_nwc_health 8.1' +PACKAGE_VERSION='8.3.1.1' +PACKAGE_STRING='check_nwc_health 8.3.1.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1236,7 +1236,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures check_nwc_health 8.1 to adapt to many kinds of systems. +\`configure' configures check_nwc_health 8.3.1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1308,7 +1308,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of check_nwc_health 8.1:";; + short | recursive ) echo "Configuration of check_nwc_health 8.3.1.1:";; esac cat <<\_ACEOF @@ -1393,7 +1393,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -check_nwc_health configure 8.1 +check_nwc_health configure 8.3.1.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1410,7 +1410,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by check_nwc_health $as_me 8.1, which was +It was created by check_nwc_health $as_me 8.3.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2273,7 +2273,7 @@ # Define the identity of the package. PACKAGE='check_nwc_health' - VERSION='8.1' + VERSION='8.3.1.1' cat >>confdefs.h <<_ACEOF @@ -3324,7 +3324,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by check_nwc_health $as_me 8.1, which was +This file was extended by check_nwc_health $as_me 8.3.1.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3377,7 +3377,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -check_nwc_health config.status 8.1 +check_nwc_health config.status 8.3.1.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/configure.ac new/check_nwc_health-8.3.1.1/configure.ac --- old/check_nwc_health-8.1/configure.ac 2021-01-18 21:21:42.835666200 +0100 +++ new/check_nwc_health-8.3.1.1/configure.ac 2021-03-02 21:19:13.275197500 +0100 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION ($Revision: 1.150 $) AC_PREREQ(2.58) -AC_INIT(check_nwc_health,8.1) +AC_INIT(check_nwc_health,8.3.1.1) AM_INIT_AUTOMAKE([1.9 tar-pax]) AM_MAINTAINER_MODE([disable]) AC_CANONICAL_HOST diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm 2021-03-02 21:19:15.176281300 +0100 @@ -0,0 +1,132 @@ +package Classes::Bluecat::AddressManager::Component::HaSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub init { + my ($self) = @_; + if ($self->mode =~ /device::ha::status/) { + $self->get_snmp_tables('BAM-SNMP-MIB', [ + ["replications", "replicationStatusTable", 'Classes::Bluecat::AddressManager::Component::HaSubsystem::Replication'], + ]); + $self->get_snmp_objects('BAM-SNMP-MIB', (qw( + queueSize replication + replicationNodeStatus replicationAverageLatency + replicationWarningThreshold replicationBreakThreshold + replicationLatencyWarningThreshold replicationLatencyCriticalThreshold + ))); + } elsif ($self->mode =~ /device::ha::role/) { + if (! $self->opts->role()) { + $self->opts->override_opt('role', 'primary'); + } + $self->get_snmp_objects('BAM-SNMP-MIB', (qw(replicationNodeStatus))); + } +} + +sub check { + my ($self) = @_; + if ($self->mode =~ /device::ha::status/) { + foreach (@{$self->{replications}}) { + $_->{replicationLatencyCriticalThreshold} = $self->{replicationLatencyCriticalThreshold}; + $_->{replicationLatencyWarningThreshold} = $self->{replicationLatencyWarningThreshold}; + $_->check(); + } + } elsif ($self->mode =~ /device::ha::role/) { + $self->add_info(sprintf 'ha node status is %s', + $self->{replicationNodeStatus}, + ); + if ($self->{replicationNodeStatus} eq 'unknown') { + $self->add_message( + defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, + 'ha was not started'); + } else { + if ($self->{replicationNodeStatus} ne $self->opts->role()) { + $self->add_message( + defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, + $self->{info}); + $self->add_message( + defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, + sprintf "expected role %s", $self->opts->role()) + } else { + $self->add_ok(); + } + } + } +} + +package Classes::Bluecat::AddressManager::Component::HaSubsystem::Replication; +our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); +use strict; + +sub check { + my ($self) = @_; + $self->add_info(sprintf '%s node %s has status %s, latency is %.2f', + lc $self->{replicationRole}, $self->{hostname}, + lc $self->{replicationHealth}, $self->{currentLatency}); + $self->set_thresholds(metric => 'latency_'.lc $self->{replicationRole}, + warning => $self->{replicationLatencyWarningThreshold}, + critical => $self->{replicationLatencyCriticalThreshold}, + ); + $self->add_message($self->check_thresholds( + metric => 'latency_'.lc $self->{replicationRole}, + value => $self->{currentLatency})); + $self->add_perfdata( + label => 'latency_'.lc $self->{replicationRole}, + value => $self->{currentLatency} + ); +} + +__END__ +sdeb-bam-p03.sys.schwarz +root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.8.2 +BAM-SNMP-MIB::replicationNodeStatus.0 = INTEGER: primary(1) +-> hier soll nur das Ergebnis angezeigt werden + +root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.1.1 +BAM-SNMP-MIB::version.0 = STRING: 9.0.0 +-> hier soll nur das Ergebnis angezeigt werden + +#root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.1.2 +#BAM-SNMP-MIB::startTime.0 = STRING: 2020-5-16,2:4:43.216 +# uptime -> hier soll nur das Ergebnis angezeigt werden + +root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 +BAM-SNMP-MIB::replicationHealth.10.201.135.240 = INTEGER: Replicating(2) +-> bei Ausgabe 0 und 1 soll Nagios alarm schlagen, 2 bedeutet alles iO + +root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.10.1.0 +BAM-SNMP-MIB::lastSuccessfulBackupTime.0 = STRING: 2020-11-11,3:10:35.0 +-> hier soll nur das Ergebnis angezeigt werden + + +KCZ_DDI +root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 .1.3.6.1.4.1.13315.3.1.1.2.1.1 +BCN-DHCPV4-MIB::bcnDhcpv4SerOperState.0 = INTEGER: running(1) +1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen + +root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 .1.3.6.1.4.1.13315.3.1.2.2.1.1 +BCN-DNS-MIB::bcnDnsSerOperState.0 = INTEGER: running(1) +1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen + +Hallo Gerhard, +f??r Bluecat devices brauchen wir einen ha-status in check_nwc_health. +Die MIBs h??ngen schon am Ticket dran. + +Wichtige informationen w??ren: +- BAM-SNMP-MIB::replicationNodeStatus.0 +- BAM-SNMP-MIB::startTime.0 +- BAM-SNMP-MIB::replicationHealth.10.201.135.240 +- BAM-SNMP-MIB::lastSuccessfulBackupTime.0 + +/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.10.1.0 backup + +/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 -C "***" -w 2:2 -c 2:2 replication 240 replicationHealth + +/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.2.0 -C "***" -w 1:1 -c 1:1 replicatiuon node replicationNodeStatus +/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.2.0 -C "***" -s OK + start time + +/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.1.0 -C "***" -s OK +version + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm 2021-03-02 21:19:15.185280400 +0100 @@ -0,0 +1,30 @@ +package Classes::Bluecat::AddressManager::Component::MemSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub init { + my ($self) = @_; + $self->get_snmp_objects('BAM-SNMP-MIB', (qw( + freeMemory maxMemory usageThresholdExceeded + ))); + $self->{jvm_usage} = 100 - 100 * $self->{freeMemory} / $self->{maxMemory}; +} + +sub check { + my ($self) = @_; + $self->add_info(sprintf 'jvm mem usage is %.2f%%', + $self->{jvm_usage}); + $self->set_thresholds(metric => "jvm_memory_usage", + warning => 80, critical => 90); + $self->add_message($self->check_thresholds( + metric => "jvm_memory_usage", + value => $self->{jvm_usage})); + $self->add_perfdata( + label => 'jvm_memory_usage', + value => $self->{jvm_usage}, + uom => '%', + ); +} + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm 2021-03-02 21:19:15.193279300 +0100 @@ -0,0 +1,24 @@ +package Classes::Bluecat::AddressManager::Component::MgmtSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub init { + my ($self) = @_; + $self->get_snmp_objects('BAM-SNMP-MIB', (qw(lastSuccessfulBackupTime))); + $self->{lastSuccessfulBackupAge} = int((time - $self->{lastSuccessfulBackupTime}) / 3600); +} + +sub check { + my ($self) = @_; + $self->add_info(sprintf "last successful backup was %d hours ago (%s)", + $self->{lastSuccessfulBackupAge}, + scalar localtime $self->{lastSuccessfulBackupTime} + ); + $self->set_thresholds(metric => "backup_age", + warning => 24*7, + critical => 24*7*4, + ); + $self->add_message($self->check_thresholds(metric => "backup_age", + value => $self->{lastSuccessfulBackupAge})); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager.pm 2021-03-02 21:19:15.203279100 +0100 @@ -0,0 +1,30 @@ +package Classes::Bluecat::AddressManager; +our @ISA = qw(Classes::Device); +use strict; + +sub init { + my ($self) = @_; + if ($self->mode =~ /device::hardware::health/) { + $self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem"); + } elsif ($self->mode =~ /device::hardware::load/) { + $self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem"); + } elsif ($self->mode =~ /device::hardware::memory/) { + $self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem"); + $self->analyze_and_check_jvm_subsystem("Classes::Bluecat::AddressManager::Component::MemSubsystem"); + } elsif ($self->mode =~ /device::ha::/) { + $self->analyze_and_check_ha_subsystem("Classes::Bluecat::AddressManager::Component::HaSubsystem"); + } elsif ($self->mode =~ /device::mngmt::/) { + $self->analyze_and_check_mgmt_subsystem("Classes::Bluecat::AddressManager::Component::MgmtSubsystem"); + } else { + $self->no_such_mode(); + } +} + +sub pretty_sysdesc { + my ($self, $sysDescr) = @_; + my $sw_version = $self->get_snmp_object('BAM-SNMP-MIB', 'version'); + my $start_time = $self->get_snmp_object('BAM-SNMP-MIB', 'startTime'); + return sprintf "%s, sw version %s, start time %s", + $sysDescr, $sw_version, scalar localtime $start_time; +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm 2021-01-18 21:21:44.658141200 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,132 +0,0 @@ -package Classes::Bluecat::Component::HaSubsystem; -our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); -use strict; -use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; - -sub init { - my ($self) = @_; - if ($self->mode =~ /device::ha::status/) { - $self->get_snmp_tables('BAM-SNMP-MIB', [ - ["replications", "replicationStatusTable", 'Classes::Bluecat::Component::HaSubsystem::Replication'], - ]); - $self->get_snmp_objects('BAM-SNMP-MIB', (qw( - queueSize replication - replicationNodeStatus replicationAverageLatency - replicationWarningThreshold replicationBreakThreshold - replicationLatencyWarningThreshold replicationLatencyCriticalThreshold - ))); - } elsif ($self->mode =~ /device::ha::role/) { - if (! $self->opts->role()) { - $self->opts->override_opt('role', 'primary'); - } - $self->get_snmp_objects('BAM-SNMP-MIB', (qw(replicationNodeStatus))); - } -} - -sub check { - my ($self) = @_; - if ($self->mode =~ /device::ha::status/) { - foreach (@{$self->{replications}}) { - $_->{replicationLatencyCriticalThreshold} = $self->{replicationLatencyCriticalThreshold}; - $_->{replicationLatencyWarningThreshold} = $self->{replicationLatencyWarningThreshold}; - $_->check(); - } - } elsif ($self->mode =~ /device::ha::role/) { - $self->add_info(sprintf 'ha node status is %s', - $self->{replicationNodeStatus}, - ); - if ($self->{replicationNodeStatus} eq 'unknown') { - $self->add_message( - defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, - 'ha was not started'); - } else { - if ($self->{replicationNodeStatus} ne $self->opts->role()) { - $self->add_message( - defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, - $self->{info}); - $self->add_message( - defined $self->opts->mitigation() ? $self->opts->mitigation() : WARNING, - sprintf "expected role %s", $self->opts->role()) - } else { - $self->add_ok(); - } - } - } -} - -package Classes::Bluecat::Component::HaSubsystem::Replication; -our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); -use strict; - -sub check { - my ($self) = @_; - $self->add_info(sprintf '%s node %s has status %s, latency is %.2f', - lc $self->{replicationRole}, $self->{hostname}, - lc $self->{replicationHealth}, $self->{currentLatency}); - $self->set_thresholds(metric => 'latency_'.lc $self->{replicationRole}, - warning => $self->{replicationLatencyWarningThreshold}, - critical => $self->{replicationLatencyCriticalThreshold}, - ); - $self->add_message($self->check_thresholds( - metric => 'latency_'.lc $self->{replicationRole}, - value => $self->{currentLatency})); - $self->add_perfdata( - label => 'latency_'.lc $self->{replicationRole}, - value => $self->{currentLatency} - ); -} - -__END__ -sdeb-bam-p03.sys.schwarz -root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.8.2 -BAM-SNMP-MIB::replicationNodeStatus.0 = INTEGER: primary(1) --> hier soll nur das Ergebnis angezeigt werden - -root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.1.1 -BAM-SNMP-MIB::version.0 = STRING: 9.0.0 --> hier soll nur das Ergebnis angezeigt werden - -#root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.1.2 -#BAM-SNMP-MIB::startTime.0 = STRING: 2020-5-16,2:4:43.216 -# uptime -> hier soll nur das Ergebnis angezeigt werden - -root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 -BAM-SNMP-MIB::replicationHealth.10.201.135.240 = INTEGER: Replicating(2) --> bei Ausgabe 0 und 1 soll Nagios alarm schlagen, 2 bedeutet alles iO - -root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 .1.3.6.1.4.1.13315.100.210.1.10.1.0 -BAM-SNMP-MIB::lastSuccessfulBackupTime.0 = STRING: 2020-11-11,3:10:35.0 --> hier soll nur das Ergebnis angezeigt werden - - -KCZ_DDI -root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 .1.3.6.1.4.1.13315.3.1.1.2.1.1 -BCN-DHCPV4-MIB::bcnDhcpv4SerOperState.0 = INTEGER: running(1) -1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen - -root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 .1.3.6.1.4.1.13315.3.1.2.2.1.1 -BCN-DNS-MIB::bcnDnsSerOperState.0 = INTEGER: running(1) -1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen - -Hallo Gerhard, -f??r Bluecat devices brauchen wir einen ha-status in check_nwc_health. -Die MIBs h??ngen schon am Ticket dran. - -Wichtige informationen w??ren: -- BAM-SNMP-MIB::replicationNodeStatus.0 -- BAM-SNMP-MIB::startTime.0 -- BAM-SNMP-MIB::replicationHealth.10.201.135.240 -- BAM-SNMP-MIB::lastSuccessfulBackupTime.0 - -/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.10.1.0 backup - -/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 -C "***" -w 2:2 -c 2:2 replication 240 replicationHealth - -/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.2.0 -C "***" -w 1:1 -c 1:1 replicatiuon node replicationNodeStatus -/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.2.0 -C "***" -s OK - start time - -/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.1.0 -C "***" -s OK -version - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm 2021-01-18 21:21:44.666140700 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,27 +0,0 @@ -package Classes::Bluecat::Component::MemSubsystem; -our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); -use strict; -use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; - -sub init { - my ($self) = @_; - $self->get_snmp_objects('BAM-SNMP-MIB', (qw( - freeMemory maxMemory usageThresholdExceeded - ))); - $self->{jvm_usage} = 100 - 100 * $self->{freeMemory} / $self->{maxMemory}; -} - -sub check { - my ($self) = @_; - $self->add_info(sprintf 'jvm mem usage is %.2f%%', - $self->{jvm_usage}); - $self->set_thresholds(warning => 80, critical => 90); - $self->add_message($self->check_thresholds($self->{jvm_usage})); - $self->add_perfdata( - label => 'jvm_memory_usage', - value => $self->{jvm_usage}, - uom => '%', - ); -} - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm 2021-01-18 21:21:44.675152500 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,24 +0,0 @@ -package Classes::Bluecat::Component::MgmtSubsystem; -our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); -use strict; -use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; - -sub init { - my ($self) = @_; - $self->get_snmp_objects('BAM-SNMP-MIB', (qw(lastSuccessfulBackupTime))); - $self->{lastSuccessfulBackupAge} = int((time - $self->{lastSuccessfulBackupTime}) / 3600); -} - -sub check { - my ($self) = @_; - $self->add_info(sprintf "last successful backup was %d hours ago (%s)", - $self->{lastSuccessfulBackupAge}, - scalar localtime $self->{lastSuccessfulBackupTime} - ); - $self->set_thresholds(metric => "backup_age", - warning => 24*7, - critical => 24*7*4, - ); - $self->add_message($self->check_thresholds(metric => "backup_age", - value => $self->{lastSuccessfulBackupAge})); -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm 2021-01-18 21:21:44.684140300 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -package Classes::Bluecat::Component::ProcessSubsystem; -our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); -use strict; -use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; - -sub init { - my ($self) = @_; - $self->get_snmp_objects('BCN-DNS-MIB', (qw(bcnDnsSerOperState))); - $self->get_snmp_objects('BCN-DHCPV4-MIB', (qw(bcnDhcpv4SerOperState))); -} - -sub check { - my ($self) = @_; - if ($self->{bcnDnsSerOperState}) { - $self->add_info(sprintf "dns service is %s", $self->{bcnDnsSerOperState}); - $self->add_ok() if $self->{bcnDnsSerOperState} eq "running"; - $self->add_critical() if $self->{bcnDnsSerOperState} eq "notRunning"; - $self->add_warning() if $self->{bcnDnsSerOperState} eq "starting"; - $self->add_warning() if $self->{bcnDnsSerOperState} eq "stopping"; - $self->add_critical() if $self->{bcnDnsSerOperState} eq "fault"; - } - if ($self->{bcnDhcpv4SerOperState}) { - $self->add_info(sprintf "dhcp service is %s", $self->{bcnDhcpv4SerOperState}); - $self->add_ok() if $self->{bcnDhcpv4SerOperState} eq "running"; - $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "notRunning"; - $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "starting"; - $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "stopping"; - $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "fault"; - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm 2021-03-02 21:19:15.212280000 +0100 @@ -0,0 +1,41 @@ +package Classes::Bluecat::DnsDhcpServer::Component::HaSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub init { + my ($self) = @_; + $self->get_snmp_objects('ADONIS-DNS-MIB', qw(haServiceRunning)); + if ($self->mode =~ /device::ha::status/) { + } elsif ($self->mode =~ /device::ha::role/) { + $self->get_snmp_objects('ADONIS-DNS-MIB', qw(haServiceNodeType)); + if (! $self->opts->role()) { + $self->opts->override_opt('role', 'active'); + } + } +} + +sub check { + my ($self) = @_; + if ($self->mode =~ /device::ha::status/) { + if ($self->{haServiceRunning} == 0) { + $self->add_critical_mitigation("HA service is not running"); + } else { + $self->add_ok("HA service is running"); + } + } elsif ($self->mode =~ /device::ha::role/) { + $self->{haServiceNodeType} = $self->{haServiceNodeType} == 1 ? + "active" : "passive"; + if ($self->{haServiceRunning} == 1) { + $self->add_info(sprintf 'ha node type is %s', $self->{haServiceNodeType}); + if ($self->opts->role() ne $self->{haServiceNodeType}) { + $self->add_critical_mitigation(); + } else { + $self->add_ok(); + } + } else { + $self->add_critical_mitigation("HA service is not running"); + } + } +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm 2021-03-02 21:19:15.220279800 +0100 @@ -0,0 +1,47 @@ +package Classes::Bluecat::DnsDhcpServer::Component::ProcessSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub init { + my ($self) = @_; + $self->get_snmp_objects('BCN-DNS-MIB', (qw(bcnDnsSerOperState))); + $self->get_snmp_objects('BCN-DHCPV4-MIB', (qw(bcnDhcpv4SerOperState))); +} + +sub check { + my ($self) = @_; + if ($self->{bcnDnsSerOperState}) { + $self->add_info(sprintf "dns service is %s", $self->{bcnDnsSerOperState}); + $self->add_ok() if $self->{bcnDnsSerOperState} eq "running"; + $self->add_critical() if $self->{bcnDnsSerOperState} eq "notRunning"; + $self->add_warning() if $self->{bcnDnsSerOperState} eq "starting"; + $self->add_warning() if $self->{bcnDnsSerOperState} eq "stopping"; + $self->add_critical() if $self->{bcnDnsSerOperState} eq "fault"; + } else { + $self->get_snmp_objects('ADONIS-DNS-MIB', (qw(dnsDaemonRunning))); + if (exists $self->{dnsDaemonRunning}) { + $self->add_info(sprintf "dns service is %s", + $self->{dnsDaemonRunning} ? "running" : "not running"); + $self->add_ok() if $self->{dnsDaemonRunning} == 0; + $self->add_critical() if $self->{dnsDaemonRunning} == 1; + } + } + if ($self->{bcnDhcpv4SerOperState}) { + $self->add_info(sprintf "dhcp service is %s", $self->{bcnDhcpv4SerOperState}); + $self->add_ok() if $self->{bcnDhcpv4SerOperState} eq "running"; + $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "notRunning"; + $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "starting"; + $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "stopping"; + $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "fault"; + } else { + $self->get_snmp_objects('ADONIS-DNS-MIB', (qw(dhcpDaemonRunning))); + if (exists $self->{dhcpDaemonRunning}) { + $self->add_info(sprintf "dhcp service is %s", + $self->{dhcpDaemonRunning} ? "running" : "not running"); + $self->add_ok() if $self->{dhcpDaemonRunning} == 0; + $self->add_critical() if $self->{dhcpDaemonRunning} == 1; + } + } +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm 2021-03-02 21:19:15.229280600 +0100 @@ -0,0 +1,27 @@ +package Classes::Bluecat::DnsDhcpServer; +our @ISA = qw(Classes::Device); +use strict; + +sub init { + my ($self) = @_; + if ($self->mode =~ /device::hardware::health/) { + $self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem"); + } elsif ($self->mode =~ /device::hardware::load/) { + $self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem"); + } elsif ($self->mode =~ /device::hardware::memory/) { + $self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem"); + } elsif ($self->mode =~ /device::ha::/) { + $self->analyze_and_check_ha_subsystem("Classes::Bluecat::DnsDhcpServer::Component::HaSubsystem"); + } elsif ($self->mode =~ /device::process::/) { + $self->analyze_and_check_process_subsystem("Classes::Bluecat::DnsDhcpServer::Component::ProcessSubsystem"); + } else { + $self->no_such_mode(); + } +} + +sub pretty_sysdesc { + my ($self, $sysDescr) = @_; + my $sw_version = $self->get_snmp_object('BCN-SYSTEM-MIB', 'bcnSysIdOSRelease'); + return sprintf "%s, sw version %s", $sysDescr, $sw_version; +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat.pm 2021-01-18 21:21:44.693139300 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat.pm 2021-03-02 21:19:15.239279200 +0100 @@ -4,29 +4,15 @@ sub init { my ($self) = @_; - if ($self->mode =~ /device::hardware::health/) { - $self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem"); - } elsif ($self->mode =~ /device::hardware::load/) { - $self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem"); - } elsif ($self->mode =~ /device::hardware::memory/) { - $self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem"); - $self->analyze_and_check_jvm_subsystem("Classes::Bluecat::Component::MemSubsystem"); - } elsif ($self->mode =~ /device::ha::/) { - $self->analyze_and_check_ha_subsystem("Classes::Bluecat::Component::HaSubsystem"); - } elsif ($self->mode =~ /device::process::/) { - $self->analyze_and_check_process_subsystem("Classes::Bluecat::Component::ProcessSubsystem"); - } elsif ($self->mode =~ /device::mngmt::/) { - $self->analyze_and_check_mgmt_subsystem("Classes::Bluecat::Component::MgmtSubsystem"); + if ($self->{productname} =~ /Bluecat Address Manager/) { + $self->rebless('Classes::Bluecat::AddressManager'); + } elsif ($self->{productname} =~ /Bluecat DNS\/DHCP Server/) { + $self->rebless('Classes::Bluecat::DnsDhcpServer'); + } + if (ref($self) ne "Classes::Bluecat") { + $self->init(); } else { $self->no_such_mode(); } } -sub pretty_sysdesc { - my ($self, $sysDescr) = @_; - my $sw_version = $self->get_snmp_object('BAM-SNMP-MIB', 'version'); - my $start_time = $self->get_snmp_object('BAM-SNMP-MIB', 'startTime'); - return sprintf "%s, sw version %s, start time %s", - $sysDescr, $sw_version, scalar localtime $start_time; -} - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm 2021-01-18 21:21:44.930134800 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm 2021-03-02 21:19:15.503267300 +0100 @@ -11,19 +11,22 @@ sub check { my ($self) = @_; $self->add_info('checking memory'); - $self->add_info(sprintf 'memory usage is %.2f%% (%s)', - $self->{perCentMemoryUtilization}, $self->{memoryAvailabilityStatus}); + $self->add_info(sprintf 'memory usage is %.2f%%', + $self->{perCentMemoryUtilization}); $self->set_thresholds(warning => 80, critical => 90); - if ($self->check_thresholds($self->{perCentMemoryUtilization})) { - $self->add_message($self->check_thresholds($self->{perCentMemoryUtilization})); - } elsif ($self->{memoryAvailabilityStatus} eq 'memoryShortage') { - $self->add_warning(); - $self->set_thresholds(warning => $self->{perCentMemoryUtilization}, critical => 90); - } elsif ($self->{memoryAvailabilityStatus} eq 'memoryFull') { - $self->add_critical(); - $self->set_thresholds(warning => 80, critical => $self->{perCentMemoryUtilization}); - } else { - $self->add_ok(); + $self->add_message($self->check_thresholds($self->{perCentMemoryUtilization})); + if ($self->{memoryAvailabilityStatus}) { + $self->add_info(sprintf "memoryAvailabilityStatus is %s", + $self->{memoryAvailabilityStatus}); + if ($self->{memoryAvailabilityStatus} eq 'memoryShortage') { + $self->add_warning(); + $self->set_thresholds(warning => $self->{perCentMemoryUtilization}, critical => 90); + } elsif ($self->{memoryAvailabilityStatus} eq 'memoryFull') { + $self->add_critical(); + $self->set_thresholds(warning => 80, critical => $self->{perCentMemoryUtilization}); + } else { + $self->add_ok(); + } } $self->add_perfdata( label => 'memory_usage', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm 2021-03-02 21:19:15.731263500 +0100 @@ -0,0 +1,139 @@ +package Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; + +sub init { + my ($self) = @_; + $self->get_snmp_tables('CISCO-PROCESS-MIB', [ + ['cpumems', 'cpmCPUTotalTable', 'Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem::Mem', sub { my $o = shift; return exists $o->{cpmCPUMemoryUsed} ? 1 : 0 } ], + ]); +} + +package Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem::Mem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); +use strict; + +sub finish { + my ($self) = @_; + if (! exists $self->{cpmCPUMemoryUsed}) { + # dann fluigt der ganze scheisdreck weida ohm beim get_snmp_tables + # ausse. mit wos fir am oltn glump das i mi heid wieder oweerchan mou! + return; + } + $self->{cpmCPUTotalIndex} = $self->{flat_indices}; +# $self->{cpmCPUTotalPhysicalIndex} = exists $self->{cpmCPUTotalPhysicalIndex} ? +# $self->{cpmCPUTotalPhysicalIndex} : 0; + $self->{entPhysicalName} = $self->get_snmp_object('ENTITY-MIB', 'entPhysicalName', $self->{cpmCPUTotalPhysicalIndex}); + # wichtig fuer gestacktes zeugs, bei dem entPhysicalName doppelt und mehr vorkommen kann + # This object is a user-assigned asset tracking identifier for the physical entity + # as specified by a network manager, and provides non-volatile storage of this + # information. On the first instantiation of an physical entity, the value of + # entPhysicalAssetID associated with that entity is set to the zero-length string. + # ... + # If write access is implemented for an instance of entPhysicalAssetID, and a value + # is written into the instance, the agent must retain the supplied value in the + # entPhysicalAssetID instance associated with the same physical entity for as long + # as that entity remains instantiated. This includes instantiations across all + # re-initializations/reboots of the network management system, including those + # which result in a change of the physical entity's entPhysicalIndex value. + $self->{entPhysicalAssetID} = $self->get_snmp_object('ENTITY-MIB', 'entPhysicalAssetID', $self->{cpmCPUTotalPhysicalIndex}); + $self->{entPhysicalDescr} = $self->get_snmp_object('ENTITY-MIB', 'entPhysicalDescr', $self->{cpmCPUTotalPhysicalIndex}); + $self->{name} = $self->{entPhysicalName} || $self->{entPhysicalDescr}; + # letzter Ausweg, weil auch alle drei get_snmp_object fehlschlagen koennen + $self->{name} ||= $self->{cpmCPUTotalIndex}; + if ($self->{cpmCPUMemoryHCUsed} and $self->{cpmCPUMemoryHCFree}) { + $self->{cpmCPUMemoryHCTotal} = $self->{cpmCPUMemoryHCUsed} + $self->{cpmCPUMemoryHCFree}; + $self->{usageu} = 100 * $self->{cpmCPUMemoryHCUsed} / + $self->{cpmCPUMemoryHCTotal}; + $self->{usagec} = 100 * $self->{cpmCPUMemoryHCCommitted} / + $self->{cpmCPUMemoryHCTotal}; + } else { + $self->{cpmCPUMemoryLCUsed} = $self->{cpmCPUMemoryUsedOvrflw} ? + ($self->{cpmCPUMemoryUsedOvrflw} << 32) + ($self->{cpmCPUMemoryUsed}) : + $self->{cpmCPUMemoryUsed}; + $self->{cpmCPUMemoryLCFree} = $self->{cpmCPUMemoryFreeOvrflw} ? + ($self->{cpmCPUMemoryFreeOvrflw} << 32) + ($self->{cpmCPUMemoryFree}) : + $self->{cpmCPUMemoryFree}; + $self->{cpmCPUMemoryLCTotal} = $self->{cpmCPUMemoryLCUsed} + $self->{cpmCPUMemoryLCFree}; + if (exists $self->{cpmCPUMemoryCommitted}) { + $self->{cpmCPUMemoryLCCommitted} = $self->{cpmCPUMemoryCommittedOvrflw} ? + ($self->{cpmCPUMemoryCommittedOvrflw} << 32) + ($self->{cpmCPUMemoryCommitted}) : + $self->{cpmCPUMemoryCommitted}; + $self->{usagec} = 100 * $self->{cpmCPUMemoryLCCommited} / + $self->{cpmCPUMemoryLCTotal}; + } + $self->{usageu} = 100 * $self->{cpmCPUMemoryLCUsed} / + $self->{cpmCPUMemoryLCTotal}; + } + # immer den kleineren wert. ist nicht ganz korrekt, aber so muss ich mich + # am wenigsten rumaergern. + if (exists $self->{usagec} and $self->{usagec} < $self->{usageu}) { + $self->{usage} = $self->{usagec}; + } else { + $self->{usage} = $self->{usageu}; + } + return $self; +} + +sub check { + my ($self) = @_; + $self->add_info(sprintf '%s memory usage is %.2f%%', + $self->{name}, $self->{usage}); + my $label = 'cpumem_'.$self->{name}.'_usage'; + $self->set_thresholds( + metric => $label, + warning => 80, + critical => 90, + ); + $self->add_message($self->check_thresholds( + metric => $label, + value => $self->{usage}, + )); + $self->add_perfdata( + label => $label, + value => $self->{usage}, + uom => '%', + ); +} + +__END__ +https://thwack.solarwinds.com/t5/NPM-Feature-Requests/Additional-Cisco-quot-CPU-Memory-quot-Poller-for-Cisco-ASR/idc-p/560968 + +Memory (kB) +Slot Status Total Used (Pct) Free (Pct) Committed (Pct) + RP0 Healthy 3969316 3849744 (97%) 119572 ( 3%) 2582596 (65%) + +In this output, the "Committed" output is what we recommend focusing on, as this represents what memory processes have actually requested from the kernel. The "Used" value, on the other hand, appears high because this includes the Linux kernel cache: this "extra" memory is used by the kernel to store bits of frequently used data, but that memory can be freed at any time if needed. From the perspective of committed memory, this router is not low on memory and appears to be operating normally. + +We frequently see cases inquiring about the misleadingly high value in the "Used" column. As a result, this is being adjusted in later code to provide a better representation of what memory is actually available for use. Additionally, two bugs have been filled to document the behavior, these are CSCuc40262 and CSCuv32343: + + +https://www.cisco.com/c/de_de/support/docs/ip/simple-network-management-protocol-snmp/118901-technote-snmp-00.html + +ASR1K#show platform software status control-processor brief | s Memory +Memory (kB) + Slot Status Total Used(Pct) Free (Pct) Committed (Pct) + RP0 Healthy 3874504 2188404 (56%) 1686100 (44%) 2155996 (56%) + ESP0 Healthy 969088 590880 (61%) 378208 (39%) 363840 (38%) + SIP0 Healthy 471832 295292 (63%) 176540 (37%) 288540 (61%) +(cpmCPUMemoryHCUsed) +1.3.6.1.4.1.9.9.109.1.1.1.1.17.2 = Counter64: 590880 -ESP Used memory +1.3.6.1.4.1.9.9.109.1.1.1.1.17.3 = Counter64: 2188404 -RP used memory +1.3.6.1.4.1.9.9.109.1.1.1.1.17.4 = Counter64: 295292 -SIP used memory +(cpmCPUMemoryHCFree) +1.3.6.1.4.1.9.9.109.1.1.1.1.19.2 = Counter64: 378208 -ESP free Memory +1.3.6.1.4.1.9.9.109.1.1.1.1.19.3 = Counter64: 1686100 -RP free Memory +1.3.6.1.4.1.9.9.109.1.1.1.1.19.4 = Counter64: 176540 -SIP free memory +cpmCPUMemoryHCCommitted) +1.3.6.1.4.1.9.9.109.1.1.1.1.29.2 = Counter64: 363840 -ESP Committed Memory +1.3.6.1.4.1.9.9.109.1.1.1.1.29.3 = Counter64: 2155996 -RP Committed Memory +1.3.6.1.4.1.9.9.109.1.1.1.1.29.4 = Counter64: 288540 -SIP committed memory + +stimmt alles wunderbar zusammen, total = used+free +Und in der Realitaet kommt dann so eine Scheisse raus wie +cpmCPUMemoryHCCommitted: 4469120 +cpmCPUMemoryHCFree: 171404 +cpmCPUMemoryHCKernelReserved: 0 +cpmCPUMemoryHCUsed: 3786752 +Bravo, bravoooo! Und bei auf cpmCPUMemoryHCCommitted basierender Usage gibts dann > 100% +Und zwar ausfgerechnet bei dem, der den ganzen Stackswitchmemorydreck haben wollte. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm 2021-03-02 21:19:15.751259600 +0100 @@ -0,0 +1,109 @@ +package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem; +our @ISA = qw(Monitoring::GLPlugin::SNMP::Item); +use strict; + +sub init { + my ($self) = @_; + $self->get_snmp_objects("CISCO-SMART-LIC-MIB", qw(ciscoSlaEnabled)); + $self->get_snmp_tables('CISCO-SMART-LIC-MIB', [ + ['keys', 'ciscoSlaEntitlementInfoTable', 'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::Entitlement'], + ['keys', 'ciscoSlaRegistrationStatusInfoTable', 'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::RegStatusInfo', sub { shift->{valid} }], + ['keys', 'ciscoSlaAuthorizationInfoTable', 'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::AuthInfo', sub { shift->{valid} }], + ]); +} + +sub check { + my ($self) = @_; + if ($self->{ciscoSlaEnabled} eq "false") { + $self->add_ok("smart licensing is not enabled"); + } else { + $self->SUPER::check(); + } +} + + +package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::Entitlement; +our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); +use strict; + +sub check { + my ($self) = @_; + #$self->{keyDaysUntilExpire} = int($self->{keySecondsUntilExpire} / 86400); + $self->add_info(sprintf "entitlement %s for feature %s mode is %s", + $self->{ciscoSlaEntitlementTag}, + $self->{ciscoSlaEntitlementFeatureName}, + $self->{ciscoSlaEntitlementEnforceMode} + ); + $self->add_ok(); +} + + +package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::RegStatusInfo; +our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); +use strict; + +sub finish { + my ($self) = @_; + $self->{valid} = exists $self->{ciscoSlaRegistrationStatus} ? 1 : 0; + return if ! $self->{valid}; + foreach (qw(ciscoSlaNextCertificateExpireTime ciscoSlaRegisterInitTime ciscoSlaRenewNextRetryTime)) { + $self->{$_."Human"} = scalar localtime $self->{$_} + if exists $self->{$_} and $self->{$_} =~ /^\d+$/; + } +} + +sub check { + my ($self) = @_; +} + + +package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::AuthInfo; +our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem); +use strict; + +sub finish { + my ($self) = @_; + $self->{valid} = exists $self->{ciscoSlaAuthComplianceStatus} ? 1 : 0; + return if ! $self->{valid}; + foreach (qw(ciscoSlaAuthRenewTime ciscoSlaAuthExpireTime ciscoSlaAuthRenewNextRetryTime ciscoSlaAuthRenewInitTime)) { + $self->{$_."Human"} = scalar localtime $self->{$_} + if exists $self->{$_} and $self->{$_} =~ /^\d+$/; + } + $self->{ciscoSlaAuthExpireTimeDays} = + int(($self->{ciscoSlaAuthExpireTime} - time) / (3600*24)); + $self->{ciscoSlaAuthExpireTimeDays} = + $self->{ciscoSlaAuthExpireTimeDays} < 0 ? + 0 : $self->{ciscoSlaAuthExpireTimeDays}; + if ($self->{ciscoSlaAuthOOCStartTime} > 0) { + $self->{ciscoSlaAuthOOCStartTimeDays} = + int((time - $self->{ciscoSlaAuthExpireTime}) / (3600*24)); + } else { + $self->{ciscoSlaAuthOOCStartTimeDays} = 0; + } +} + +sub check { + my ($self) = @_; + $self->add_info(sprintf "compliance status is %s", + $self->{ciscoSlaAuthComplianceStatus}); + if ($self->{ciscoSlaAuthComplianceStatus} eq "AUTHORIZED") { + $self->add_ok(); + } else { + $self->add_critical(); + } + if ($self->{ciscoSlaAuthOOCStartTime}) { + $self->add_critical( + sprintf "smart agent entered out of compliance %d days ago", + $self->{ciscoSlaAuthOOCStartTimeDays}); + } + my $label = "sla_remaining_days"; + $self->set_thresholds(metric => $label, + warning => "7:", critical => "2:"); + $self->add_info(sprintf "authorization will expire in %d days", + $self->{ciscoSlaAuthExpireTimeDays}); + $self->add_message($self->check_thresholds(metric => $label, + value => $self->{ciscoSlaAuthExpireTimeDays})); + $self->add_perfdata(label => $label, + value => $self->{ciscoSlaAuthExpireTimeDays}); +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm 2021-01-18 21:21:45.185133900 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm 2021-03-02 21:19:15.771258700 +0100 @@ -10,16 +10,17 @@ cswRingRedundant cswStackBandWidth ciscoStackWiseMIBConform cswStackWiseMIBCompliances )); + $self->get_snmp_tables("CISCO-STACKWISE-MIB", [ + ['switches', 'cswSwitchInfoTable', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'], + ]); # cswStackType is not uniqe enough depening of IOS-XE version. # cswStackBandWidth exists only on distributed switches with SVL if ($self->{cswStackBandWidth}) { $self->get_snmp_tables("CISCO-STACKWISE-MIB", [ - ['switches', 'cswSwitchInfoTable', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'], ['ports', 'cswDistrStackPhyPortInfoEntry', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::PhyPort'], ]); } else { $self->get_snmp_tables("CISCO-STACKWISE-MIB", [ - ['switches', 'cswSwitchInfoTable', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'], ['ports', 'cswStackPortInfoTable', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Port'], ]); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm 2021-01-18 21:21:45.252127400 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm 2021-03-02 21:19:15.835776500 +0100 @@ -18,5 +18,25 @@ } else { $self->analyze_and_check_mem_subsystem("Classes::Cisco::CISCOMEMORYPOOLMIB::Component::MemSubsystem"); } + if ($self->implements_mib('CISCO-STACKWISE-MIB') and + $self->implements_mib('CISCO-STACKWISE-MIB')) { + # bei stacks, bestehend aus mehreren switches, wuenschen sich admins + # deren individuelle speichermetriken zu sehen. enhanced-mempool, bzw. + # der fallback auf memory-pool, der bei stacks vorkommt, gibt es lediglich + # einen globalen wert. + # die sind das von solarwinds so gewohnt, welches aber neuerdings nicht + # mehr ganz so angesagt ist. + # + # und gleich wieder der naechste dreck am 27.1.21, bei einem switch wird + # 105% usage gemeldet. der stack besteht nur aus einem switch, daher + # lassen wir das mit den per-node-memories hier bleiben. + $self->get_snmp_tables("CISCO-STACKWISE-MIB", [ + ['switches', 'cswSwitchInfoTable', 'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch', undef, ["cswSwitchNumCurrent"]], + ]); + if (scalar(@{$self->{switches}}) > 1) { + $self->analyze_and_check_mem_subsystem("Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem"); + } + delete $self->{switches}; + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco.pm 2021-01-18 21:21:45.453124500 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco.pm 2021-03-02 21:19:16.041760200 +0100 @@ -64,6 +64,12 @@ } else { $self->no_such_mode(); } + } elsif ($self->mode =~ /device::licenses::/) { + if ($self->implements_mib('CISCO-SMART-LIC-MIB')) { + $self->analyze_and_check_lic_subsystem("Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem"); + } else { + $self->no_such_mode(); + } } else { $self->init(); if ($self->mode =~ /device::interfaces::ifstack::status/ && diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/Device.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Device.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/Device.pm 2021-01-18 21:21:45.520123300 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Device.pm 2021-03-02 21:19:16.104135100 +0100 @@ -75,7 +75,7 @@ $self->rebless('Server::WindowsLocal'); } elsif ($self->{productname} =~ /solarislocal/i) { $self->rebless('Server::SolarisLocal'); - } elsif ($self->{productname} =~ /Bluecat Address Manager/i) { + } elsif ($self->{productname} =~ /Bluecat/i) { $self->rebless('Classes::Bluecat'); } elsif ($self->{productname} =~ /Cisco/i) { $self->rebless('Classes::Cisco'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm --- old/check_nwc_health-8.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm 2021-01-18 21:21:46.335755100 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm 2021-03-02 21:19:16.941616200 +0100 @@ -14,7 +14,10 @@ } elsif (scalar(@selected_indices)) { @selected_indices = map { $_->[0] } @selected_indices; } else { + # none of the desired interfaces was found. we exit here, otherwise we + # might find crap resulting in "uninitialized value...." (which happened) @selected_indices = (); + return; } $self->get_snmp_tables("IFMIB", [ ['stacks', 'ifStackTable', 'Classes::IFMIB::Component::StackSubsystem::Relationship'], @@ -107,7 +110,13 @@ sub check { my ($self) = @_; - my @selected_interfaces = sort { + if (! $self->{interfaces}) { + # see beginning of init(). For example --name channel --regex + # finds no interface of this name + $self->add_unknown('no interfaces'); + return; + } + my @selected_interfaces = sort { $a->{ifIndex} <=> $b->{ifIndex} } grep { exists $_->{lower_interfaces} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Makefile.am new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.am --- old/check_nwc_health-8.1/plugins-scripts/Makefile.am 2021-01-18 21:21:47.241734100 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.am 2021-03-02 21:19:17.881333200 +0100 @@ -57,6 +57,7 @@ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBRNDMNGMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBSYSMNGMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBTUNINGMIB.pm \ + ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKWISEMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSYSTEMEXTMIB.pm \ @@ -164,17 +165,22 @@ Classes/Bintec/Bibo/Components/CpuSubsystem.pm \ Classes/Bintec/Bibo.pm \ Classes/Bintec.pm \ - Classes/Bluecat/Component/MgmtSubsystem.pm \ - Classes/Bluecat/Component/ProcessSubsystem.pm \ - Classes/Bluecat/Component/MemSubsystem.pm \ - Classes/Bluecat/Component/HaSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/MemSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/HaSubsystem.pm \ + Classes/Bluecat/AddressManager.pm \ + Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm \ + Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm \ + Classes/Bluecat/DnsDhcpServer.pm \ Classes/Bluecat.pm \ + Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm \ Classes/Cisco/CISCOBGP4MIB/Components/PeerSubsystem.pm \ Classes/Cisco/CISCOEIGRPMIB/Components/PeerSubsystem.pm \ Classes/Cisco/CISCOPORTSECURITYMIB/Component/InterfaceSubsystem.pm \ Classes/Cisco/OLDCISCOINTERFACESMIB/Component/InterfaceSubsystem.pm \ Classes/Cisco/CISCOIPSECFLOWMONITOR/Component/VpnSubsystem.pm \ Classes/Cisco/CISCOENHANCEDMEMPOOLMIB/Component/MemSubsystem.pm \ + Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm \ Classes/Cisco/CISCOMEMORYPOOLMIB/Component/MemSubsystem.pm \ Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/EnvironmentalSubsystem.pm \ Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/FanSubsystem.pm \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Makefile.in new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.in --- old/check_nwc_health-8.1/plugins-scripts/Makefile.in 2021-01-18 21:21:47.251734900 +0100 +++ new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.in 2021-03-02 21:19:17.892330900 +0100 @@ -299,6 +299,7 @@ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBRNDMNGMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBSYSMNGMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBTUNINGMIB.pm \ + ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKWISEMIB.pm \ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSYSTEMEXTMIB.pm \ @@ -407,17 +408,22 @@ Classes/Bintec/Bibo/Components/CpuSubsystem.pm \ Classes/Bintec/Bibo.pm \ Classes/Bintec.pm \ - Classes/Bluecat/Component/MgmtSubsystem.pm \ - Classes/Bluecat/Component/ProcessSubsystem.pm \ - Classes/Bluecat/Component/MemSubsystem.pm \ - Classes/Bluecat/Component/HaSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/MemSubsystem.pm \ + Classes/Bluecat/AddressManager/Component/HaSubsystem.pm \ + Classes/Bluecat/AddressManager.pm \ + Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm \ + Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm \ + Classes/Bluecat/DnsDhcpServer.pm \ Classes/Bluecat.pm \ + Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm \ Classes/Cisco/CISCOBGP4MIB/Components/PeerSubsystem.pm \ Classes/Cisco/CISCOEIGRPMIB/Components/PeerSubsystem.pm \ Classes/Cisco/CISCOPORTSECURITYMIB/Component/InterfaceSubsystem.pm \ Classes/Cisco/OLDCISCOINTERFACESMIB/Component/InterfaceSubsystem.pm \ Classes/Cisco/CISCOIPSECFLOWMONITOR/Component/VpnSubsystem.pm \ Classes/Cisco/CISCOENHANCEDMEMPOOLMIB/Component/MemSubsystem.pm \ + Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm \ Classes/Cisco/CISCOMEMORYPOOLMIB/Component/MemSubsystem.pm \ Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/EnvironmentalSubsystem.pm \ Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/FanSubsystem.pm \