mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
fix: Mitigate Cisco IOS 15 Stack State Issue (#8256)
This commit is contained in:
committed by
Neil Lathwood
parent
8ae48d9543
commit
f8cceceeb6
@@ -2,7 +2,7 @@
|
|||||||
/*
|
/*
|
||||||
* LibreNMS
|
* LibreNMS
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 Søren Friis Rosiak <sorenrosiak@gmail.com>
|
* Copyright (c) 2018 Søren Friis Rosiak <sorenrosiak@gmail.com>
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the
|
* under the terms of the GNU General Public License as published by the
|
||||||
* Free Software Foundation, either version 3 of the License, or (at your
|
* Free Software Foundation, either version 3 of the License, or (at your
|
||||||
@@ -10,6 +10,9 @@
|
|||||||
* the source code distribution for details.
|
* the source code distribution for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$role_data = snmpwalk_cache_oid($device, 'cswSwitchRole', array(), 'CISCO-STACKWISE-MIB');
|
||||||
|
$redundant_data = snmp_get($device, "cswRingRedundant.0", "-OQv", "CISCO-STACKWISE-MIB");
|
||||||
|
|
||||||
$tables = array(
|
$tables = array(
|
||||||
array('ciscoEnvMonVoltageStatusTable','.1.3.6.1.4.1.9.9.13.1.2.1.7.','ciscoEnvMonVoltageState','ciscoEnvMonVoltageStatusDescr', 'CISCO-ENVMON-MIB') ,
|
array('ciscoEnvMonVoltageStatusTable','.1.3.6.1.4.1.9.9.13.1.2.1.7.','ciscoEnvMonVoltageState','ciscoEnvMonVoltageStatusDescr', 'CISCO-ENVMON-MIB') ,
|
||||||
array('ciscoEnvMonTemperatureStatusTable','.1.3.6.1.4.1.9.9.13.1.3.1.6.','ciscoEnvMonTemperatureState','ciscoEnvMonTemperatureStatusDescr', 'CISCO-ENVMON-MIB') ,
|
array('ciscoEnvMonTemperatureStatusTable','.1.3.6.1.4.1.9.9.13.1.3.1.6.','ciscoEnvMonTemperatureState','ciscoEnvMonTemperatureStatusDescr', 'CISCO-ENVMON-MIB') ,
|
||||||
@@ -26,6 +29,11 @@ $tables = array(
|
|||||||
);
|
);
|
||||||
|
|
||||||
foreach ($tables as $tablevalue) {
|
foreach ($tables as $tablevalue) {
|
||||||
|
//Some switches on 15.x expose this information regardless if they are stacked or not, we try to mitigate that by doing the following.
|
||||||
|
if (($tablevalue[0] == 'cswGlobals' || $tablevalue[0] == 'cswSwitchRole' || $tablevalue[0] == 'cswSwitchState' || $tablevalue[0] == 'cswStackPortOperStatus') && $redundant_data == 'false' && count($role_data) == 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$temp = snmpwalk_cache_multi_oid($device, $tablevalue[0], array(), $tablevalue[4]);
|
$temp = snmpwalk_cache_multi_oid($device, $tablevalue[0], array(), $tablevalue[4]);
|
||||||
$cur_oid = $tablevalue[1];
|
$cur_oid = $tablevalue[1];
|
||||||
|
|
||||||
@@ -162,3 +170,5 @@ foreach ($tables as $tablevalue) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unset($role_data, $redundant_data);
|
||||||
|
Reference in New Issue
Block a user