diff --git a/html/images/os/eaton.png b/html/images/os/eaton.png new file mode 100644 index 000000000..aac4df54a Binary files /dev/null and b/html/images/os/eaton.png differ diff --git a/includes/discovery/current/xups.inc.php b/includes/discovery/current/xups.inc.php new file mode 100644 index 000000000..504860ba8 --- /dev/null +++ b/includes/discovery/current/xups.inc.php @@ -0,0 +1,60 @@ + 1) $descr .= " Phase $i"; + $current = snmp_get($device, $current_oid, "-Oqv"); + $type = "xups"; + $divisor = 1; + $index = "4.4.1.3.".$i; + echo discover_sensor($valid_sensor, 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current); + } + + $oids = trim(snmp_walk($device, "xupsInputCurrent", "-OsqnU")); + if ($debug) { echo($oids."\n"); } + list($unused,$numPhase) = explode(' ',$oids); + for($i = 1; $i <= $numPhase;$i++) + { + $current_oid = "1.3.6.1.4.1.534.1.3.4.1.3.$i"; + $descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i"; + $current = snmp_get($device, $current_oid, "-Oqv"); + $type = "xups"; + $divisor = 1; + $index = "3.4.1.3.".$i; + echo discover_sensor($valid_sensor, 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current); + } +} + +?> diff --git a/includes/discovery/frequencies/xups.inc.php b/includes/discovery/frequencies/xups.inc.php new file mode 100644 index 000000000..9dff13c11 --- /dev/null +++ b/includes/discovery/frequencies/xups.inc.php @@ -0,0 +1,44 @@ + diff --git a/includes/discovery/voltages/xups.inc.php b/includes/discovery/voltages/xups.inc.php index 87f8ca98e..6296f21b9 100644 --- a/includes/discovery/voltages/xups.inc.php +++ b/includes/discovery/voltages/xups.inc.php @@ -5,7 +5,7 @@ global $valid_sensor; ## XUPS-MIB if ($device['os'] == "powerware") { - echo("XUPS "); + echo("XUPS-MIB "); # XUPS-MIB::xupsBatVoltage.0 = INTEGER: 51 $oids = snmp_walk($device, "xupsBatVoltage", "-Osqn", "XUPS-MIB"); @@ -51,13 +51,29 @@ if ($device['os'] == "powerware") list($unused,$numPhase) = explode(' ',$oids); for($i = 1; $i <= $numPhase;$i++) { + # XUPS-MIB::xupsOutputVoltage.1 = INTEGER: 228 $volt_oid = ".1.3.6.1.4.1.534.1.4.4.1.2.$i"; - $descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i"; + $descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i"; $type = "xups"; $divisor = 1; $current = snmp_get($device, $volt_oid, "-Oqv") / $divisor; $index = '4.4.1.2.'.$i; echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current); } + + # XUPS-MIB::xupsBypassNumPhases.0 = INTEGER: 1 + $oids = trim(snmp_walk($device, "xupsBypassNumPhases", "-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.534.1.5.3.1.2.$i"; + $descr = "Bypass"; if ($numPhase > 1) $descr .= " Phase $i"; + $type = "xups"; + $divisor = 1; + $current = snmp_get($device, $volt_oid, "-Oqv") / $divisor; + $index = '5.3.1.2.'.$i; + echo discover_sensor($valid_sensor, 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', NULL, NULL, NULL, NULL, $current); + } } ?> \ No newline at end of file diff --git a/includes/polling/frequencies.inc.php b/includes/polling/frequencies.inc.php index d2cf08b0b..9142a5414 100644 --- a/includes/polling/frequencies.inc.php +++ b/includes/polling/frequencies.inc.php @@ -2,18 +2,16 @@ $query = "SELECT * FROM `sensors` WHERE device_id = '" . $device['device_id'] . "' AND `sensor_class` = 'freq'"; $sensor_data = mysql_query($query); -while($frequency = mysql_fetch_array($sensor_data)) { +while($sensor = mysql_fetch_array($sensor_data)) { - echo("Checking frequency " . $frequency['sensor_descr'] . "... "); + echo("Checking frequency " . $sensor['sensor_descr'] . "... "); - $freq = snmp_get($device, $frequency['sensor_oid'], "-OUqnv", "SNMPv2-MIB"); + $freq = snmp_get($device, $sensor['sensor_oid'], "-OUqnv", "SNMPv2-MIB"); - if ($frequency['sensor_precision']) - { - $freq = $freq / $frequency['sensor_precision']; - } - - $rrd_file = $config['rrd_dir'] . "/" . $device['hostname'] . "/" . safename("freq-" . $frequency['sensor_descr'] . ".rrd"); + if ($sensor['sensor_divisor']) { $freq = $freq / $sensor['sensor_divisor']; } + if ($sensor['sensor_multiplier']) { $freq = $freq * $sensor['sensor_multiplier']; } + + $rrd_file = $config['rrd_dir'] . "/" . $device['hostname'] . "/" . safename("freq-" . $sensor['sensor_descr'] . ".rrd"); if (!is_file($rrd_file)) { `rrdtool create $rrd_file \ @@ -29,26 +27,26 @@ while($frequency = mysql_fetch_array($sensor_data)) { rrdtool_update($rrd_file,"N:$freq"); - if($frequency['sensor_current'] > $frequency['sensor_limit_low'] && $freq <= $frequency['sensor_limit_low']) + if($sensor['sensor_current'] > $sensor['sensor_limit_low'] && $freq <= $sensor['sensor_limit_low']) { if($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['email_default']; } - $msg = "Frequency Alarm: " . $device['hostname'] . " " . $frequency['sensor_descr'] . " is " . $freq . "Hz (Limit " . $frequency['sensor_limit']; + $msg = "Frequency Alarm: " . $device['hostname'] . " " . $sensor['sensor_descr'] . " is " . $freq . "Hz (Limit " . $sensor['sensor_limit']; $msg .= "Hz) at " . date($config['timestamp_format']); - notify($device, "Frequency Alarm: " . $device['hostname'] . " " . $frequency['sensor_descr'], $msg); - echo("Alerting for " . $device['hostname'] . " " . $frequency['sensor_descr'] . "\n"); - log_event('Frequency ' . $frequency['sensor_descr'] . " under threshold: " . $freq . " Hz (< " . $frequency['sensor_limit_low'] . " Hz)", $device['device_id'] , 'frequency', $frequency['sensor_id']); + notify($device, "Frequency Alarm: " . $device['hostname'] . " " . $sensor['sensor_descr'], $msg); + echo("Alerting for " . $device['hostname'] . " " . $sensor['sensor_descr'] . "\n"); + log_event('Frequency ' . $sensor['sensor_descr'] . " under threshold: " . $freq . " Hz (< " . $sensor['sensor_limit_low'] . " Hz)", $device['device_id'] , 'frequency', $sensor['sensor_id']); } - else if($frequency['sensor_current'] < $frequency['sensor_limit'] && $freq >= $frequency['sensor_limit']) + else if($sensor['sensor_current'] < $sensor['sensor_limit'] && $freq >= $sensor['sensor_limit']) { if($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['email_default']; } - $msg = "Frequency Alarm: " . $device['hostname'] . " " . $frequency['sensor_descr'] . " is " . $freq . "Hz (Limit " . $frequency['sensor_limit']; + $msg = "Frequency Alarm: " . $device['hostname'] . " " . $sensor['sensor_descr'] . " is " . $freq . "Hz (Limit " . $sensor['sensor_limit']; $msg .= "Hz) at " . date($config['timestamp_format']); - notify($device, "Frequency Alarm: " . $device['hostname'] . " " . $frequency['sensor_descr'], $msg); - echo("Alerting for " . $device['hostname'] . " " . $frequency['sensor_descr'] . "\n"); - log_event('Frequency ' . $frequency['sensor_descr'] . " above threshold: " . $freq . " Hz (> " . $frequency['sensor_limit'] . " Hz)", $device['device_id'], 'frequency', $frequency['sensor_id']); + notify($device, "Frequency Alarm: " . $device['hostname'] . " " . $sensor['sensor_descr'], $msg); + echo("Alerting for " . $device['hostname'] . " " . $sensor['sensor_descr'] . "\n"); + log_event('Frequency ' . $sensor['sensor_descr'] . " above threshold: " . $freq . " Hz (> " . $sensor['sensor_limit'] . " Hz)", $device['device_id'], 'frequency', $sensor['sensor_id']); } - mysql_query("UPDATE frequency SET sensor_current = '$freq' WHERE sensor_id = '" . $frequency['sensor_id'] . "'"); + mysql_query("UPDATE frequency SET sensor_current = '$freq' WHERE sensor_id = '" . $sensor['sensor_id'] . "'"); } ?> diff --git a/includes/polling/ups.inc.php b/includes/polling/ups.inc.php new file mode 100644 index 000000000..58f2c4a96 --- /dev/null +++ b/includes/polling/ups.inc.php @@ -0,0 +1,21 @@ + diff --git a/includes/static-config.php b/includes/static-config.php index 31db7d96c..e5eddc357 100644 --- a/includes/static-config.php +++ b/includes/static-config.php @@ -255,6 +255,7 @@ $config['os'][$os]['type'] = "power"; $os = "powerware"; $config['os'][$os]['text'] = "Powerware UPS"; $config['os'][$os]['type'] = "power"; +$config['os'][$os]['icon'] = "eaton"; $os = "deltaups"; $config['os'][$os]['text'] = "Delta UPS"; @@ -280,7 +281,6 @@ $config['os'][$os]['over'][1]['text'] = "CPU Usage"; $config['os'][$os]['over'][2]['graph'] = "device_mempools"; $config['os'][$os]['over'][2]['text'] = "Memory Usage"; - $os = "speedtouch"; $config['os'][$os]['text'] = "Thomson Speedtouch"; $config['os'][$os]['ifname'] = 1; @@ -288,7 +288,6 @@ $config['os'][$os]['type'] = "network"; $config['os'][$os]['over'][0]['graph'] = "device_bits"; $config['os'][$os]['over'][0]['text'] = "Traffic"; - $os = "sonicwal"; $config['os'][$os]['text'] = "SonicWALL"; $config['os'][$os]['type'] = "firewall";