mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* fix: Updated qnap sensor code to be more generic #5910 * small change to check for valid data * small code change
This commit is contained in:
@@ -14,17 +14,23 @@ echo 'QNAP: ';
|
||||
|
||||
$fan_descr_oid = '.1.3.6.1.4.1.24681.1.2.15.1.2';
|
||||
$fan_speed_oid = '.1.3.6.1.4.1.24681.1.2.15.1.3';
|
||||
$descr_oid = '24681.1.2.15.1.2.';
|
||||
$speed_oid = '24681.1.2.15.1.3.';
|
||||
|
||||
$fans_descr = snmpwalk_cache_multi_oid($device, $fan_descr_oid, array());
|
||||
$fans_speed = snmpwalk_cache_multi_oid($device, $fan_speed_oid, array());
|
||||
$fans_descr = snmpwalk_cache_numerical_oid($device, $fan_descr_oid, array(), null, null, '-OQUsn');
|
||||
$fans_speed = snmpwalk_cache_numerical_oid($device, $fan_speed_oid, array(), null, null, '-OQUsn');
|
||||
|
||||
if (is_array($fans_speed) && !empty($fans_speed)) {
|
||||
foreach ($fans_speed as $index => $entry) {
|
||||
$index = str_replace($speed_oid, '', $index);
|
||||
$fan_speed = $entry['enterprises'];
|
||||
$fan_serial = str_replace('"', '', $fans_descr[$descr_oid . $index]['enterprises']);
|
||||
discover_sensor($valid['sensor'], 'fanspeed', $device, $fan_speed_oid . '.' . $index, $index, 'snmp', $fan_serial, '1', '1', null, null, null, null, $fan_speed);
|
||||
$oid = $fan_speed_oid . '.' . $index;
|
||||
$fan_oid = $fan_descr_oid . '.' . $index;
|
||||
$fan_speed = $entry[$oid];
|
||||
$fan_serial = $fans_descr[$index][$fan_oid];
|
||||
if ($fan_speed) {
|
||||
discover_sensor($valid['sensor'], 'fanspeed', $device, $oid, $index, 'snmp', $fan_serial, '1', '1', null, null, null, null, $fan_speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset(
|
||||
$fans_descr,
|
||||
$fans_speed
|
||||
);
|
||||
|
@@ -16,27 +16,30 @@ $system_temperature_oid = '.1.3.6.1.4.1.24681.1.3.6.0';
|
||||
$system_temperature = snmp_get($device, $system_temperature_oid, '-Oqv');
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $system_temperature_oid, '99', 'snmp', 'System Temperature', '1', '1', null, null, null, null, $system_temperature);
|
||||
|
||||
$temps_oid = '24681.1.2.11.1.3.';
|
||||
$serials_oid = '24681.1.2.11.1.5.';
|
||||
|
||||
$disk_temperature_oid = '.1.3.6.1.4.1.24681.1.2.11.1.3';
|
||||
$disk_serial_oid = '1.3.6.1.4.1.24681.1.2.11.1.5';
|
||||
$disk_serial_oid = '.1.3.6.1.4.1.24681.1.2.11.1.5';
|
||||
|
||||
$hdd_temps = snmpwalk_cache_multi_oid($device, $disk_temperature_oid, array());
|
||||
$hdd_serials = snmpwalk_cache_multi_oid($device, $disk_serial_oid, array());
|
||||
$hdd_temps = snmpwalk_cache_numerical_oid($device, $disk_temperature_oid, array(), null, null, '-OQUsn');
|
||||
$hdd_serials = snmpwalk_cache_numerical_oid($device, $disk_serial_oid, array(), null, null, '-OQUsn');
|
||||
|
||||
if (is_array($hdd_temps) && !empty($hdd_temps)) {
|
||||
foreach ($hdd_temps as $index => $entry) {
|
||||
$index = str_replace($temps_oid, '', $index);
|
||||
$disk_temperature = $entry['enterprises'];
|
||||
$disk_serial = str_replace('"', '', $hdd_serials[$serials_oid . $index]['enterprises']);
|
||||
|
||||
$oid = $disk_temperature_oid . '.' . $index;
|
||||
$disk_oid = $disk_serial_oid . '.' . $index;
|
||||
$disk_temperature = $entry[$oid];
|
||||
$disk_serial = $hdd_serials[$index][$disk_oid];
|
||||
if ($disk_serial == '--') {
|
||||
$disk_descr = "HDD $index empty bay";
|
||||
} else {
|
||||
$disk_descr = "HDD $index $disk_serial";
|
||||
}
|
||||
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $disk_temperature_oid . '.' . $index, $index, 'snmp', $disk_descr, '1', '1', null, null, null, null, $disk_temperature);
|
||||
if ($disk_temperature) {
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, 'snmp', $disk_descr, '1', '1', null, null, null, null, $disk_temperature);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset(
|
||||
$hdd_temps,
|
||||
$hdd_serials
|
||||
);
|
||||
|
Reference in New Issue
Block a user