newdevice: Add more sensor detection for Mikrotik devices #5387

This commit is contained in:
David Bell
2017-01-13 11:34:02 +00:00
committed by Neil Lathwood
parent d2ff7148c2
commit 3d0cf76e9b
4 changed files with 58 additions and 26 deletions

View File

@@ -0,0 +1,14 @@
<?php
if ($device['os'] == 'routeros') {
echo 'MIKROTIK-MIB ';
$input_oid = '.1.3.6.1.4.1.14988.1.1.3.13.0'; // MIKROTIK-MIB::mtxrHlCurrent
$input_value = snmp_get($device, $input_oid, '-Oqv');
$descr = 'Current';
$divisor = 1000;
if (is_numeric($input_value) && $input_value > 0) {
discover_sensor($valid['sensor'], 'current', $device, $input_oid, 0, $device['os'], $descr, $divisor, 1, null, null, null, null, $input_value / $divisor);
}
}

View File

@@ -1,28 +1,19 @@
<?php
if ($device['os'] == 'routeros') {
$oids = snmp_walk($device, 'mtxrHlActiveFan', '-OsqnU', 'MIKROTIK-MIB');
d_echo($oids."\n");
$descr_prefix = 'fan ';
$oids = array(
'.1.3.6.1.4.1.14988.1.1.3.17.0', // MIKROTIK-MIB::mtxrHlFanSpeed1.0
'.1.3.6.1.4.1.14988.1.1.3.18.0', // MIKROTIK-MIB::mtxrHlFanSpeed2.0
);
if ($oids !== false) {
echo 'MIKROTIK-MIB ';
}
foreach ($oids as $index => $oid) {
$value = trim(snmp_get($device, $oid, '-Oqv'), '"');
$divisor = 1;
$type = 'mikrotik';
foreach (explode("\n", $oids) as $data) {
$data = trim($data);
if ($data) {
list($oid,$descr) = explode(' ', $data, 2);
$split_oid = explode('.', $oid);
$index = $split_oid[(count($split_oid) - 1)];
$descr = 'Fan '.$index;
$oid = '.1.3.6.1.4.1.14988.1.1.3.9.'.$index;
$fanspeed = (snmp_get($device, $oid, '-Oqv') / $divisor);
if ($fanspeed > 0) {
discover_sensor($valid['sensor'], 'fanspeed', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $fanspeed);
}
if (is_numeric($value)) {
$descr = $descr_prefix . ($index + 1);
discover_sensor($valid['sensor'], 'fanspeed', $device, $oid, $index, 'snmp', $descr, 1, 1, null, null, null, null, $value);
}
}
}

View File

@@ -0,0 +1,14 @@
<?php
if ($device['os'] == 'routeros') {
echo 'MIKROTIK-MIB ';
// Power Usage
$descr = "Power Usage";
$oid = ".1.3.6.1.4.1.14988.1.1.3.12.0"; // MIKROTIK-MIB::mtxrHlPower
$value = snmp_get($device, $oid, '-Oqv');
$divisor = "10";
if (is_numeric($value)) {
discover_sensor($valid['sensor'], 'power', $device, $oid, '1', 'power', $descr, $divisor, 1, null, null, null, null, $value / $divisor);
}
}

View File

@@ -1,16 +1,13 @@
<?php
if ($device['os'] == 'routeros') {
$oids = snmp_walk($device, 'mtxrHlTemperature', '-OsqnU', 'MIKROTIK-MIB');
d_echo($oids."\n");
if ($oids !== false) {
echo 'MIKROTIK-MIB ';
}
$divisor = 10.0;
$type = 'mikrotik';
$oids = snmp_walk($device, 'mtxrHlTemperature', '-OsqnU', 'MIKROTIK-MIB');
foreach (explode("\n", $oids) as $data) {
$data = trim($data);
if ($data) {
@@ -24,4 +21,20 @@ if ($device['os'] == 'routeros') {
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $temperature);
}
}
$oids = snmp_walk($device, 'mtxrHlProcessorTemperature', '-OsqnU', 'MIKROTIK-MIB');
foreach (explode("\n", $oids) as $data) {
$data = trim($data);
if ($data) {
list($oid,$descr) = explode(' ', $data, 2);
$split_oid = explode('.', $oid);
$index = $split_oid[(count($split_oid) - 1)];
$descr = 'Processor Temperature '.$index;
$oid = '.1.3.6.1.4.1.14988.1.1.3.11.'.$index;
$temperature = (snmp_get($device, $oid, '-Oqv') / $divisor);
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $temperature);
}
}
}