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-07-08 22:49:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health (Old)
and /work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2625
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "monitoring-plugins-nwc_health"
Thu Jul 8 22:49:26 2021 rev:13 rq:905091 version:8.4
Changes:
--------
---
/work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health/monitoring-plugins-nwc_health.changes
2021-06-16 20:36:50.719325408 +0200
+++
/work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2625/monitoring-plugins-nwc_health.changes
2021-07-08 22:49:50.063813732 +0200
@@ -1,0 +2,6 @@
+Sun Jul 4 11:59:04 UTC 2021 - Martin Hauke <[email protected]>
+
+- Update to version 8.4
+ * add bgp for huawei
+
+-------------------------------------------------------------------
Old:
----
check_nwc_health-8.3.3.2.tar.gz
New:
----
check_nwc_health-8.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ monitoring-plugins-nwc_health.spec ++++++
--- /var/tmp/diff_new_pack.SqcH8Q/_old 2021-07-08 22:49:50.439810831 +0200
+++ /var/tmp/diff_new_pack.SqcH8Q/_new 2021-07-08 22:49:50.439810831 +0200
@@ -19,7 +19,7 @@
%define realname check_nwc_health
Name: monitoring-plugins-nwc_health
-Version: 8.3.3.2
+Version: 8.4
Release: 0
Summary: This plugin checks the health of network components and
interfaces
# https://github.com/lausser/check_nwc_health
++++++ check_nwc_health-8.3.3.2.tar.gz -> check_nwc_health-8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/check_nwc_health-8.3.3.2/ChangeLog
new/check_nwc_health-8.4/ChangeLog
--- old/check_nwc_health-8.3.3.2/ChangeLog 2021-05-31 17:33:27.250000000
+0200
+++ new/check_nwc_health-8.4/ChangeLog 2021-06-30 19:40:54.080000000 +0200
@@ -1,3 +1,7 @@
+* 2021-06-30 8.4
+ add bgp for huawei
+* 2021-06-16 8.3.3.3
+ bugfix in UCD-MIB memory
* 2021-05-31 8.3.3.2
bugfix in IOS cpu-load for very old models without CISCO-PROCESS-MIB
* 2021-05-31 8.3.3.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm
new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm
---
old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm
1970-01-01 01:00:00.000000000 +0100
+++
new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm
2021-06-30 20:20:02.720000000 +0200
@@ -0,0 +1,308 @@
+package Monitoring::GLPlugin::SNMP::MibsAndOids::HUAWEIBGPVPNMIB;
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'HUAWEI-BGP-VPN-MIB'} = {
+ url => '',
+ name => 'HUAWEI-BGP-VPN-MIB',
+};
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'HUAWEI-BGP-VPN-MIB'} =
+ '1.3.6.1.4.1.2011.5.25.177';
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'HUAWEI-BGP-VPN-MIB'}
= {
+ 'hwBgpMIB' => '1.3.6.1.4.1.2011.5.25.177',
+ 'hwBgpObjects' => '1.3.6.1.4.1.2011.5.25.177.1',
+ 'hwBgpPeers' => '1.3.6.1.4.1.2011.5.25.177.1.1',
+ 'hwBgpPeerAddrFamilyTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.1',
+ 'hwBgpPeerAddrFamilyEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1',
+ 'hwBgpPeerInstanceId' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.1',
+ 'hwBgpPeerAddrFamilyAfi' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.2',
+ 'hwBgpPeerAddrFamilyAfiDefinition' => 'HUAWEI-BGP-VPN-MIB::HWBgpAfi',
+ 'hwBgpPeerAddrFamilySafi' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.3',
+ 'hwBgpPeerAddrFamilySafiDefinition' => 'HUAWEI-BGP-VPN-MIB::HWBgpSafi',
+ 'hwBgpPeerType' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.4',
+ 'hwBgpPeerIPAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.5',
+ 'hwBgpPeerVrfName' => '1.3.6.1.4.1.2011.5.25.177.1.1.1.1.6',
+ 'hwBgpPeerTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.2',
+ 'hwBgpPeerEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1',
+ 'hwBgpPeerNegotiatedVersion' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.1',
+ 'hwBgpPeerRemoteAs' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.2',
+ 'hwBgpPeerRemoteAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.4',
+ 'hwBgpPeerState' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.5',
+ 'hwBgpPeerStateDefinition' => 'HUAWEI-BGP-VPN-MIB::hwBgpPeerState',
+ 'hwBgpPeerFsmEstablishedCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.6',
+ 'hwBgpPeerFsmEstablishedTime' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.7',
+ 'hwBgpPeerGRStatus' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.8',
+ 'hwBgpPeerGRStatusDefinition' => 'HUAWEI-BGP-VPN-MIB::hwBgpPeerGRStatus',
+ 'hwBgpPeerLastError' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.9',
+ 'hwBgpPeerUnAvaiReason' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.10',
+ 'hwBgpPeerUnAvaiReasonDefinition' => {
+ 1 => "Configuration lead peer down",
+ 2 => "Receive notification",
+ 3 => "Receive error packet",
+ 4 => "Hold timer expire",
+ 5 => "Remote peer not reachable",
+ 6 => "Direct connect-interface down",
+ 7 => "Route limit",
+ },
+ 'hwBgpPeerAdminStatus' => '1.3.6.1.4.1.2011.5.25.177.1.1.2.1.11',
+ 'hwBgpPeerAdminStatusDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpPeerAdminStatus',
+ 'hwBgpPeerRouteTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.3',
+ 'hwBgpPeerRouteEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.3.1',
+ 'hwBgpPeerPrefixRcvCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.3.1.1',
+ 'hwBgpPeerPrefixActiveCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.3.1.2',
+ 'hwBgpPeerPrefixAdvCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.3.1.3',
+ 'hwBgpPeerMessageTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.4',
+ 'hwBgpPeerMessageEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1',
+ 'hwBgpPeerInTotalMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.1',
+ 'hwBgpPeerOutTotalMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.2',
+ 'hwBgpPeerInOpenMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.3',
+ 'hwBgpPeerInUpdateMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.4',
+ 'hwBgpPeerInNotificationMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.5',
+ 'hwBgpPeerInKeepAliveMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.6',
+ 'hwBgpPeerInRouteFreshMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.7',
+ 'hwBgpPeerOutOpenMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.8',
+ 'hwBgpPeerOutUpdateMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.9',
+ 'hwBgpPeerOutNotificationMsgCounter' =>
'1.3.6.1.4.1.2011.5.25.177.1.1.4.1.10',
+ 'hwBgpPeerOutKeepAliveMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.11',
+ 'hwBgpPeerOutRouteFreshMsgCounter' => '1.3.6.1.4.1.2011.5.25.177.1.1.4.1.12',
+ 'hwBgpPeerConfigTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.5',
+ 'hwBgpPeerConfigEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.5.1',
+ 'hwBgpPeerConfigRouteLimitNum' => '1.3.6.1.4.1.2011.5.25.177.1.1.5.1.1',
+ 'hwBgpPeerConfigRouteLimitThreshold' =>
'1.3.6.1.4.1.2011.5.25.177.1.1.5.1.2',
+ 'hwBgpPeerSessionTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.6',
+ 'hwBgpPeerSessionEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1',
+ 'hwBgpPeerSessionVrfName' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.1',
+ 'hwBgpPeerSessionRemoteAddrType' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.2',
+ 'hwBgpPeerSessionRemoteAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.3',
+ 'hwBgpPeerSessionLocalAddrType' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.4',
+ 'hwBgpPeerSessionLocalAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.5',
+ 'hwBgpPeerSessionUnavailableType' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.6',
+ 'hwBgpPeerSessionUnavailableTypeDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpPeerSessionUnavailableType',
+ 'hwBgpPeerSessionLocalIfName' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.7',
+ 'hwBgpPeerSessionReason' => '1.3.6.1.4.1.2011.5.25.177.1.1.6.1.8',
+ 'hwBgpPeerSessionReasonDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpPeerSessionReason',
+ 'hwBgpPeerStatisticTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.7',
+ 'hwBgpPeerStatisticEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1',
+ 'hwBgpProcessId' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.1',
+ 'hwBgpPeerVrfInstanceId' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.2',
+ 'hwBgpPeerAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.3',
+ 'hwBgpPeerFsmEstablishedTransitions' =>
'1.3.6.1.4.1.2011.5.25.177.1.1.7.1.4',
+ 'hwBgpPeerDownCounts' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.5',
+ 'hwBgpPeerInUpdateMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.6',
+ 'hwBgpPeerOutUpdateMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.7',
+ 'hwBgpPeerInTotalMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.8',
+ 'hwBgpPeerOutTotalMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.1.7.1.9',
+ 'hwBgpPeerSessionExtTable' => '1.3.6.1.4.1.2011.5.25.177.1.1.8',
+ 'hwBgpPeerSessionExtEntry' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1',
+ 'hwBgpPeerSessionExtVrfId' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.1',
+ 'hwBgpPeerSessionExtRemoteAddrType' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.2',
+ 'hwBgpPeerSessionExtRemoteAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.3',
+ 'hwBgpPeerSessionExtLocalAddrType' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.4',
+ 'hwBgpPeerSessionExtLocalAddr' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.5',
+ 'hwBgpPeerSessionExtUnavailableType' =>
'1.3.6.1.4.1.2011.5.25.177.1.1.8.1.6',
+ 'hwBgpPeerSessionExtUnavailableTypeDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpPeerSessionExtUnavailableType',
+ 'hwBgpPeerSessionExtLocalIfName' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.7',
+ 'hwBgpPeerSessionExtReason' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.8',
+ 'hwBgpPeerSessionExtReasonDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpPeerSessionExtReason',
+ 'hwBgpPeerSessionExtVrfName' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.9',
+ 'hwBgpPeerSessionExtRemoteAs' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.10',
+ 'hwBgpPeerSessionExtDescription' => '1.3.6.1.4.1.2011.5.25.177.1.1.8.1.11',
+ 'hwBgpRoute' => '1.3.6.1.4.1.2011.5.25.177.1.2',
+ 'hwBgpRouteLimitTable' => '1.3.6.1.4.1.2011.5.25.177.1.2.1',
+ 'hwBgpRouteLimitindex' => '1.3.6.1.4.1.2011.5.25.177.1.2.1.1',
+ 'hwBgpRouteLimitindexDefinition' =>
'HUAWEI-BGP-VPN-MIB::hwBgpRouteLimitindex',
+ 'hwBgpRouteCurNum' => '1.3.6.1.4.1.2011.5.25.177.1.2.1.2',
+ 'hwBgpRouteMaxNum' => '1.3.6.1.4.1.2011.5.25.177.1.2.1.3',
+ 'hwBgpRouteThreshold' => '1.3.6.1.4.1.2011.5.25.177.1.2.1.4',
+ 'hwBgpRouteType' => '1.3.6.1.4.1.2011.5.25.177.1.2.1.5',
+ 'hwBgpVrfRouteTable' => '1.3.6.1.4.1.2011.5.25.177.1.2.2',
+ 'hwBgpVrfRouteEntry' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1',
+ 'hwBgpVrfCurrRouteNum' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1.1',
+ 'hwBgpVrfThresholdValue' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1.2',
+ 'hwBgpVrfRouteType' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1.3',
+ 'hwBgpVrfInstName' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1.4',
+ 'hwBgpVrfAddressFamily' => '1.3.6.1.4.1.2011.5.25.177.1.2.2.1.5',
+ 'hwEvpnRouteTable' => '1.3.6.1.4.1.2011.5.25.177.1.2.3',
+ 'hwEvpnRouteEntry' => '1.3.6.1.4.1.2011.5.25.177.1.2.3.1',
+ 'hwEvpnCurrRouteNum' => '1.3.6.1.4.1.2011.5.25.177.1.2.3.1.1',
+ 'hwEvpnThresholdValue' => '1.3.6.1.4.1.2011.5.25.177.1.2.3.1.2',
+ 'hwEvpnRouteType' => '1.3.6.1.4.1.2011.5.25.177.1.2.3.1.3',
+ 'hwEvpnAddressFamily' => '1.3.6.1.4.1.2011.5.25.177.1.2.3.1.4',
+ 'hwBgpLabelLimitTable' => '1.3.6.1.4.1.2011.5.25.177.1.2.4',
+ 'hwBgpAddrFamilyAfi' => '1.3.6.1.4.1.2011.5.25.177.1.2.4.1',
+ 'hwBgpAddrFamilyAfiDefinition' => 'HUAWEI-BGP-VPN-MIB::HWBgpAfi',
+ 'hwBgpAddrFamilySafi' => '1.3.6.1.4.1.2011.5.25.177.1.2.4.2',
+ 'hwBgpAddrFamilySafiDefinition' => 'HUAWEI-BGP-VPN-MIB::HWBgpSafi',
+ 'hwBgpLabelMaxValue' => '1.3.6.1.4.1.2011.5.25.177.1.2.4.3',
+ 'hwBgpLabelLimitThreshold' => '1.3.6.1.4.1.2011.5.25.177.1.2.4.4',
+ 'hwBgpTraps' => '1.3.6.1.4.1.2011.5.25.177.1.3',
+ 'hwBgpScalars' => '1.3.6.1.4.1.2011.5.25.177.1.4',
+ 'hwBgpPeerSessionNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.1',
+ 'hwIBgpPeerSessionNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.2',
+ 'hwEBgpPeerSessionNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.3',
+ 'hwBgpPeerSessionMaxNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.4',
+ 'hwBgpDynamicPeerSessionNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.5',
+ 'hwBgpDynamicPeerSessionMaxNum' => '1.3.6.1.4.1.2011.5.25.177.1.4.6',
+ 'hwBgpPeerSessionThreshold' => '1.3.6.1.4.1.2011.5.25.177.1.4.7',
+ 'hwBgpPeerTotalInUpdateMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.4.8',
+ 'hwBgpPeerTotalOutUpdateMsgs' => '1.3.6.1.4.1.2011.5.25.177.1.4.9',
+ 'hwBgpProcess' => '1.3.6.1.4.1.2011.5.25.177.1.5',
+ 'hwBgpProcessCommTable' => '1.3.6.1.4.1.2011.5.25.177.1.5.1',
+ 'hwBgpProcessCommEntry' => '1.3.6.1.4.1.2011.5.25.177.1.5.1.1',
+ 'hwBgpProcessName' => '1.3.6.1.4.1.2011.5.25.177.1.5.1.1.1',
+ 'hwBgpVpnObjects' => '1.3.6.1.4.1.2011.5.25.177.2',
+ 'hwBgpVpnTunnelTable' => '1.3.6.1.4.1.2011.5.25.177.2.1',
+ 'hwBgpVpnTunnelEntry' => '1.3.6.1.4.1.2011.5.25.177.2.1.1',
+ 'hwBgpVpnTunnelVrfName' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.1',
+ 'hwBgpVpnTunnelPublicNetNextHop' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.2',
+ 'hwBgpVpnTunnelId' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.3',
+ 'hwBgpVpnTunnelDestAddr' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.4',
+ 'hwBgpVpnTunnelType' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.5',
+ 'hwBgpVpnTunnelSrcAddr' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.6',
+ 'hwBgpVpnTunnelOutIfName' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.7',
+ 'hwBgpVpnTunnelIsLoadBalance' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.8',
+ 'hwBgpVpnTunnelLspIndex' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.9',
+ 'hwBgpVpnTunnelLspOutIfName' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.10',
+ 'hwBgpVpnTunnelLspOutLabel' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.11',
+ 'hwBgpVpnTunnelLspNextHop' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.12',
+ 'hwBgpVpnTunnelLspFec' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.13',
+ 'hwBgpVpnTunnelLspFecPfxLen' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.14',
+ 'hwBgpVpnTunnelLspIsBackup' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.15',
+ 'hwBgpVpnTunnelSignalProtocol' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.16',
+ 'hwBgpVpnTunnelSessionTunnelId' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.17',
+ 'hwBgpVpnTunnelTunnelName' => '1.3.6.1.4.1.2011.5.25.177.2.1.1.18',
+ 'hwBgpVpnServiceIdTable' => '1.3.6.1.4.1.2011.5.25.177.2.2',
+ 'hwBgpVpnServiceIdEntry' => '1.3.6.1.4.1.2011.5.25.177.2.2.1',
+ 'hwBgpVpnServiceIdVrfName' => '1.3.6.1.4.1.2011.5.25.177.2.2.1.1',
+ 'hwBgpVpnServiceIdValue' => '1.3.6.1.4.1.2011.5.25.177.2.2.1.2',
+ 'hwBgpVpnScalars' => '1.3.6.1.4.1.2011.5.25.177.2.3',
+ 'hwConfiguredVrfs' => '1.3.6.1.4.1.2011.5.25.177.2.3.1',
+ 'hwConfiguredIpv4Vrfs' => '1.3.6.1.4.1.2011.5.25.177.2.3.2',
+ 'hwConfiguredIpv6Vrfs' => '1.3.6.1.4.1.2011.5.25.177.2.3.3',
+ 'hwBgpConformance' => '1.3.6.1.4.1.2011.5.25.177.3',
+ 'hwBgpCompliances' => '1.3.6.1.4.1.2011.5.25.177.3.1',
+ 'hwBgpGroups' => '1.3.6.1.4.1.2011.5.25.177.3.2',
+ 'hwBgpVpnConformance' => '1.3.6.1.4.1.2011.5.25.177.5',
+ 'hwBgpVpnCompliances' => '1.3.6.1.4.1.2011.5.25.177.5.1',
+ 'hwBgpVpnExtGroups' => '1.3.6.1.4.1.2011.5.25.177.5.2',
+ 'hwTnl2VpnTrapObjects' => '1.3.6.1.4.1.2011.5.25.177.6',
+ 'hwTnl2VpnTrapTable' => '1.3.6.1.4.1.2011.5.25.177.6.1',
+ 'hwTnl2VpnTrapEntry' => '1.3.6.1.4.1.2011.5.25.177.6.1.1',
+ 'hwVpnId' => '1.3.6.1.4.1.2011.5.25.177.6.1.1.1',
+ 'hwVpnPublicNextHop' => '1.3.6.1.4.1.2011.5.25.177.6.1.1.2',
+ 'hwTunnelReachablityEvent' => '1.3.6.1.4.1.2011.5.25.177.6.1.1.3',
+ 'hwVpnTrapCkeyValue' => '1.3.6.1.4.1.2011.5.25.177.6.1.1.4',
+ 'hwTnl2VpnTrapConformance' => '1.3.6.1.4.1.2011.5.25.177.7',
+ 'hwTnl2VpnTrapConformances' => '1.3.6.1.4.1.2011.5.25.177.7.1',
+ 'hwTnl2VpnTrapGroups' => '1.3.6.1.4.1.2011.5.25.177.7.2',
+ 'hwTnl2VpnTrapNotification' => '1.3.6.1.4.1.2011.5.25.177.8',
+ 'hwPeerDistributeObjects' => '1.3.6.1.4.1.2011.5.25.177.9',
+ 'hwBgpTotalRouteNumber' => '1.3.6.1.4.1.2011.5.25.177.9.1',
+ 'hwOsNodeTable' => '1.3.6.1.4.1.2011.5.25.177.9.2',
+ 'hwOsNodeEntry' => '1.3.6.1.4.1.2011.5.25.177.9.2.1',
+ 'hwCurrSlot' => '1.3.6.1.4.1.2011.5.25.177.9.2.1.1',
+ 'hwPeerNumber' => '1.3.6.1.4.1.2011.5.25.177.9.2.1.4',
+ 'hwRouteNumber' => '1.3.6.1.4.1.2011.5.25.177.9.2.1.5',
+ 'hwDistributeTable' => '1.3.6.1.4.1.2011.5.25.177.9.3',
+ 'hwDistributeEntry' => '1.3.6.1.4.1.2011.5.25.177.9.3.1',
+ 'hwDistributeLocId' => '1.3.6.1.4.1.2011.5.25.177.9.3.1.1',
+ 'hwDistributeName' => '1.3.6.1.4.1.2011.5.25.177.9.3.1.2',
+ 'hwMigrateSrcSlot' => '1.3.6.1.4.1.2011.5.25.177.9.3.1.3',
+ 'hwMigrateDestSlot' => '1.3.6.1.4.1.2011.5.25.177.9.3.1.4',
+ 'hwMigrateReason' => '1.3.6.1.4.1.2011.5.25.177.9.3.1.5',
+ 'hwMigrateReasonDefinition' => 'HUAWEI-BGP-VPN-MIB::hwMigrateReason',
+ 'hwPeerDistributeTraps' => '1.3.6.1.4.1.2011.5.25.177.9.4',
+ 'hwRpkiObjects' => '1.3.6.1.4.1.2011.5.25.177.11',
+ 'hwRpkiSessions' => '1.3.6.1.4.1.2011.5.25.177.11.1',
+ 'hwRpkiSessionTable' => '1.3.6.1.4.1.2011.5.25.177.11.1.1',
+ 'hwRpkiSessionEntry' => '1.3.6.1.4.1.2011.5.25.177.11.1.1.1',
+ 'hwRpkiSessionVrfName' => '1.3.6.1.4.1.2011.5.25.177.11.1.1.1.1',
+ 'hwRpkiSessionType' => '1.3.6.1.4.1.2011.5.25.177.11.1.1.1.2',
+ 'hwSessionIPAddr' => '1.3.6.1.4.1.2011.5.25.177.11.1.1.1.3',
+ 'hwRpkiSessionRoaLimitNum' => '1.3.6.1.4.1.2011.5.25.177.11.1.1.1.4',
+ 'hwRpkiTraps' => '1.3.6.1.4.1.2011.5.25.177.11.2',
+ 'hwRpkiConformance' => '1.3.6.1.4.1.2011.5.25.177.11.3',
+ 'hwRpkiCompliances' => '1.3.6.1.4.1.2011.5.25.177.11.3.1',
+ 'hwRpkiGroups' => '1.3.6.1.4.1.2011.5.25.177.11.3.2',
+};
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'HUAWEI-BGP-VPN-MIB'}
= {
+ 'hwMigrateReason' => {
+ '1' => 'memoryoverload',
+ '2' => 'cpuoverload',
+ },
+ 'HWBgpSafi' => {
+ '1' => 'unicast',
+ '2' => 'multicast',
+ '4' => 'mpls',
+ '5' => 'mcast-vpn',
+ '65' => 'vpls',
+ '66' => 'mdt',
+ '128' => 'vpn',
+ '132' => 'route-target',
+ },
+ 'hwBgpPeerAdminStatus' => {
+ '1' => 'stop',
+ '2' => 'start',
+ },
+ 'hwBgpPeerSessionReason' => {
+ '1' => 'configurationLeadPeerDown',
+ '2' => 'receiveNotification',
+ '3' => 'receiveErrorPacket',
+ '4' => 'holdTimerExpire',
+ '5' => 'remotePeerNotReachable',
+ '6' => 'directConnectInterfaceDown',
+ '7' => 'routeLimit',
+ '8' => 'peerIsNotUpForASpecifiedPeriodOfTime',
+ '100' => 'alarmClear',
+ },
+ 'hwBgpRouteLimitindex' => {
+ '1' => 'ipv4',
+ '2' => 'ipv6',
+ '3' => 'ipv4vrf',
+ '4' => 'ipv6vrf',
+ '5' => 'ipv4public',
+ '6' => 'ipv6public',
+ '7' => 'l2ad',
+ },
+ 'hwBgpPeerSessionExtReason' => {
+ '1' => 'configurationLeadPeerDown',
+ '2' => 'receiveNotification',
+ '3' => 'receiveErrorPacket',
+ '4' => 'holdTimerExpire',
+ '5' => 'remotePeerNotReachable',
+ '6' => 'directConnectInterfaceDown',
+ '7' => 'routeLimit',
+ '8' => 'peerIsNotUpForASpecifiedPeriodOfTime',
+ '90' => 'unknown',
+ '100' => 'alarmClear',
+ },
+ 'HWBgpAfi' => {
+ '1' => 'ipv4',
+ '2' => 'ipv6',
+ '25' => 'vpls',
+ '196' => 'l2vpn',
+ },
+ 'hwBgpPeerGRStatus' => {
+ '1' => 'peerNotBeingHelped',
+ '2' => 'peerRestarting',
+ '3' => 'peerFinishRestart',
+ '4' => 'peerHelping',
+ },
+ 'hwBgpPeerState' => {
+ '1' => 'idle',
+ '2' => 'connect',
+ '3' => 'active',
+ '4' => 'opensent',
+ '5' => 'openconfirm',
+ '6' => 'established',
+ },
+ 'hwBgpPeerSessionUnavailableType' => {
+ '1' => 'uptodown',
+ '2' => 'alwaysdown',
+ },
+ 'hwBgpPeerSessionExtUnavailableType' => {
+ '1' => 'uptodown',
+ '2' => 'alwaysdown',
+ },
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin/SNMP.pm
new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin/SNMP.pm
--- old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin/SNMP.pm
2021-05-20 14:03:34.460294100 +0200
+++ new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin/SNMP.pm
2021-06-30 20:20:02.720000000 +0200
@@ -368,12 +368,39 @@
printf "OK - all requested oids are in %s\n", $name;
}
} else {
+ my @credentials = ();
+ my $credmapping = {
+ "-community" => "-c",
+ "-privpassword" => "-X",
+ "-privprotocol" => "-x",
+ "-authpassword" => "-A",
+ "-authprotocol" => "-a",
+ "-username" => "-u",
+ "-context" => "-n",
+ "-version" => "-v",
+ };
+ foreach (keys %{$Monitoring::GLPlugin::SNMP::session_params}) {
+ if (exists $credmapping->{$_}) {
+ push(@credentials, sprintf "%s '%s'",
+ $credmapping->{$_},
+ $Monitoring::GLPlugin::SNMP::session_params->{$_}
+ );
+ }
+ }
+ if (grep(/-X/, @credentials) and grep(/-A/, @credentials)) {
+ push(@credentials, "-l authPriv");
+ } elsif (grep(/-A/, @credentials)) {
+ push(@credentials, "-l authNoPriv");
+ } else {
+ push(@credentials, "-l noAuthNoPriv");
+ }
+ my $credentials = join(" ", @credentials);
+ $credentials =~ s/-v2 /-v2c /g;
printf "rm -f %s\n", $name;
foreach (@trees) {
- printf "%s -ObentU -v%s -c %s %s %s >> %s\n",
+ printf "%s -ObentU %s %s %s >> %s\n",
($self->mode =~ /bulk/) ? "snmpbulkwalk -t 15 -r 20" : "snmpwalk",
- $self->opts->protocol,
- $self->opts->community,
+ $credentials,
$self->opts->hostname,
$_, $name;
}
@@ -1180,6 +1207,7 @@
}
$Monitoring::GLPlugin::SNMP::max_msg_size = $max_msg_size;
$Monitoring::GLPlugin::SNMP::session = $session;
+ $Monitoring::GLPlugin::SNMP::session_params = \%params;
}
} else {
$self->add_message(CRITICAL,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin.pm
new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin.pm
--- old/check_nwc_health-8.3.3.2/GLPlugin/lib/Monitoring/GLPlugin.pm
2021-05-20 14:03:34.460294100 +0200
+++ new/check_nwc_health-8.4/GLPlugin/lib/Monitoring/GLPlugin.pm
2021-06-30 20:20:02.720000000 +0200
@@ -20,7 +20,7 @@
$Data::Dumper::Sparseseen = 1;
};
our $AUTOLOAD;
-*VERSION = \'3.4.0.3';
+*VERSION = \'3.4.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.3.3.2/configure
new/check_nwc_health-8.4/configure
--- old/check_nwc_health-8.3.3.2/configure 2021-05-31 17:34:16.550000000
+0200
+++ new/check_nwc_health-8.4/configure 2021-06-30 19:43:15.540000000 +0200
@@ -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.3.3.2.
+# Generated by GNU Autoconf 2.69 for check_nwc_health 8.4.
#
#
# 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.3.3.2'
-PACKAGE_STRING='check_nwc_health 8.3.3.2'
+PACKAGE_VERSION='8.4'
+PACKAGE_STRING='check_nwc_health 8.4'
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.3.3.2 to adapt to many kinds of
systems.
+\`configure' configures check_nwc_health 8.4 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.3.3.2:";;
+ short | recursive ) echo "Configuration of check_nwc_health 8.4:";;
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.3.3.2
+check_nwc_health configure 8.4
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.3.3.2, which was
+It was created by check_nwc_health $as_me 8.4, 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.3.3.2'
+ VERSION='8.4'
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.3.3.2, which was
+This file was extended by check_nwc_health $as_me 8.4, 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.3.3.2
+check_nwc_health config.status 8.4
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.3.3.2/configure.ac
new/check_nwc_health-8.4/configure.ac
--- old/check_nwc_health-8.3.3.2/configure.ac 2021-05-31 17:33:38.520000000
+0200
+++ new/check_nwc_health-8.4/configure.ac 2021-06-30 19:41:04.960000000
+0200
@@ -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.3.3.2)
+AC_INIT(check_nwc_health,8.4)
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.3.3.2/plugins-scripts/Classes/Huawei/Component/PeerSubsystem.pm
new/check_nwc_health-8.4/plugins-scripts/Classes/Huawei/Component/PeerSubsystem.pm
---
old/check_nwc_health-8.3.3.2/plugins-scripts/Classes/Huawei/Component/PeerSubsystem.pm
1970-01-01 01:00:00.000000000 +0100
+++
new/check_nwc_health-8.4/plugins-scripts/Classes/Huawei/Component/PeerSubsystem.pm
2021-06-30 19:13:15.480000000 +0200
@@ -0,0 +1,318 @@
+package Classes::Huawei::Component::PeerSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+
+our $errorcodes = {
+ # REFERENCE "RFC 4271, Section 4.5."
+ 0 => {
+ 0 => 'No Error',
+ },
+ 1 => {
+ 0 => 'MESSAGE Header Error',
+ 1 => 'Connection Not Synchronized',
+ 2 => 'Bad Message Length',
+ 3 => 'Bad Message Type',
+ },
+ 2 => {
+ 0 => 'OPEN Message Error',
+ 1 => 'Unsupported Version Number',
+ 2 => 'Bad Peer AS',
+ 3 => 'Bad BGP Identifier',
+ 4 => 'Unsupported Optional Parameter',
+ 5 => '[Deprecated => see Appendix A]',
+ 6 => 'Unacceptable Hold Time',
+ },
+ 3 => {
+ 0 => 'UPDATE Message Error',
+ 1 => 'Malformed Attribute List',
+ 2 => 'Unrecognized Well-known Attribute',
+ 3 => 'Missing Well-known Attribute',
+ 4 => 'Attribute Flags Error',
+ 5 => 'Attribute Length Error',
+ 6 => 'Invalid ORIGIN Attribute',
+ 7 => '[Deprecated => see Appendix A]',
+ 8 => 'Invalid NEXT_HOP Attribute',
+ 9 => 'Optional Attribute Error',
+ 10 => 'Invalid Network Field',
+ 11 => 'Malformed AS_PATH',
+ },
+ 4 => {
+ 0 => 'Hold Timer Expired',
+ },
+ 5 => {
+ 0 => 'Finite State Machine Error',
+ },
+ 6 => {
+ 0 => 'Cease',
+ 1 => 'Maximum Number of Prefixes Reached',
+ 2 => 'Administrative Shutdown',
+ 3 => 'Peer De-configured',
+ 4 => 'Administrative Reset',
+ 5 => 'Connection Rejected',
+ 6 => 'Other Configuration Change',
+ 7 => 'Connection Collision Resolution',
+ 8 => 'Out of Resources',
+ },
+};
+
+sub init {
+ my ($self) = @_;
+ $self->{peers} = [];
+ $self->implements_mib('INET-ADDRESS-MIB');
+ $self->get_snmp_tables('HUAWEI-BGP-VPN-MIB', [
+ ['peers', 'hwBgpPeerAddrFamilyTable+hwBgpPeerTable',
'Classes::Huawei::Component::PeerSubsystem::Peer', sub {
+ my $o = shift;
+ # regexp -> arschlecken!
+ if ($self->opts->name) {
+ return
$self->filter_name($o->compact_v6($o->{hwBgpPeerRemoteAddr}));
+ } else {
+ return 1;
+ }
+ }],
+ ['sessions', 'hwBgpPeerSessionTable',
'Monitoring::GLPlugin::SNMP::TableItem'],
+ ['extsessions', 'hwBgpPeerSessionExtTable',
'Monitoring::GLPlugin::SNMP::TableItem'],
+ ]);
+}
+
+sub check {
+ my ($self) = @_;
+ my $errorfound = 0;
+ $self->add_info('checking bgp peers');
+ if ($self->mode =~ /peer::list/) {
+ foreach (sort {$a->{hwBgpPeerRemoteAddr} cmp $b->{hwBgpPeerRemoteAddr}}
@{$self->{peers}}) {
+ printf "%s\n", $_->{hwBgpPeerRemoteAddr};
+ #$_->list();
+ }
+ $self->add_ok("have fun");
+ } elsif ($self->mode =~ /peer::count/) {
+ $self->add_info(sprintf "found %d peers", scalar(@{$self->{peers}}));
+ $self->set_thresholds(warning => '1:', critical => '1:');
+ $self->add_message($self->check_thresholds(scalar(@{$self->{peers}})));
+ $self->add_perfdata(
+ label => 'peers',
+ value => scalar(@{$self->{peers}}),
+ );
+ } elsif ($self->mode =~ /peer::watch/) {
+ # take a snapshot of the peer list. -> good baseline
+ # warning if there appear peers, mitigate to ok
+ # critical if warn/crit percent disappear
+ $self->{numOfPeers} = scalar (@{$self->{peers}});
+ $self->{peerNameList} = [map { $_->{hwBgpPeerRemoteAddr} }
@{$self->{peers}}];
+ $self->opts->override_opt('lookback', 3600) if ! $self->opts->lookback;
+ if ($self->opts->reset) {
+ my $statefile = $self->create_statefile(name => 'bgppeerlist', lastarray
=> 1);
+ unlink $statefile if -f $statefile;
+ }
+ $self->valdiff({name => 'bgppeerlist', lastarray => 1},
+ qw(peerNameList numOfPeers));
+ my $problem = 0;
+ if ($self->opts->warning || $self->opts->critical) {
+ $self->set_thresholds(warning => $self->opts->warning,
+ critical => $self->opts->critical);
+ my $before = $self->{numOfPeers} -
scalar(@{$self->{delta_found_peerNameList}}) +
scalar(@{$self->{delta_lost_peerNameList}});
+ # use own delta_numOfPeers, because the glplugin version treats
+ # negative deltas as overflows
+ $self->{delta_numOfPeers} = $self->{numOfPeers} - $before;
+ if ($self->opts->units && $self->opts->units eq "%") {
+ my $delta_pct = $before ? (($self->{delta_numOfPeers} / $before) *
100) : 0;
+ $self->add_message($self->check_thresholds($delta_pct),
+ sprintf "%.2f%% delta, before: %d, now: %d", $delta_pct, $before,
$self->{numOfPeers});
+ $problem = $self->check_thresholds($delta_pct);
+ } else {
+ $self->add_message($self->check_thresholds($self->{delta_numOfPeers}),
+ sprintf "%d delta, before: %d, now: %d", $self->{delta_numOfPeers},
$before, $self->{numOfPeers});
+ $problem = $self->check_thresholds($self->{delta_numOfPeers});
+ }
+ if (scalar(@{$self->{delta_found_peerNameList}}) > 0) {
+ $self->add_ok(sprintf 'found: %s',
+ join(", ", @{$self->{delta_found_peerNameList}}));
+ }
+ if (scalar(@{$self->{delta_lost_peerNameList}}) > 0) {
+ $self->add_ok(sprintf 'lost: %s',
+ join(", ", @{$self->{delta_lost_peerNameList}}));
+ }
+ } else {
+ if (scalar(@{$self->{delta_found_peerNameList}}) > 0) {
+ $self->add_warning(sprintf '%d new bgp peers (%s)',
+ scalar(@{$self->{delta_found_peerNameList}}),
+ join(", ", @{$self->{delta_found_peerNameList}}));
+ $problem = 1;
+ }
+ if (scalar(@{$self->{delta_lost_peerNameList}}) > 0) {
+ $self->add_critical(sprintf '%d bgp peers missing (%s)',
+ scalar(@{$self->{delta_lost_peerNameList}}),
+ join(", ", @{$self->{delta_lost_peerNameList}}));
+ $problem = 2;
+ }
+ $self->add_ok(sprintf 'found %d bgp peers', scalar (@{$self->{peers}}));
+ }
+ if ($problem) { # relevant only for lookback=9999 and support contract
customers
+ $self->valdiff({name => 'bgppeerlist', lastarray => 1, freeze => 1},
+ qw(peerNameList numOfPeers));
+ } else {
+ $self->valdiff({name => 'bgppeerlist', lastarray => 1, freeze => 2},
+ qw(peerNameList numOfPeers));
+ }
+ $self->add_perfdata(
+ label => 'num_peers',
+ value => scalar (@{$self->{peers}}),
+ );
+ } else {
+ if (scalar(@{$self->{peers}}) == 0) {
+ $self->add_unknown('no peers');
+ return;
+ }
+ # es gibt
+ # kleine installation: 1 peer zu 1 as, evt 2. as als fallback
+ # grosse installation: n peer zu 1 as, alternative routen zum provider
+ # n peer zu m as, mehrere provider, mehrere
alternativrouten
+ # 1 ausfall on 4 peers zu as ist egal
+ my $as_numbers = {};
+ foreach (@{$self->{peers}}) {
+ $_->check();
+ if (! exists $as_numbers->{$_->{hwBgpPeerRemoteAs}}->{peers}) {
+ $as_numbers->{$_->{hwBgpPeerRemoteAs}}->{peers} = [];
+ $as_numbers->{$_->{hwBgpPeerRemoteAs}}->{availability} = 100;
+ }
+ push(@{$as_numbers->{$_->{hwBgpPeerRemoteAs}}->{peers}}, $_);
+ }
+ if ($self->opts->name2) {
+ $self->clear_ok();
+ $self->clear_critical();
+ if ($self->opts->name2 eq "_ALL_") {
+ $self->opts->override_opt("name2", join(",", keys %{$as_numbers}));
+ }
+ foreach my $as (split(",", $self->opts->name2)) {
+ my $asname = "";
+ if ($as =~ /(\d+)=(\w+)/) {
+ $as = $1;
+ $asname = $2;
+ }
+ if (exists $as_numbers->{$as}) {
+ my $num_peers = scalar(@{$as_numbers->{$as}->{peers}});
+ my $num_ok_peers = scalar(grep { $_->{hwBgpPeerFaulty} == 0 }
@{$as_numbers->{$as}->{peers}});
+ my $num_admdown_peers = scalar(grep { $_->{hwBgpPeerAdminStatus} eq
"stop" } @{$as_numbers->{$as}->{peers}});
+ $as_numbers->{$as}->{availability} = 100 * $num_ok_peers /
$num_peers;
+ $self->set_thresholds(warning => "100:", critical => "50:");
+
$self->add_message($self->check_thresholds($as_numbers->{$as}->{availability}),
+ sprintf "%d from %d connections to %s are up (%.2f%%%s)",
+ $num_ok_peers, $num_peers, $asname ? $asname : "AS".$as,
+ $as_numbers->{$as}->{availability},
+ $num_admdown_peers ? sprintf(", but %d are admin down and
counted as up!", $num_admdown_peers) : "");
+ } else {
+ $self->add_critical(sprintf 'found no peer for %s', $asname ?
$asname : "AS".$as);
+ }
+ }
+ }
+ if ($self->opts->report eq "short") {
+ $self->clear_ok();
+ $self->add_ok('no problems') if ! $self->check_messages();
+ }
+ }
+}
+
+
+package Classes::Huawei::Component::PeerSubsystem::Peer;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub finish {
+ my ($self) = @_;
+ my @tmp_indices = @{$self->{indices}};
+ my $last_tmp = scalar(@tmp_indices) - 1;
+ $self->{hwBgpPeerInstanceId} = $tmp_indices[0];
+ shift @tmp_indices;
+ $self->{hwBgpPeerAddrFamilyAfi} = $tmp_indices[0];
+ shift @tmp_indices;
+ $self->{hwBgpPeerAddrFamilySafi} = $tmp_indices[0];
+ shift @tmp_indices;
+ $self->{hwBgpPeerType} = $self->mibs_and_oids_definition(
+ 'INET-ADDRESS-MIB', 'InetAddressType', $tmp_indices[0]);
+ shift @tmp_indices;
+ $self->{hwBgpPeerIPAddr} = $self->mibs_and_oids_definition(
+ 'INET-ADDRESS-MIB', 'InetAddressMaker',
+ $self->{hwBgpPeerType}, @tmp_indices);
+
+ $self->{hwBgpPeerLastError} |= "00 00";
+ my $errorcode = 0;
+ my $subcode = 0;
+ if (lc $self->{hwBgpPeerLastError} =~ /([0-9a-f]+)\s+([0-9a-f]+)/) {
+ $errorcode = hex($1) * 1;
+ $subcode = hex($2) * 1;
+ }
+ $self->{hwBgpPeerLastError} =
$Classes::Huawei::Component::PeerSubsystem::errorcodes->{$errorcode}->{$subcode};
+ $self->{hwBgpPeerRemoteAsName} = "";
+ $self->{hwBgpPeerRemoteAsImportant} = 0; # if named in --name2
+ $self->{hwBgpPeerFaulty} = 0;
+ my @parts = gmtime($self->{hwBgpPeerFsmEstablishedTime});
+ $self->{hwBgpPeerFsmEstablishedTime} = sprintf ("%dd, %dh, %dm,
%ds",@parts[7,2,1,0]);
+
+ if ($self->{hwBgpPeerType} eq "ipv6") {
+ $self->{hwBgpPeerRemoteAddrCompact} =
$self->compact_v6($self->{hwBgpPeerRemoteAddr});
+ #$self->{hwBgpPeerSessionLocalAddr} =
$self->compact_v6($self->{hwBgpPeerSessionLocalAddr});
+ } else {
+ $self->{hwBgpPeerRemoteAddrCompact} = $self->{hwBgpPeerRemoteAddr};
+ #$self->{hwBgpPeerSessionLocalAddrCompact} =
$self->{hwBgpPeerSessionLocalAddr};
+ }
+ # bin zu faul, HwBgpPeerSessionEntry zu holen (abgesehen davon, da?? die auch
+ # leer sein kann). Wer die hwBgpPeerSessionLocalAddr unbedingt haben will,
+ # soll schon mal anfangen zu sparen. Das ist teuer. Und wer featurebettelt,
+ # hat verschissen und kommt auf die Spamliste.
+ $self->{hwBgpPeerSessionLocalAddr} = "undefined";
+}
+
+sub check {
+ my ($self) = @_;
+ if ($self->opts->name2) {
+ foreach my $as (split(",", $self->opts->name2)) {
+ if ($as =~ /(\d+)=(\w+)/) {
+ $as = $1;
+ $self->{hwBgpPeerRemoteAsName} = ", ".$2;
+ } else {
+ $self->{hwBgpPeerRemoteAsName} = "";
+ }
+ if ($as eq "_ALL_" || $as == $self->{hwBgpPeerRemoteAs}) {
+ $self->{hwBgpPeerRemoteAsImportant} = 1;
+ }
+ }
+ } else {
+ $self->{hwBgpPeerRemoteAsImportant} = 1;
+ }
+ if ($self->{hwBgpPeerState} eq "established") {
+ $self->add_ok(sprintf "peer %s (AS%s) state is %s since %s",
+ $self->{hwBgpPeerRemoteAddr},
+ $self->{hwBgpPeerRemoteAs}.$self->{hwBgpPeerRemoteAsName},
+ $self->{hwBgpPeerState},
+ $self->{hwBgpPeerFsmEstablishedTime}
+ );
+ } elsif ($self->{hwBgpPeerAdminStatus} eq "stop") {
+ # admin down is by default critical, but can be mitigated
+ $self->add_message(
+ defined $self->opts->mitigation() ? $self->opts->mitigation() :
+ $self->{hwBgpPeerRemoteAsImportant} ? WARNING : OK,
+ sprintf "peer %s (AS%s) state is %s (is admin down)",
+ $self->{hwBgpPeerRemoteAddr},
+ $self->{hwBgpPeerRemoteAs}.$self->{hwBgpPeerRemoteAsName},
+ $self->{hwBgpPeerState}
+ );
+ $self->{hwBgpPeerFaulty} =
+ defined $self->opts->mitigation() && $self->opts->mitigation() eq "ok"
? 0 :
+ $self->{hwBgpPeerRemoteAsImportant} ? 1 : 0;
+ } else {
+ # hwBgpPeerLastError may be undef, at least under the following
circumstances
+ # hwBgpPeerRemoteAsName is "", hwBgpPeerAdminStatus is "start",
+ # hwBgpPeerState is "active"
+ $self->add_message($self->{hwBgpPeerRemoteAsImportant} ? CRITICAL : OK,
+ sprintf "peer %s (AS%s) state is %s (last error: %s, local address:
%s)",
+ $self->{hwBgpPeerRemoteAddr},
+ $self->{hwBgpPeerRemoteAs}.$self->{hwBgpPeerRemoteAsName},
+ $self->{hwBgpPeerState},
+ $self->{hwBgpPeerLastError}||"no error",
+ $self->{hwBgpPeerSessionLocalAddr}
+ );
+ $self->{hwBgpPeerFaulty} = $self->{hwBgpPeerRemoteAsImportant} ? 1 : 0;
+ }
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/check_nwc_health-8.3.3.2/plugins-scripts/Classes/Huawei.pm
new/check_nwc_health-8.4/plugins-scripts/Classes/Huawei.pm
--- old/check_nwc_health-8.3.3.2/plugins-scripts/Classes/Huawei.pm
2019-05-23 16:02:39.000000000 +0200
+++ new/check_nwc_health-8.4/plugins-scripts/Classes/Huawei.pm 2021-06-30
17:16:58.000000000 +0200
@@ -18,6 +18,20 @@
$self->analyze_and_check_cpu_subsystem("Classes::Huawei::Component::CpuSubsystem");
} elsif ($self->mode =~ /device::hardware::memory/) {
$self->analyze_and_check_mem_subsystem("Classes::Huawei::Component::MemSubsystem");
+ } elsif ($self->mode =~ /device::bgp/) {
+ if ($self->implements_mib('HUAWEI-BGP-VPN-MIB',
'hwBgpPeerAddrFamilyTable')) {
+
$self->analyze_and_check_interface_subsystem("Classes::Huawei::Component::PeerSubsystem");
+ } else {
+ $self->establish_snmp_secondary_session();
+ if ($self->implements_mib('HUAWEI-BGP-VPN-MIB',
'hwBgpPeerAddrFamilyTable')) {
+
$self->analyze_and_check_interface_subsystem("Classes::Huawei::Component::PeerSubsystem");
+ } else {
+ $self->establish_snmp_session();
+ $self->debug("no HUAWEI-BGP-VPN-MIB and/or no
hwBgpPeerAddrFamilyTable, fallback");
+ $self->no_such_mode();
+ }
+ }
+
} else {
$self->no_such_mode();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/check_nwc_health-8.3.3.2/plugins-scripts/Classes/UCDMIB/Components/MemSubsystem.pm
new/check_nwc_health-8.4/plugins-scripts/Classes/UCDMIB/Components/MemSubsystem.pm
---
old/check_nwc_health-8.3.3.2/plugins-scripts/Classes/UCDMIB/Components/MemSubsystem.pm
2018-12-12 19:25:42.000000000 +0100
+++
new/check_nwc_health-8.4/plugins-scripts/Classes/UCDMIB/Components/MemSubsystem.pm
2021-06-16 23:46:55.680000000 +0200
@@ -7,11 +7,15 @@
$self->get_snmp_objects('UCD-SNMP-MIB', (qw(
memTotalSwap memTotalReal memTotalFree memAvailReal
memBuffer memCached memShared)));
-
# basically buffered memory can always be freed up (filesystem cache)
# https://kc.mcafee.com/corporate/index?page=content&id=KB73175
+ # 16.6.21 memShared fliegt raus, das zaehlt ab jetzt nicht mehr zu
+ # potentiell freizukriegendem Speicher. Mir scheissegal, ob das Ergebnis
+ # dann stimmt. Nach 10 Jahren Rumgefrickel habe ich es satt, ab jetzt wird
+ # das alles so hingebastelt, da?? ich so wenige Tickets wie moeglich
+ # auf den Tisch bekomme.
my $mem_available = $self->{memAvailReal};
- foreach (qw(memBuffer memCached memShared)) {
+ foreach (qw(memBuffer memCached)) {
$mem_available += $self->{$_} if defined($self->{$_});
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/check_nwc_health-8.3.3.2/plugins-scripts/Makefile.am
new/check_nwc_health-8.4/plugins-scripts/Makefile.am
--- old/check_nwc_health-8.3.3.2/plugins-scripts/Makefile.am 2021-05-20
14:02:00.590294100 +0200
+++ new/check_nwc_health-8.4/plugins-scripts/Makefile.am 2021-06-30
17:18:22.940000000 +0200
@@ -82,6 +82,7 @@
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/FOUNDRYSNSWL4SWITCHGROUPMIB.pm
\
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/GENUAMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HH3CENTITYEXTMIB.pm \
+ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIENTITYEXTENTMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HOSTRESOURCESMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HPICFCHASSIS.pm \
@@ -285,6 +286,7 @@
Classes/Huawei/Component/EnvironmentalSubsystem.pm \
Classes/Huawei/Component/CpuSubsystem.pm \
Classes/Huawei/Component/MemSubsystem.pm \
+ Classes/Huawei/Component/PeerSubsystem.pm \
Classes/Huawei/CloudEngine.pm \
Classes/Huawei.pm \
Classes/HP/Procurve/Component/MemSubsystem.pm \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/check_nwc_health-8.3.3.2/plugins-scripts/Makefile.in
new/check_nwc_health-8.4/plugins-scripts/Makefile.in
--- old/check_nwc_health-8.3.3.2/plugins-scripts/Makefile.in 2021-05-31
17:34:16.930000000 +0200
+++ new/check_nwc_health-8.4/plugins-scripts/Makefile.in 2021-06-30
20:27:53.680000000 +0200
@@ -324,6 +324,7 @@
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/FOUNDRYSNSWL4SWITCHGROUPMIB.pm
\
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/GENUAMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HH3CENTITYEXTMIB.pm \
+ ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIBGPVPNMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HUAWEIENTITYEXTENTMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HOSTRESOURCESMIB.pm \
../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/HPICFCHASSIS.pm \
@@ -528,6 +529,7 @@
Classes/Huawei/Component/EnvironmentalSubsystem.pm \
Classes/Huawei/Component/CpuSubsystem.pm \
Classes/Huawei/Component/MemSubsystem.pm \
+ Classes/Huawei/Component/PeerSubsystem.pm \
Classes/Huawei/CloudEngine.pm \
Classes/Huawei.pm \
Classes/HP/Procurve/Component/MemSubsystem.pm \