mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Add XUPS-MIB, basic powerware detection and temperature readings, split up voltages polling into separate files + minor fixes
git-svn-id: http://www.observium.org/svn/observer/trunk@1585 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
+2
-2
@@ -3,14 +3,14 @@ Adding a new device class (os type)
|
||||
===================================
|
||||
|
||||
Create a file in includes/discovery/os, which fills the OS type variable if
|
||||
you can identify the device as such (sysDescr or similar). Please use a
|
||||
you can identify the device as such (sysDescr, sysObjectId or similar). Please use a
|
||||
meaningful name!
|
||||
|
||||
Adjust discovery.php, running specific command based on OS type, if needed.
|
||||
|
||||
Create includes/polling/os/$osname.inc.php, for device specific polling.
|
||||
|
||||
Add an OS text name in includes/static-config.php
|
||||
Add an OS text name and possibly other settings in includes/static-config.php
|
||||
|
||||
If desired, create a 32x32 logo, in html/images/os/$osname.png.
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
if (!$os) {
|
||||
|
||||
if (preg_match("/D-Link .* AP/", $sysDescr)) { $os = "dlinkap"; }
|
||||
else if (preg_match("/D-Link DAP-/", $sysDescr)) { $os = "dlinkap"; }
|
||||
else if (preg_match("/D-Link Access Point/", $sysDescr)) { $os = "dlinkap"; }
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
if(!$os)
|
||||
{
|
||||
|
||||
if (strstr($sysObjectId, ".1.3.6.1.4.1.534")) { $os = "powerware"; }
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
echo("Temperatures : ");
|
||||
echo("Temperatures: ");
|
||||
|
||||
include_dir("includes/discovery/temperatures");
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
if($device['os'] == "powerware")
|
||||
{
|
||||
# XUPS-MIB::xupsEnvAmbientTemp.0 = INTEGER: 52
|
||||
# XUPS-MIB::xupsEnvAmbientLowerLimit.0 = INTEGER: 0
|
||||
# XUPS-MIB::xupsEnvAmbientUpperLimit.0 = INTEGER: 70
|
||||
$oids = snmp_walk($device, "xupsEnvAmbientTemp", "-Osqn", "XUPS-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
$oids = trim($oids);
|
||||
if ($oids) echo("Powerware Ambient Temperature ");
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$descr) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$temperature_id = $split_oid[count($split_oid)-1];
|
||||
$temperature_oid = ".1.3.6.1.4.1.534.1.6.1.$temperature_id";
|
||||
$lowlimit = snmp_get($device,"upsEnvAmbientLowerLimit.$temperature_id", "-Ovq", "XUPS-MIB");
|
||||
$highlimit = snmp_get($device,"upsEnvAmbientUpperLimit.$temperature_id", "-Ovq", "XUPS-MIB");
|
||||
$temperature = snmp_get($device, $temperature_oid, "-Ovq");
|
||||
$descr = "Ambient" . (count(explode("\n",$oids)) == 1 ? '' : ' ' . ($temperature_id+1));
|
||||
discover_sensor($valid_sensor, 'temperature', $device, $temperature_oid, '1.6.1.'.$temperature_id, 'powerware', $descr, '1', '1', $lowlimit, NULL, NULL, $highlimit, $temperature);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,309 +1,8 @@
|
||||
<?php
|
||||
|
||||
echo("Voltages : ");
|
||||
echo("Voltages: ");
|
||||
|
||||
## LMSensors Voltages
|
||||
if ($device['os'] == "linux")
|
||||
{
|
||||
$oids = snmp_walk($device, "lmVoltSensorsDevice", "-OsqnU", "LM-SENSORS-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("LM-SENSORS ");
|
||||
$divisor = 1000;
|
||||
$type = "lmsensors";
|
||||
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];
|
||||
$oid = "1.3.6.1.4.1.2021.13.16.4.1.3." . $index;
|
||||
$current = snmp_get($device, $oid, "-Oqv", "LM-SENSORS-MIB") / $divisor;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
## Areca Voltages
|
||||
if ($device['os'] == "areca")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.18928.1.2.2.1.8.1.2", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("Areca ");
|
||||
$divisor = 1000;
|
||||
$type = "areca";
|
||||
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];
|
||||
$oid = "1.3.6.1.4.1.18928.1.2.2.1.8.1.3." . $index;
|
||||
$current = snmp_get($device, $oid, "-Oqv", "") / $divisor;
|
||||
if ($descr != '"Battery Status"' || $current != 0.255) # FIXME not sure if this is supposed to be a voltage, but without BBU it's 225, then ignore.
|
||||
{
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
## APC Voltages
|
||||
if ($device['os'] == "apc")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.318.1.1.8.5.3.3.1.3", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("APC In ");
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$current) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-3];
|
||||
$oid = "1.3.6.1.4.1.318.1.1.8.5.3.3.1.3." . $index . ".1.1";
|
||||
$descr = "Input Feed " . chr(64+$index);
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, "3.3.1.3.$index", $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.318.1.1.8.5.4.3.1.3", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo(" APC Out ");
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$current) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-3];
|
||||
$oid = "1.3.6.1.4.1.318.1.1.8.5.4.3.1.3." . $index . ".1.1";
|
||||
$descr = "Output Feed"; if (count(explode("\n", $oids)) > 1) { $descr .= " $index"; }
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, "4.3.1.3.$index", $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.3.2.1.0", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids)
|
||||
{
|
||||
echo(" APC In ");
|
||||
list($oid,$current) = explode(" ",$oids);
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
$index = "3.2.1.0";
|
||||
$descr = "Input";
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.4.2.1.0", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids)
|
||||
{
|
||||
echo(" APC Out ");
|
||||
list($oid,$current) = explode(" ",$oids);
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
$index = "4.2.1.0";
|
||||
$descr = "Output";
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
|
||||
## Supermicro Voltages
|
||||
if ($device['os'] == "linux")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.10876.2.1.1.1.1.3", "-OsqnU", "SUPERMICRO-HEALTH-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
$oids = trim($oids);
|
||||
if ($oids) echo("Supermicro ");
|
||||
$type = "supermicro";
|
||||
$divisor = "1000";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$kind) = explode(" ", $data);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-1];
|
||||
if ($kind == 1)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4.".$index;
|
||||
$descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2.".$index;
|
||||
$monitor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.10.".$index;
|
||||
$limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.5.".$index;
|
||||
$lowlimit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.6.".$index;
|
||||
|
||||
$descr = snmp_get($device, $descr_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB");
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$limit = snmp_get($device, $limit_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$monitor = snmp_get($device, $monitor_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB");
|
||||
$descr = trim(str_ireplace("Voltage", "", $descr));
|
||||
|
||||
if ($monitor == 'true')
|
||||
{
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', $lowlimit, NULL, $limit, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
## MGE UPS Voltages
|
||||
if ($device['os'] == "mgeups")
|
||||
{
|
||||
echo("MGE ");
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.7.1", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.4.1.705.1.7.2.1.2.$i";
|
||||
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
if (!$current)
|
||||
{
|
||||
$volt_oid .= ".0";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
}
|
||||
$current /= 10;
|
||||
$type = "mge-ups";
|
||||
$divisor = 10;
|
||||
$index = $i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.6.1", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.4.1.705.1.6.2.1.2.$i";
|
||||
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
if (!$current)
|
||||
{
|
||||
$volt_oid .= ".0";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
}
|
||||
$current /= 10;
|
||||
$type = "mge-ups";
|
||||
$divisor = 10;
|
||||
$index = 100+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
|
||||
## RFC1628 UPS Voltages
|
||||
if ($device['os'] == "netmanplus" || $device['os'] == "deltaups")
|
||||
{
|
||||
echo("RFC1628 ");
|
||||
|
||||
$oids = snmp_walk($device, "1.3.6.1.2.1.33.1.2.5", "-Osqn", "UPS-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
$oids = trim($oids);
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$descr) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$volt_id = $split_oid[count($split_oid)-1];
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.2.5.$volt_id";
|
||||
$divisor = 10;
|
||||
$volt = snmp_get($device, $volt_oid, "-O vq") / $divisor;
|
||||
#$volt = trim(shell_exec($config['snmpget'] . " -O qv -$snmpver -c $community $hostname:$port $volt_oid")) / $divisor;
|
||||
$descr = "Battery" . (count(explode("\n",$oids)) == 1 ? '' : ' ' . ($volt_id+1));
|
||||
$type = "rfc1628";
|
||||
$index = "1.2.5.".$volt_id;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.4.3.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.4.4.1.2.$i";
|
||||
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = $i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.3.2.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.3.3.1.3.$i";
|
||||
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = 100+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.5.2.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.5.3.1.2.$i";
|
||||
$descr = "Bypass"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = 200+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
|
||||
if ($device['os'] == "gamatronicups")
|
||||
{
|
||||
for($i = 1; $i <= 3 ;$i++)
|
||||
{
|
||||
$volt_oid = "GAMATRONIC-MIB::gamatronicLTD.5.4.1.1.2.$i";
|
||||
$descr = "Input Phase $i";
|
||||
$volt = snmp_get($device, $volt_oid, "-Oqv");
|
||||
$type = "gamatronicups";
|
||||
$divisor = 1;
|
||||
$index = $i;
|
||||
$lowlimit = 0;
|
||||
$limit = NULL;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
|
||||
for($i = 1; $i <= 3 ;$i++)
|
||||
{
|
||||
$volt_oid = "GAMATRONIC-MIB::gamatronicLTD.5.5.1.1.2.$i";
|
||||
$descr = "Output Phase $i";
|
||||
$volt = snmp_get($device, $volt_oid, "-Oqv");
|
||||
$type = "gamatronicups";
|
||||
$divisor = 1;
|
||||
$index = 100+$i;
|
||||
$lowlimit = 0;
|
||||
$limit = NULL;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
|
||||
}
|
||||
include_dir("includes/discovery/voltages");
|
||||
|
||||
if($debug) { print_r($valid['voltage']); }
|
||||
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## APC Voltages
|
||||
if ($device['os'] == "apc")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.318.1.1.8.5.3.3.1.3", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("APC In ");
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$current) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-3];
|
||||
$oid = "1.3.6.1.4.1.318.1.1.8.5.3.3.1.3." . $index . ".1.1";
|
||||
$descr = "Input Feed " . chr(64+$index);
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, "3.3.1.3.$index", $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.318.1.1.8.5.4.3.1.3", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo(" APC Out ");
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$current) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-3];
|
||||
$oid = "1.3.6.1.4.1.318.1.1.8.5.4.3.1.3." . $index . ".1.1";
|
||||
$descr = "Output Feed"; if (count(explode("\n", $oids)) > 1) { $descr .= " $index"; }
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, "4.3.1.3.$index", $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.3.2.1.0", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids)
|
||||
{
|
||||
echo(" APC In ");
|
||||
list($oid,$current) = explode(" ",$oids);
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
$index = "3.2.1.0";
|
||||
$descr = "Input";
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.4.2.1.0", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids)
|
||||
{
|
||||
echo(" APC Out ");
|
||||
list($oid,$current) = explode(" ",$oids);
|
||||
$divisor = 1;
|
||||
$type = "apc";
|
||||
$index = "4.2.1.0";
|
||||
$descr = "Output";
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## Areca Voltages
|
||||
if ($device['os'] == "areca")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.18928.1.2.2.1.8.1.2", "-OsqnU", "");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("Areca ");
|
||||
$divisor = 1000;
|
||||
$type = "areca";
|
||||
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];
|
||||
$oid = "1.3.6.1.4.1.18928.1.2.2.1.8.1.3." . $index;
|
||||
$current = snmp_get($device, $oid, "-Oqv", "") / $divisor;
|
||||
if ($descr != '"Battery Status"' || $current != 0.255) # FIXME not sure if this is supposed to be a voltage, but without BBU it's 225, then ignore.
|
||||
{
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
if ($device['os'] == "gamatronicups")
|
||||
{
|
||||
for($i = 1; $i <= 3 ;$i++)
|
||||
{
|
||||
$volt_oid = "GAMATRONIC-MIB::gamatronicLTD.5.4.1.1.2.$i";
|
||||
$descr = "Input Phase $i";
|
||||
$volt = snmp_get($device, $volt_oid, "-Oqv");
|
||||
$type = "gamatronicups";
|
||||
$divisor = 1;
|
||||
$index = $i;
|
||||
$lowlimit = 0;
|
||||
$limit = NULL;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
|
||||
for($i = 1; $i <= 3 ;$i++)
|
||||
{
|
||||
$volt_oid = "GAMATRONIC-MIB::gamatronicLTD.5.5.1.1.2.$i";
|
||||
$descr = "Output Phase $i";
|
||||
$volt = snmp_get($device, $volt_oid, "-Oqv");
|
||||
$type = "gamatronicups";
|
||||
$divisor = 1;
|
||||
$index = 100+$i;
|
||||
$lowlimit = 0;
|
||||
$limit = NULL;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## LMSensors Voltages
|
||||
if ($device['os'] == "linux")
|
||||
{
|
||||
$oids = snmp_walk($device, "lmVoltSensorsDevice", "-OsqnU", "LM-SENSORS-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
if ($oids) echo("LM-SENSORS ");
|
||||
$divisor = 1000;
|
||||
$type = "lmsensors";
|
||||
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];
|
||||
$oid = "1.3.6.1.4.1.2021.13.16.4.1.3." . $index;
|
||||
$current = snmp_get($device, $oid, "-Oqv", "LM-SENSORS-MIB") / $divisor;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## MGE UPS Voltages
|
||||
if ($device['os'] == "mgeups")
|
||||
{
|
||||
echo("MGE ");
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.7.1", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.4.1.705.1.7.2.1.2.$i";
|
||||
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
if (!$current)
|
||||
{
|
||||
$volt_oid .= ".0";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
}
|
||||
$current /= 10;
|
||||
$type = "mge-ups";
|
||||
$divisor = 10;
|
||||
$index = $i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.6.1", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.4.1.705.1.6.2.1.2.$i";
|
||||
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
if (!$current)
|
||||
{
|
||||
$volt_oid .= ".0";
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv");
|
||||
}
|
||||
$current /= 10;
|
||||
$type = "mge-ups";
|
||||
$divisor = 10;
|
||||
$index = 100+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## RFC1628 UPS Voltages
|
||||
if ($device['os'] == "netmanplus" || $device['os'] == "deltaups")
|
||||
{
|
||||
echo("RFC1628 ");
|
||||
|
||||
$oids = snmp_walk($device, "1.3.6.1.2.1.33.1.2.5", "-Osqn", "UPS-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
$oids = trim($oids);
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$descr) = explode(" ", $data,2);
|
||||
$split_oid = explode('.',$oid);
|
||||
$volt_id = $split_oid[count($split_oid)-1];
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.2.5.$volt_id";
|
||||
$divisor = 10;
|
||||
$volt = snmp_get($device, $volt_oid, "-O vq") / $divisor;
|
||||
#$volt = trim(shell_exec($config['snmpget'] . " -O qv -$snmpver -c $community $hostname:$port $volt_oid")) / $divisor;
|
||||
$descr = "Battery" . (count(explode("\n",$oids)) == 1 ? '' : ' ' . ($volt_id+1));
|
||||
$type = "rfc1628";
|
||||
$index = "1.2.5.".$volt_id;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $volt);
|
||||
}
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.4.3.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.4.4.1.2.$i";
|
||||
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = $i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.3.2.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.3.3.1.3.$i";
|
||||
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = 100+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.5.2.0", "-OsqnU"));
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
list($unused,$numPhase) = explode(' ',$oids);
|
||||
for($i = 1; $i <= $numPhase;$i++)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.2.1.33.1.5.3.1.2.$i";
|
||||
$descr = "Bypass"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$type = "rfc1628";
|
||||
$divisor = 10; if ($device['os'] == "netmanplus") { $divisor = 1; };
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv") / $divisor;
|
||||
$index = 200+$i;
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
global $valid_sensor;
|
||||
|
||||
## Supermicro Voltages
|
||||
if ($device['os'] == "linux")
|
||||
{
|
||||
$oids = snmp_walk($device, "1.3.6.1.4.1.10876.2.1.1.1.1.3", "-OsqnU", "SUPERMICRO-HEALTH-MIB");
|
||||
if ($debug) { echo($oids."\n"); }
|
||||
$oids = trim($oids);
|
||||
if ($oids) echo("Supermicro ");
|
||||
$type = "supermicro";
|
||||
$divisor = "1000";
|
||||
foreach(explode("\n", $oids) as $data)
|
||||
{
|
||||
$data = trim($data);
|
||||
if ($data)
|
||||
{
|
||||
list($oid,$kind) = explode(" ", $data);
|
||||
$split_oid = explode('.',$oid);
|
||||
$index = $split_oid[count($split_oid)-1];
|
||||
if ($kind == 1)
|
||||
{
|
||||
$volt_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4.".$index;
|
||||
$descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2.".$index;
|
||||
$monitor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.10.".$index;
|
||||
$limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.5.".$index;
|
||||
$lowlimit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.6.".$index;
|
||||
|
||||
$descr = snmp_get($device, $descr_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB");
|
||||
$current = snmp_get($device, $volt_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$limit = snmp_get($device, $limit_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB") / $divisor;
|
||||
$monitor = snmp_get($device, $monitor_oid, "-Oqv", "SUPERMICRO-HEALTH-MIB");
|
||||
$descr = trim(str_ireplace("Voltage", "", $descr));
|
||||
|
||||
if ($monitor == 'true')
|
||||
{
|
||||
echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', $lowlimit, NULL, $limit, NULL, $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -252,6 +252,10 @@ $os = "gamatronicups";
|
||||
$config['os'][$os]['text'] = "Gamatronic UPS Stack";
|
||||
$config['os'][$os]['type'] = "power";
|
||||
|
||||
$os = "powerware";
|
||||
$config['os'][$os]['text'] = "Powerware UPS";
|
||||
$config['os'][$os]['type'] = "power";
|
||||
|
||||
$os = "deltaups";
|
||||
$config['os'][$os]['text'] = "Delta UPS";
|
||||
$config['os'][$os]['type'] = "power";
|
||||
|
||||
+2379
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user