$entry) { // Find member id and name in results if (!empty($entry['eqlMemberName']) && strtolower($entry['eqlMemberName']) == $sysName) { [, $eqlgrpmemid] = explode('.', $index); break; } } if (!isset($eqlgrpmemid)) { // Fall-back to old method. $eqlgrpmemid = snmp_get_oid($device, 'eqliscsiLocalMemberId.0', 'EQLVOLUME-MIB'); } if (is_numeric($eqlgrpmemid) && $eqlgrpmemid != $attribs['eqlgrpmemid']) { // Store member id when detected set_dev_attrib($device, 'eqlgrpmemid', $eqlgrpmemid); $attribs['eqlgrpmemid'] = $eqlgrpmemid; print_debug("\neqlgrpmemid: $eqlgrpmemid"); } print_debug_vars($eqlgrpmemid, 1); if (is_numeric($eqlgrpmemid)) { $oids = snmpwalk_cache_oid($device, 'eqlMemberHealthDetailsFanTable', [], 'EQLMEMBER-MIB'); // copy of eqlMemberHealthDetailsFanIndex $sensorname = [ 'emm0fan0', 'emm0fan1', 'emm1fan0', 'emm1fan1', 'emm2fan0', 'emm2fan1', 'emm3fan0', 'emm3fan1' ]; $sensorid = [1, 2, 3, 4, 5, 6, 7, 8]; foreach ($oids as $index => $entry) { # EQLMEMBER-MIB returns sensors for all members. only process sensors that match our member id if (strstr($index, $eqlgrpmemid)) { $numindex = str_replace($sensorname, $sensorid, $index); $entry['oid'] = ".1.3.6.1.4.1.12740.2.1.7.1.3.$numindex"; $limits = ['limit_high' => $entry['eqlMemberHealthDetailsFanHighCriticalThreshold'], 'limit_low' => $entry['eqlMemberHealthDetailsFanLowCriticalThreshold'], 'limit_high_warn' => $entry['eqlMemberHealthDetailsFanHighWarningThreshold'], 'limit_low_warn' => $entry['eqlMemberHealthDetailsFanLowWarningThreshold']]; if ($entry['eqlMemberHealthDetailsFanValue'] <> 0) { discover_sensor('fanspeed', $device, $entry['oid'], $numindex, 'equallogic', $entry['eqlMemberHealthDetailsFanName'], 1, $entry['eqlMemberHealthDetailsFanValue'], $limits); } } } $oids = snmpwalk_cache_oid($device, 'eqlMemberHealthDetailsTemperatureTable', [], 'EQLMEMBER-MIB'); // copy of eqlMemberHealthDetailsTempSensorIndex $sensorname = [ 'integratedSystemTemperature', 'backplaneSensor0', 'backplaneSensor1', 'controlModule0processor', 'controlModule0chipset', 'controlModule1processor', 'controlModule1chipset', 'controlModule0sasController', 'controlModule0sasExpander', 'controlModule0sesEnclosure', 'controlModule1sasController', 'controlModule1sasExpander', 'controlModule1sesEnclosure', 'sesOpsPanel', 'cemi0', 'cemi1', 'controlModule0batteryThermistor', 'controlModule1batteryThermistor' ]; $sensorid = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; foreach ($oids as $index => $entry) { # EQLMEMBER-MIB returns sensors for all members. only process sensors that match our member id if (strstr($index, $eqlgrpmemid)) { $numindex = str_replace($sensorname, $sensorid, $index); $entry['oid'] = ".1.3.6.1.4.1.12740.2.1.6.1.3.$numindex"; $limits = ['limit_high' => $entry['eqlMemberHealthDetailsTemperatureHighCriticalThreshold'], 'limit_low' => $entry['eqlMemberHealthDetailsTemperatureLowCriticalThreshold'], 'limit_high_warn' => $entry['eqlMemberHealthDetailsTemperatureHighWarningThreshold'], 'limit_low_warn' => $entry['eqlMemberHealthDetailsTemperatureLowWarningThreshold']]; if ($entry['eqlMemberHealthDetailsTemperatureValue'] <> 0) { discover_sensor('temperature', $device, $entry['oid'], $numindex, 'equallogic', $entry['eqlMemberHealthDetailsTemperatureName'], 1, $entry['eqlMemberHealthDetailsTemperatureValue'], $limits); } } } } // EOF