From 89f302c491fd5a3a7f472cf507b1e248c10ef8cc Mon Sep 17 00:00:00 2001 From: Tom Laermans Date: Wed, 10 Feb 2010 11:20:09 +0000 Subject: [PATCH] discovery complete for voltage and fanspeed on supermicro git-svn-id: http://www.observium.org/svn/observer/trunk@801 61d68cd4-352d-0410-923a-c4978735b2b8 --- database-update.sql | 1 + includes/discovery/fanspeeds.php | 40 +++++++++++++++++------------ includes/discovery/temperatures.php | 40 +++++++++++++++++------------ includes/discovery/voltages.php | 38 ++++++++++++++++----------- 4 files changed, 70 insertions(+), 49 deletions(-) diff --git a/database-update.sql b/database-update.sql index feb0263d24..f8ba5c6931 100644 --- a/database-update.sql +++ b/database-update.sql @@ -98,3 +98,4 @@ CREATE TABLE `fanspeed` ( PRIMARY KEY (`fan_id`), KEY `fan_host` (`fan_host`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; +ALTER TABLE `voltage` ADD `volt_limit_low` int(11) NULL DEFAULT NULL AFTER `volt_limit`; diff --git a/includes/discovery/fanspeeds.php b/includes/discovery/fanspeeds.php index 86f379a3df..317df5c065 100644 --- a/includes/discovery/fanspeeds.php +++ b/includes/discovery/fanspeeds.php @@ -62,25 +62,31 @@ if ($device['os'] == "linux") list($oid,$type) = explode(" ", $data); if ($type == 0) { - $fan_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; - $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; - $limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.6$oid"; - $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); - $fan = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $fan_oid")); - $limit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $limit_oid")); - $descr = str_ireplace("Speed", "", $descr); - $descr = trim($descr); - if (mysql_result(mysql_query("SELECT count(fan_id) FROM `fanspeed` WHERE fan_oid = '$fan_oid' AND fan_host = '$id'"),0) == '0') + $fan_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; + $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; + $limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.6$oid"; + $divisor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.9$oid"; + $monitor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.10$oid"; + $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); + $fan = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $fan_oid")); + $limit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $limit_oid")); + $divisor = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $divisor_oid")); + $monitor = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $monitor_oid")); + if ($monitor == 'true') { - $query = "INSERT INTO fanspeed (`fan_host`, `fan_oid`, `fan_descr`, `fan_current`, `fan_limit`) values ('$id', '$fan_oid', '$descr', '$fan', '$limit')"; - mysql_query($query); - echo("+"); - } - else - { - echo("."); + $descr = trim(str_replace(" Fan","",str_ireplace("Speed", "", $descr))); + if (mysql_result(mysql_query("SELECT count(fan_id) FROM `fanspeed` WHERE fan_oid = '$fan_oid' AND fan_host = '$id'"),0) == '0') + { + $query = "INSERT INTO fanspeed (`fan_host`, `fan_oid`, `fan_descr`, `fan_current`, `fan_limit`) values ('$id', '$fan_oid', '$descr', '$fan', '$limit')"; + mysql_query($query); + echo("+"); + } + else + { + echo("."); + } + $fan_exists[] = "$id $fan_oid"; } - $fan_exists[] = "$id $fan_oid"; } } } diff --git a/includes/discovery/temperatures.php b/includes/discovery/temperatures.php index bf2cdb3743..c3d5dff471 100755 --- a/includes/discovery/temperatures.php +++ b/includes/discovery/temperatures.php @@ -196,25 +196,31 @@ if ($device['os'] == "linux") list($oid,$type) = explode(" ", $data); if ($type == 2) { - $temp_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; - $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; - $limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.5$oid"; - $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); - $temp = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $temp_oid")); - $limit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $limit_oid")); - $descr = str_ireplace("temperature", "", $descr); - $descr = trim($descr); - if (mysql_result(mysql_query("SELECT count(temp_id) FROM `temperature` WHERE temp_oid = '$temp_oid' AND temp_host = '$id'"),0) == '0') + $temp_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; + $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; + $limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.5$oid"; + $divisor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.9$oid"; + $monitor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.10$oid"; + $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); + $temp = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $temp_oid")); + $limit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $limit_oid")); + $divisor = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $divisor_oid")); + $monitor = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $monitor_oid")); + if ($monitor == 'true') { - $query = "INSERT INTO temperature (`temp_host`, `temp_oid`, `temp_descr`, `temp_current`, `temp_limit`) values ('$id', '$temp_oid', '$descr', '$temp', '$limit')"; - mysql_query($query); - echo("+"); - } - else - { - echo("."); + $descr = trim(str_ireplace("temperature", "", $descr)); + if (mysql_result(mysql_query("SELECT count(temp_id) FROM `temperature` WHERE temp_oid = '$temp_oid' AND temp_host = '$id'"),0) == '0') + { + $query = "INSERT INTO temperature (`temp_host`, `temp_oid`, `temp_descr`, `temp_current`, `temp_limit`, `temp_precision`) values ('$id', '$temp_oid', '$descr', '$temp', '$limit','$divisor')"; + mysql_query($query); + echo("+"); + } + else + { + echo("."); + } + $temp_exists[] = "$id $temp_oid"; } - $temp_exists[] = "$id $temp_oid"; } } } diff --git a/includes/discovery/voltages.php b/includes/discovery/voltages.php index f0769f0280..c61b683012 100755 --- a/includes/discovery/voltages.php +++ b/includes/discovery/voltages.php @@ -62,23 +62,31 @@ if ($device['os'] == "linux") list($oid,$type) = explode(" ", $data); if ($type == 1) { - $volt_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; - $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; - $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); - $volt = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $volt_oid")); - $descr = str_ireplace("Voltage", "", $descr); - $descr = trim($descr); - if (mysql_result(mysql_query("SELECT count(volt_id) FROM `voltage` WHERE volt_oid = '$volt_oid' AND volt_host = '$id'"),0) == '0') + $volt_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.4$oid"; + $descr_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.2$oid"; + $monitor_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.10$oid"; + $limit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.5$oid"; + $lowlimit_oid = "1.3.6.1.4.1.10876.2.1.1.1.1.6$oid"; + $descr = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $descr_oid")); + $volt = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $volt_oid")); + $monitor = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $monitor_oid")); + $limit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $limit_oid")); + $lowlimit = trim(shell_exec($config['snmpget'] . " -m SUPERMICRO-HEALTH-MIB -O qv -$snmpver -c $community $hostname:$port $lowlimit_oid")); + if ($monitor == 'true') { - $query = "INSERT INTO voltage (`volt_host`, `volt_oid`, `volt_descr`, `volt_current`, `volt_limit`) values ('$id', '$volt_oid', '$descr', '$volt', '-1')"; - mysql_query($query); - echo("+"); - } - else - { - echo("."); + $descr = trim(str_ireplace("Voltage", "", $descr)); + if (mysql_result(mysql_query("SELECT count(volt_id) FROM `voltage` WHERE volt_oid = '$volt_oid' AND volt_host = '$id'"),0) == '0') + { + $query = "INSERT INTO voltage (`volt_host`, `volt_oid`, `volt_descr`, `volt_current`, `volt_limit`, `volt_limit_low`, `volt_precision`) values ('$id', '$volt_oid', '$descr', '$volt', '$limit','$lowlimit','1000')"; + mysql_query($query); + echo("+"); + } + else + { + echo("."); + } + $volt_exists[] = "$id $volt_oid"; } - $volt_exists[] = "$id $volt_oid"; } } }