mirror of
https://github.com/librenms/librenms.git
synced 2024-09-23 03:18:54 +00:00
argh, clean up fucked up patches, add galaxy pw autodiscovery to mgeups
git-svn-id: http://www.observium.org/svn/observer/trunk@1098 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
parent
bdf1cdf7f6
commit
52933eeb0d
@ -77,107 +77,6 @@ if ($device['os'] == "mgeups")
|
||||
}
|
||||
|
||||
|
||||
## Delete removed sensors
|
||||
|
||||
if($debug) { print_r($freq_exists); }
|
||||
|
||||
$sql = "SELECT * FROM frequency WHERE device_id = '".$device['device_id']."'";
|
||||
if ($query = mysql_query($sql))
|
||||
{
|
||||
while ($test_freq = mysql_fetch_array($query))
|
||||
{
|
||||
$index = $test_freq['freq_index'];
|
||||
$type = $test_freq['freq_type'];
|
||||
if($debug) { echo("$type -> $index\n"); }
|
||||
if(!$freq_exists[$type][$index]) {
|
||||
echo("-");
|
||||
mysql_query("DELETE FROM `frequency` WHERE freq_id = '" . $test_freq['freq_id'] . "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($fan_exists); echo("\n");
|
||||
|
||||
?>
|
||||
<?php
|
||||
$id = $device['device_id'];
|
||||
$hostname = $device['hostname'];
|
||||
$community = $device['community'];
|
||||
$snmpver = $device['snmpver'];
|
||||
$port = $device['port'];
|
||||
|
||||
echo("Frequencies : ");
|
||||
|
||||
## MGE UPS Frequencies
|
||||
|
||||
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++)
|
||||
{
|
||||
$freq_oid = ".1.3.6.1.4.1.705.1.7.2.1.3.$i.0";
|
||||
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $freq_oid, "-Oqv") / 10;
|
||||
$type = "mge-ups";
|
||||
$precision = 10;
|
||||
$index = $i;
|
||||
if ($current > 55 && $current < 65)
|
||||
{
|
||||
#FIXME Are these sensible values?
|
||||
$lowlimit = 58;
|
||||
$limit = 62;
|
||||
}
|
||||
else if ($current > 45 && $current < 55)
|
||||
{
|
||||
#FIXME Are these sensible values?
|
||||
$lowlimit = 48;
|
||||
$limit = 52;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lowlimit = 0;
|
||||
$limit = 0;
|
||||
}
|
||||
echo discover_freq($device, $freq_oid, $index, $type, $descr, $precision, $lowlimit, $limit, $current);
|
||||
$freq_exists[$type][$index] = 1;
|
||||
}
|
||||
$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++)
|
||||
{
|
||||
$freq_oid = ".1.3.6.1.4.1.705.1.6.2.1.3.$i.0";
|
||||
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
|
||||
$current = snmp_get($device, $freq_oid, "-Oqv") / 10;
|
||||
$type = "mge-ups";
|
||||
$precision = 10;
|
||||
$index = 100+$i;
|
||||
if ($current > 55 && $current < 65)
|
||||
{
|
||||
#FIXME Are these sensible values?
|
||||
$lowlimit = 58;
|
||||
$limit = 62;
|
||||
}
|
||||
else if ($current > 45 && $current < 55)
|
||||
{
|
||||
#FIXME Are these sensible values?
|
||||
$lowlimit = 48;
|
||||
$limit = 52;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lowlimit = 0;
|
||||
$limit = 0;
|
||||
}
|
||||
echo discover_freq($device, $freq_oid, $index, $type, $descr, $precision, $lowlimit, $limit, $current);
|
||||
$freq_exists[$type][$index] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## Delete removed sensors
|
||||
|
||||
if($debug) { print_r($freq_exists); }
|
||||
|
@ -8,23 +8,3 @@ $port = $device['port'];
|
||||
|
||||
echo("UPS : ");
|
||||
?>
|
||||
<?php
|
||||
|
||||
$id = $device['device_id'];
|
||||
$hostname = $device['hostname'];
|
||||
$community = $device['community'];
|
||||
$snmpver = $device['snmpver'];
|
||||
$port = $device['port'];
|
||||
|
||||
echo("UPS : ");
|
||||
?>
|
||||
<?php
|
||||
|
||||
$id = $device['device_id'];
|
||||
$hostname = $device['hostname'];
|
||||
$community = $device['community'];
|
||||
$snmpver = $device['snmpver'];
|
||||
$port = $device['port'];
|
||||
|
||||
echo("UPS : ");
|
||||
?>
|
||||
|
@ -3,24 +3,7 @@
|
||||
if(!$os) {
|
||||
|
||||
if(strstr($sysDescr, "Pulsar M")) { $os = "mgeups"; }
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
if(!$os) {
|
||||
|
||||
if(strstr($sysDescr, "Pulsar M")) { $os = "mgeups"; }
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
if(!$os) {
|
||||
|
||||
if(strstr($sysDescr, "Pulsar M")) { $os = "mgeups"; }
|
||||
if(strstr($sysDescr, "Galaxy PW")) { $os = "mgeups"; }
|
||||
|
||||
}
|
||||
|
||||
|
@ -53,58 +53,3 @@ while($frequency = mysql_fetch_array($freq_data)) {
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
$query = "SELECT * FROM frequency WHERE device_id = '" . $device['device_id'] . "'";
|
||||
$freq_data = mysql_query($query);
|
||||
while($frequency = mysql_fetch_array($freq_data)) {
|
||||
|
||||
echo("Checking frequency " . $frequency['freq_descr'] . "... ");
|
||||
|
||||
$freq_cmd = $config['snmpget'] . " -m SNMPv2-MIB -O Uqnv -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " " . $frequency['freq_oid'] . "|grep -v \"No Such Instance\"";
|
||||
$freq = trim(str_replace("\"", "", shell_exec($freq_cmd)));
|
||||
|
||||
if ($frequency['freq_precision'])
|
||||
{
|
||||
$freq = $freq / $frequency['freq_precision'];
|
||||
}
|
||||
|
||||
$freqrrd = $config['rrd_dir'] . "/" . $device['hostname'] . "/" . safename("freq-" . $frequency['freq_descr'] . ".rrd");
|
||||
|
||||
if (!is_file($freqrrd)) {
|
||||
`rrdtool create $freqrrd \
|
||||
--step 300 \
|
||||
DS:freq:GAUGE:600:-273:1000 \
|
||||
RRA:AVERAGE:0.5:1:1200 \
|
||||
RRA:MIN:0.5:12:2400 \
|
||||
RRA:MAX:0.5:12:2400 \
|
||||
RRA:AVERAGE:0.5:12:2400`;
|
||||
}
|
||||
|
||||
echo($freq . " Hz\n");
|
||||
|
||||
rrdtool_update($freqrrd,"N:$freq");
|
||||
|
||||
if($frequency['freq_current'] > $frequency['freq_limit_low'] && $freq <= $frequency['freq_limit_low'])
|
||||
{
|
||||
if($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['email_default']; }
|
||||
$msg = "Frequency Alarm: " . $device['hostname'] . " " . $frequency['freq_descr'] . " is " . $freq . "Hz (Limit " . $frequency['freq_limit'];
|
||||
$msg .= "Hz) at " . date($config['timestamp_format']);
|
||||
mail($email, "Frequency Alarm: " . $device['hostname'] . " " . $frequency['freq_descr'], $msg, $config['email_headers']);
|
||||
echo("Alerting for " . $device['hostname'] . " " . $frequency['freq_descr'] . "\n");
|
||||
eventlog('Frequency ' . $frequency['freq_descr'] . " under threshold: " . $frequency['freq_current'] . " Hz (> " . $frequency['freq_limit'] . " Hz)", $device['device_id']);
|
||||
}
|
||||
else if($frequency['freq_current'] < $frequency['freq_limit'] && $freq >= $frequency['freq_limit'])
|
||||
{
|
||||
if($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['email_default']; }
|
||||
$msg = "Frequency Alarm: " . $device['hostname'] . " " . $frequency['freq_descr'] . " is " . $freq . "Hz (Limit " . $frequency['freq_limit'];
|
||||
$msg .= "Hz) at " . date($config['timestamp_format']);
|
||||
mail($email, "Frequency Alarm: " . $device['hostname'] . " " . $frequency['freq_descr'], $msg, $config['email_headers']);
|
||||
echo("Alerting for " . $device['hostname'] . " " . $frequency['freq_descr'] . "\n");
|
||||
eventlog('Frequency ' . $frequency['freq_descr'] . " above threshold: " . $frequency['freq_current'] . " Hz (< " . $frequency['freq_limit'] . " Hz)", $device['device_id']);
|
||||
}
|
||||
|
||||
mysql_query("UPDATE frequency SET freq_current = '$freq' WHERE freq_id = '" . $frequency['freq_id'] . "'");
|
||||
}
|
||||
|
||||
?>
|
||||
|
Loading…
Reference in New Issue
Block a user