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:
		@@ -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"; }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								includes/discovery/os/powerware.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								includes/discovery/os/powerware.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								includes/discovery/temperatures/xups.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								includes/discovery/temperatures/xups.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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']); }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										73
									
								
								includes/discovery/voltages/apc.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								includes/discovery/voltages/apc.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										30
									
								
								includes/discovery/voltages/areca.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								includes/discovery/voltages/areca.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										34
									
								
								includes/discovery/voltages/gamatronicups.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								includes/discovery/voltages/gamatronicups.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										27
									
								
								includes/discovery/voltages/linux.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								includes/discovery/voltages/linux.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										48
									
								
								includes/discovery/voltages/mgeups.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								includes/discovery/voltages/mgeups.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										74
									
								
								includes/discovery/voltages/rfc1628.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								includes/discovery/voltages/rfc1628.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										45
									
								
								includes/discovery/voltages/supermicro.inc.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								includes/discovery/voltages/supermicro.inc.php
									
									
									
									
									
										Normal file
									
								
							@@ -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
									
								
								mibs/XUPS-MIB
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2379
									
								
								mibs/XUPS-MIB
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user