mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-12 16:06:25 +02:00
Temperature Support for Synology
The poller return now the correct value for the System temperature. Check in my Synology.
This commit is contained in:
@@ -31,6 +31,7 @@ Contributors to LibreNMS:
|
||||
- Thom Seddon <thom@seddonmedia.co.uk> (thomseddon)
|
||||
- Vitali Kari <vitali.kari@gmail.com> (vitalisator)
|
||||
- James Campbell <neokjames@gmail.com> (neokjames)
|
||||
- Steve Calvário <calvario.steve@gmail.com> (Calvario)
|
||||
|
||||
[1]: http://observium.org/ "Observium web site"
|
||||
|
||||
|
||||
@@ -1,21 +1,34 @@
|
||||
<?php
|
||||
|
||||
if ($device['os'] == 'dsm') {
|
||||
echo "DSM ";
|
||||
$oid = '2';
|
||||
$temp_oid = '.1.3.6.1.4.1.6574.1.2';
|
||||
$current = snmp_get($device,$temp_oid,"-Oqv");
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $temp_oid, $oid, 'snmp', 'System Temperature', '1', '1', NULL, NULL, NULL, NULL, $current);
|
||||
|
||||
$disks = snmpwalk_cache_multi_oid($device, "diskTable", array(), "SYNOLOGY-DISK-MIB");
|
||||
if (is_array($disks)) {
|
||||
$cur_oid = '.1.3.6.1.4.1.6574.2.1.1.6.';
|
||||
foreach ($disks as $index => $entry) {
|
||||
$oid = $index;
|
||||
$disk_oid = $cur_oid.$index;
|
||||
$current = $entry['diskTemperature'];
|
||||
$descr = $entry['diskID'] . ' ' . $entry['diskModel'];
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $disk_oid, $oid, 'snmp', $descr, '1', '1', NULL, NULL, NULL, NULL, $current);
|
||||
echo "DSM temperature ";
|
||||
|
||||
// DiskStation Temperature
|
||||
$diskstation_temperature_oid = '.1.3.6.1.4.1.6574.1.2.0';
|
||||
// DiskStation Disk Temperature
|
||||
$disk_temperature_oid = '.1.3.6.1.4.1.6574.2.1.1.6.';
|
||||
|
||||
|
||||
// Get DiskStation temperature
|
||||
$diskstation_temperature = snmp_get($device, $diskstation_temperature_oid, "-Oqv");
|
||||
// Save the DiskStation temperature
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $diskstation_temperature_oid, '2', 'snmp', 'System Temperature', '1', '1', NULL, NULL, NULL, NULL, $diskstation_temperature);
|
||||
|
||||
|
||||
// Get all disks in the device
|
||||
$disks = snmpwalk_cache_multi_oid($device, 'diskTable', array(), 'SYNOLOGY-DISK-MIB');
|
||||
// Parse all disks in the device to get the temperature
|
||||
if (is_array($disks)) {
|
||||
foreach ($disks as $disk_number => $entry) {
|
||||
// Get the disk temperature full oid
|
||||
$disk_oid = $disk_temperature_oid.$disk_number;
|
||||
// Get the temperature for the disk
|
||||
$disk_temperature = $entry['diskTemperature'];
|
||||
// Getting the disk information (Number and model)
|
||||
$disk_information = $entry['diskID'] . ' ' . $entry['diskModel'];
|
||||
// Save the temperature for the disk
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $disk_oid, $disk_number, 'snmp', $disk_information, '1', '1', NULL, NULL, NULL, NULL, $disk_temperature);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user