mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
newdevice: Add more sensor detection for Mikrotik devices #5387
This commit is contained in:
committed by
Neil Lathwood
parent
d2ff7148c2
commit
3d0cf76e9b
14
includes/discovery/sensors/current/mikrotik.inc.php
Normal file
14
includes/discovery/sensors/current/mikrotik.inc.php
Normal 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);
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
14
includes/discovery/sensors/power/mikrotik.inc.php
Normal file
14
includes/discovery/sensors/power/mikrotik.inc.php
Normal 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);
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user