$entry) { if ($entry["hwEnclosure0{$encNum}VolIndex"]) { $descr = $name . ' (' . $encNum . ') ' . $entry["hwEnclosure0{$encNum}VolDesc"]; $oid_num = ".1.3.6.1.4.1.18928.1.2.2." . ($encNum+1) . ".8.1.3.$index"; $oid_name = "hwEnclosure0{$encNum}VolValue"; $value = $entry[$oid_name]; //discover_sensor('voltage', $device, $oid_num, "$oid_name.$index", 'areca', $descr, 0.001, $value); $options = [ 'rename_rrd' => "areca-$oid_name.%index%" ]; discover_sensor_ng($device, 'voltage', $mib, $oid_name, $oid_num, $index, NULL, $descr, 0.001, $value, $options); } if ($entry["hwEnclosure0{$encNum}FanIndex"]) { $descr = $name . ' (' . $encNum . ') ' . $entry["hwEnclosure0{$encNum}FanDesc"]; $oid_num = ".1.3.6.1.4.1.18928.1.2.2." . ($encNum+1) . ".9.1.3.$index"; $oid_name = "hwEnclosure0{$encNum}FanSpeed"; $value = $entry[$oid_name]; //discover_sensor('fanspeed', $device, $oid_num, "$oid_name.$index", 'areca', $descr, 1, $value); $options = [ 'rename_rrd' => "areca-$oid_name.%index%" ]; discover_sensor_ng($device, 'fanspeed', $mib, $oid_name, $oid_num, $index, NULL, $descr, 1, $value, $options); } if ($entry["hwEnclosure0{$encNum}TempIndex"]) { $descr = $name . ' (' . $encNum . ') ' . $entry["hwEnclosure0{$encNum}TempDesc"]; $oid_num = ".1.3.6.1.4.1.18928.1.2.2." . ($encNum+1) . ".10.1.3.$index"; $oid_name = "hwEnclosure0{$encNum}TempValue"; $value = $entry[$oid_name]; //discover_sensor('temperature', $device, $oid_num, "$oid_name.$index", 'areca', $descr, 1, $value); $options = [ 'rename_rrd' => "areca-$oid_name.%index%" ]; discover_sensor_ng($device, 'temperature', $mib, $oid_name, $oid_num, $index, NULL, $descr, 1, $value, $options); } if ($entry["hwEnclosure0{$encNum}PowerIndex"]) { $descr = $name . ' (' . $encNum . ') ' . $entry["hwEnclosure0{$encNum}PowerDesc"]; $oid_num = ".1.3.6.1.4.1.18928.1.2.2." . ($encNum+1) . ".7.1.3.$index"; $oid_name = "hwEnclosure0{$encNum}PowerState"; $value = $entry[$oid_name]; //discover_status($device, $oid, "hwEnclosure0{$encNum}PowerState.$index", 'areca-power-state', $descr, $value, array('entPhysicalClass' => 'power')); discover_status_ng($device, $mib, $oid_name, $oid_num, $index, 'areca-power-state', $descr, $value, [ 'entPhysicalClass' => 'power' ]); } } } // SAS HDD enclosure statuses for ($encNum = 1; $encNum <= 8; $encNum++) { $table = "hddEnclosure$encNum"; $enclosures = snmpwalk_cache_oid($device, $table, [], "ARECA-SNMP-MIB"); if (!isset($enclosures[0]) || !$enclosures[0]["hddEnclosure0{$encNum}Installed"]) { // Index 0 is the main enclosure data, we check if the enclosure is connected, but it will // not have any sensors of its own, so we skip index 0. continue; } $enclosure = $enclosures[0]; unset($enclosures[0]); $name = $enclosure["hddEnclosure0{$encNum}Description"]; foreach ($enclosures as $index => $entry) { if ($entry["hddEnclosure0{$encNum}Name"] === 'N.A.') { continue; } $descr = 'Slot ' . $entry["hddEnclosure0{$encNum}Slots"] . ', ' . trim($entry["hddEnclosure0{$encNum}Name"]) . ' (SN: ' . trim($entry["hddEnclosure0{$encNum}Serial"]) . ", $name)"; $oid_num = ".1.3.6.1.4.1.18928.1.2.3." . $encNum . ".4.1.8.$index"; $oid_name = "hddEnclosure0{$encNum}State"; $value = $entry[$oid_name]; discover_status_ng($device, $mib, $oid_name, $oid_num, $index, 'areca-hdd-state', $descr, $value, [ 'entPhysicalClass' => 'storage' ]); } } // EOF