From 59fc5ffcbf68534d4ea0cff56d0c0bfd6c1ce4dd Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Thu, 9 Feb 2017 08:00:23 +0000 Subject: [PATCH] newdevice: Improved sensor support for Dell servers #5242 (#5803) * newdevice: Improved sensor support for Dell servers #5242 * added missing files * small update * Update dell.inc.php --- includes/discovery/sensors.inc.php | 2 + includes/discovery/sensors/power/dell.inc.php | 48 +++++++++++++++++++ .../discovery/sensors/voltages/dell.inc.php | 48 +++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 includes/discovery/sensors/power/dell.inc.php create mode 100644 includes/discovery/sensors/voltages/dell.inc.php diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php index 838ddddc3d..421fe4e7d8 100644 --- a/includes/discovery/sensors.inc.php +++ b/includes/discovery/sensors.inc.php @@ -20,6 +20,8 @@ if ($device['os'] == 'openbsd') { if (strstr($device['hardware'], 'Dell')) { include 'includes/discovery/sensors/fanspeeds/dell.inc.php'; + include 'includes/discovery/sensors/power/dell.inc.php'; + include 'includes/discovery/sensors/voltages/dell.inc.php'; include 'includes/discovery/sensors/states/dell.inc.php'; include 'includes/discovery/sensors/temperatures/dell.inc.php'; } diff --git a/includes/discovery/sensors/power/dell.inc.php b/includes/discovery/sensors/power/dell.inc.php new file mode 100644 index 0000000000..6ee094a584 --- /dev/null +++ b/includes/discovery/sensors/power/dell.inc.php @@ -0,0 +1,48 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2017 Neil Lathwood + * @author Neil Lathwood + */ + +$temp = snmpwalk_cache_multi_oid($device, 'amperageProbeTableEntry', array(), 'MIB-Dell-10892'); +$cur_oid = '.1.3.6.1.4.1.674.10892.1.600.30.1.6.1.'; + +foreach ((array)$temp as $index => $entry) { + $descr = $entry['amperageProbeLocationName']; + if ($entry['amperageProbeType'] === 'amperageProbeTypeIsSystemWatts') { + $divisor = 1; + $value = $entry['amperageProbeReading']; + $lowlimit = $entry['amperageProbeLowerCriticalThreshold'] / $divisor; + $low_warn_limit = $entry['amperageProbeLowerCriticalThreshold'] / $divisor; + $warnlimit = $entry['amperageProbeUpperNonCriticalThreshold'] / $divisor; + $limit = $entry['amperageProbeUpperCriticalThreshold'] / $divisor; + + discover_sensor($valid['sensor'], 'power', $device, $cur_oid . $index, $index, 'dell', $descr, $divisor, '1', $lowlimit, $low_warn_limit, $warnlimit, $limit, $value, 'snmp', $index); + } +} + +unset( + $temp, + $cur_oid, + $index, + $entry +); diff --git a/includes/discovery/sensors/voltages/dell.inc.php b/includes/discovery/sensors/voltages/dell.inc.php new file mode 100644 index 0000000000..831c847ea5 --- /dev/null +++ b/includes/discovery/sensors/voltages/dell.inc.php @@ -0,0 +1,48 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2017 Neil Lathwood + * @author Neil Lathwood + */ + +$temp = snmpwalk_cache_multi_oid($device, 'voltageProbeTable', array(), 'MIB-Dell-10892'); +$cur_oid = '.1.3.6.1.4.1.674.10892.1.600.20.1.6.'; + +foreach ((array)$temp as $index => $entry) { + $descr = $entry['voltageProbeLocationName']; + if ($entry['voltageProbeType'] != 'voltageProbeTypeIsDiscrete') { + $divisor = 1000; + $value = $entry['voltageProbeReading']; + $lowlimit = $entry['voltageProbeLowerCriticalThreshold'] / $divisor; + $low_warn_limit = $entry['voltageProbeLowerCriticalThreshold'] / $divisor; + $warnlimit = $entry['voltageProbeUpperNonCriticalThreshold'] / $divisor; + $limit = $entry['voltageProbeUpperCriticalThreshold'] / $divisor; + + discover_sensor($valid['sensor'], 'voltage', $device, $cur_oid . $index, $index, 'dell', $descr, $divisor, '1', $lowlimit, $low_warn_limit, $warnlimit, $limit, $value, 'snmp', $index); + } +} + +unset( + $temp, + $cur_oid, + $index, + $entry +);