Array ( [pdIndex] => 8 [physDevID] => 16 [mediaErrCount] => 0 [otherErrCount] => 0 [predFailCount] => 0 -> raid monitoring [pdState] => 24 _> state sensor: lsi-megaraid-sas-pd-state [enclDeviceId] => 9 [enclIndex] => 2 [slotNumber] => 4 [pdVendorID] => FUJITSU [pdProductID] => MBA3147RC ) */ // Fix up enclosure indexes foreach ($cache['megaraid']['encl'] as $oldindex => $data) { $cache['megaraid']['enclosure'][$data['enclosureIndex']] = $data; } // Physical disk temperature and state // // LSI-MegaRAID-SAS-MIB::pdVendorID.0 = STRING: "FUJITSU " // LSI-MegaRAID-SAS-MIB::pdProductID.0 = STRING: "MBA3300RC " // LSI-MegaRAID-SAS-MIB::pdTemperature.0 = INTEGER: 36 // LSI-MegaRAID-SAS-MIB::slotNumber.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::enclDeviceId.0 = INTEGER: 8 foreach ($cache['megaraid']['pd'] as $index => $pd) { $encl = trim(trim($cache['megaraid']['enclosure'][$pd['enclIndex']]['vendorID'], '.') . ' ' . trim($cache['megaraid']['enclosure'][$pd['enclIndex']]['productID'], '.')); if ($encl == '') { $encl = 'Enclosure'; } // Static string if no enclosure vendor/product ID $descr = $encl . ' (' . $pd['enclIndex'] . ') Slot ' . $pd['slotNumber'] . ': ' . $pd['pdVendorID'] . ' ' . $pd['pdProductID']; $value = $pd['pdTemperature']; $oid = ".1.3.6.1.4.1.3582.4.1.4.2.1.2.1.36.$index"; if ($value != '') { //discover_sensor('temperature', $device, $oid, "pdTemperature.$index", 'lsi-megaraid-sas-mib', $descr, 1, $value); } $value = $pd['pdState']; $oid = ".1.3.6.1.4.1.3582.4.1.4.2.1.2.1.10.$index"; if ($value !== '') { //discover_status($device, $oid, "pdState.$index", 'lsi-megaraid-sas-pd-state', $descr, $value); } } // Enclosure power supplies // LSI-MegaRAID-SAS-MIB::powerSupplyID.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::powerSupplyID.1 = INTEGER: 1 // LSI-MegaRAID-SAS-MIB::enclosureId-EPST.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::enclosureId-EPST.1 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::powerSupplyStatus.0 = INTEGER: status-ok(2) // LSI-MegaRAID-SAS-MIB::powerSupplyStatus.1 = INTEGER: status-ok(2) echo(' enclosurePowerSupplyTable '); $cache['megaraid']['psu'] = snmpwalk_cache_oid($device, 'enclosurePowerSupplyTable', [], 'LSI-MegaRAID-SAS-MIB'); foreach ($cache['megaraid']['psu'] as $index => $psu) { $encl = trim(trim($cache['megaraid']['encl'][$psu['enclosureId-EPST']]['vendorID'], '.') . ' ' . trim($cache['megaraid']['encl'][$psu['enclosureId-EPST']]['productID'], '.')); if ($encl == '') { $encl = 'Enclosure (' . $cache['megaraid']['encl'][$psu['enclosureId-EPST']]['enclosureIndex'] . ')'; // Static string if no vendor/product ID for enclosure } else { $encl .= ' (' . $cache['megaraid']['encl'][$psu['enclosureId-EPST']]['enclosureIndex'] . ')'; } $descr = $encl . ' Power Supply ' . (++$lsi_counter['psu'][$psu['enclosureId-EPST']]); $value = $psu['powerSupplyStatus']; $oid = ".1.3.6.1.4.1.3582.4.1.5.5.1.3.$index"; discover_status($device, $oid, "powerSupplyStatus.$index", 'lsi-megaraid-sas-sensor-state', $descr, $value); } // Enclosure temperature sensors // LSI-MegaRAID-SAS-MIB::tempSensorID.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::tempSensorID.1 = INTEGER: 1 // LSI-MegaRAID-SAS-MIB::tempSensorID.2 = INTEGER: 2 // LSI-MegaRAID-SAS-MIB::enclosureId-ETST.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::enclosureId-ETST.1 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::enclosureId-ETST.2 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::tempSensorStatus.0 = INTEGER: status-ok(2) // LSI-MegaRAID-SAS-MIB::tempSensorStatus.1 = INTEGER: status-ok(2) // LSI-MegaRAID-SAS-MIB::tempSensorStatus.2 = INTEGER: status-ok(2) // LSI-MegaRAID-SAS-MIB::enclosureTemperature.0 = INTEGER: 26 // LSI-MegaRAID-SAS-MIB::enclosureTemperature.1 = INTEGER: 22 // LSI-MegaRAID-SAS-MIB::enclosureTemperature.2 = INTEGER: 211 echo(' enclosureTempSensorTable '); $cache['megaraid']['temp'] = snmpwalk_cache_oid($device, 'enclosureTempSensorTable', [], 'LSI-MegaRAID-SAS-MIB'); foreach ($cache['megaraid']['temp'] as $index => $temp) { $encl = trim(trim($cache['megaraid']['encl'][$temp['enclosureId-ETST']]['vendorID'], '.') . ' ' . trim($cache['megaraid']['encl'][$temp['enclosureId-ETST']]['productID'], '.')); if ($encl == '') { $encl = 'Enclosure (' . $cache['megaraid']['encl'][$temp['enclosureId-ETST']]['enclosureIndex'] . ')'; // Static string if no vendor/product ID for enclosure } else { $encl .= ' (' . $cache['megaraid']['encl'][$temp['enclosureId-ETST']]['enclosureIndex'] . ')'; } $descr = $encl . ' Temperature sensor ' . (++$lsi_counter['temp'][$temp['enclosureId-ETST']]); $value = $temp['tempSensorStatus']; $oid = ".1.3.6.1.4.1.3582.4.1.5.6.1.3.$index"; discover_status($device, $oid, "tempSensorStatus.$index", 'lsi-megaraid-sas-sensor-state', $descr, $value); $value = $temp['enclosureTemperature']; $oid = ".1.3.6.1.4.1.3582.4.1.5.6.1.4.$index"; if ($value < 200) // Filter out some silly values, possibly *10'd? { discover_sensor('temperature', $device, $oid, "enclosureTemperature.$index", 'lsi-megaraid-sas-mib', $descr, 1, $value); } } // LSI-MegaRAID-SAS-MIB::fanID.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::enclosureId.0 = INTEGER: 0 // LSI-MegaRAID-SAS-MIB::fanStatus.0 = INTEGER: status-ok(2) echo(' enclosureFanTable '); $cache['megaraid']['fan'] = snmpwalk_cache_oid($device, 'enclosureFanTable', [], 'LSI-MegaRAID-SAS-MIB'); foreach ($cache['megaraid']['fan'] as $index => $fan) { $encl = trim(trim($cache['megaraid']['encl'][$fan['enclosureId']]['vendorID'], '.') . ' ' . trim($cache['megaraid']['encl'][$fan['enclosureId']]['productID'], '.')); if ($encl == '') { $encl = 'Enclosure (' . $cache['megaraid']['encl'][$fan['enclosureId']]['enclosureIndex'] . ')'; // Static string if no vendor/product ID for enclosure } else { $encl .= ' (' . $cache['megaraid']['encl'][$fan['enclosureId']]['enclosureIndex'] . ')'; } $descr = $encl . ' Fan ' . (++$lsi_counter['fan'][$fan['enclosureId']]); $value = $fan['fanStatus']; $oid = ".1.3.6.1.4.1.3582.4.1.5.3.1.3.$index"; discover_status($device, $oid, "fanStatus.$index", 'lsi-megaraid-sas-sensor-state', $descr, $value); } /* enclosure data: [1] => Array ( [enclosureID] => 0 [deviceId] => 8 [enclosureIndex] => 1 [slotCount] => 12 [psCount] => 2 [fanCount] => 10 [tempSensorCount] => 6 [alarmCount] => 1 [simCount] => 7 [isFault] => 0 [pdCount] => 10 [pdIds] => 21 22 23 24 31 26 27 28 29 30 [adapterID-ET] => 0 [pdCountSpinup60] => 0 [enclosureType] => 0 [enclFirmwareVersion] => 30 31 41 20 01 [enclSerialNumber] => N/A [vendorID] => Intel [productID] => SSR212MC [eSMSerialNumber] => N/A [eSMFRU] => N/A [enclosureZoningMode] => N/A [eSMFRUPartInfo] => N/A ) */ unset($cache['megaraid'], $lsi_counter); // EOF