From 34209dd893a7cddf7e4e5cde6016d9922ed67fff Mon Sep 17 00:00:00 2001 From: Tom Laermans Date: Wed, 9 Jun 2010 19:08:53 +0000 Subject: [PATCH] add temperature polling for harddisks connected to areca controllers git-svn-id: http://www.observium.org/svn/observer/trunk@1120 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/discovery/temperatures.inc.php | 29 +++++++++++++++++++++---- includes/polling/device-areca.inc.php | 7 ++++++ includes/static-config.php | 2 ++ 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 includes/polling/device-areca.inc.php diff --git a/includes/discovery/temperatures.inc.php b/includes/discovery/temperatures.inc.php index cd5ea0bafc..00498868d9 100755 --- a/includes/discovery/temperatures.inc.php +++ b/includes/discovery/temperatures.inc.php @@ -44,7 +44,6 @@ if($device['os'] == "ironware") } } - ## JunOS Temperatures if ($device['os'] == "junos" || $device['os_group'] == "junos") { @@ -77,6 +76,31 @@ if ($device['os'] == "junos" || $device['os_group'] == "junos") } } +## Areca Harddisk Temperatures +if ($device['os'] == "areca") +{ + $oids = shell_exec($config['snmpwalk'] . " -$snmpver -CI -Osqn -c $community $hostname:$port SNMPv2-SMI::enterprises.18928.1.1.2.14.1.2"); + if ($debug) { echo($oids."\n"); } + $oids = trim($oids); + if ($oids) echo("Areca "); + foreach(explode("\n", $oids) as $data) + { + $data = trim($data); + if ($data) + { + list($oid,$descr) = explode(" ", $data,2); + $split_oid = explode('.',$oid); + $temp_id = $split_oid[count($split_oid)-1]; + $temp_oid = "1.3.6.1.4.1.18928.1.1.2.14.1.2.$temp_id"; + $temp = trim(shell_exec($config['snmpget'] . " -O qv -$snmpver -c $community $hostname:$port $temp_oid")); + $descr = "Hard disk $temp_id"; + if ($temp != -128) + { + discover_temperature($valid_temp, $device, $temp_oid, $temp_id, "areca", $descr, 1, NULL, NULL, NULL); + } + } + } +} ## Papouch TME Temperatures if ($device['os'] == "papouch-tme") @@ -90,8 +114,6 @@ if ($device['os'] == "papouch-tme") $descr = trim(str_replace("\"", "", $descr)); discover_temperature($valid_temp, $device, $temp_oid, "1", "ironware", $descr, "10", NULL, NULL, $temp); - - $temp_exists[] = "$id $temp_oid"; } } @@ -216,7 +238,6 @@ if ($device['os'] == "ios") $descr = trim($descr); discover_temperature($valid_temp, $device, $oid, $index, "cisco", $descr, "1", NULL, NULL, $temp); - $temp_exists[] = $device['device_id'] . " $oid"; } } } diff --git a/includes/polling/device-areca.inc.php b/includes/polling/device-areca.inc.php new file mode 100644 index 0000000000..b0e0c1ed26 --- /dev/null +++ b/includes/polling/device-areca.inc.php @@ -0,0 +1,7 @@ + diff --git a/includes/static-config.php b/includes/static-config.php index 401c573ce2..b2096866b1 100644 --- a/includes/static-config.php +++ b/includes/static-config.php @@ -66,6 +66,8 @@ $os_text['dell-laser'] = "Dell Laser Printer"; $os_text['adva'] = "Adva"; $os_text['allied'] = "AlliedWare"; $os_text['mgeups'] = "MGE UPS"; +$os_text['apc'] = "APC"; +$os_text['areca'] = "Areca RAID Subsystem"; if(!$config['graph_colours']['greens']) { $config['graph_colours']['greens'] = array('B6D14B','91B13C','6D912D','48721E','24520F','003300');