trondham / check_openmanage

Nagios plugin to monitor hardware health on Dell servers
GNU General Public License v3.0
26 stars 10 forks source link

Monitoring via iDRAC #9

Open peternewman opened 3 years ago

peternewman commented 3 years ago

Hi,

This is mostly a comment for now, for other people's benefit. Unhelpfully the iDRAC has a different set of OIDs for it's data. Applying this patch (which is based on some tweaks of mine so might not apply cleanly to trunk) fetches the data just from the iDRAC locations (hence no PR). It seems to work, but I've done pretty minimal testing.

I don't know if we should add options to switch between the two formats, or auto-detect or something?

diff check_openmanage check_openmanage_idrac
1019c1019
<     my $chassisModelName = '1.3.6.1.4.1.674.10892.1.300.10.1.9.1';
---
>     my $chassisModelName = '1.3.6.1.4.1.674.10892.5.4.300.10.1.9.1';
1042,1043c1042,1043
<     my $DellBaseBoardType1 = '1.3.6.1.4.1.674.10892.1.300.80.1.7.1.1';
<     my $DellBaseBoardType2 = '1.3.6.1.4.1.674.10892.1.300.80.1.7.1.2';
---
>     my $DellBaseBoardType1 = '1.3.6.1.4.1.674.10892.5.4.300.80.1.7.1.1';
>     my $DellBaseBoardType2 = '1.3.6.1.4.1.674.10892.5.4.300.80.1.7.1.2';
1572c1572
<       my $systemStateGlobalSystemStatus = '1.3.6.1.4.1.674.10892.1.200.10.1.2.1';
---
>       my $systemStateGlobalSystemStatus = '1.3.6.1.4.1.674.10892.5.4.200.10.1.2.1';
1618,1628c1618,1628
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.1'  => 'controllerNumber',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.2'  => 'controllerName',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.5'  => 'controllerState',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.8'  => 'controllerFWVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.38' => 'controllerComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.39' => 'controllerNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.41' => 'controllerDriverVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.44' => 'controllerMinFWVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.45' => 'controllerMinDriverVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.55' => 'controllerStorportDriverVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.1.1.56' => 'controllerMinRequiredStorportVer',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.1'  => 'controllerNumber',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.2'  => 'controllerName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.5'  => 'controllerState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.8'  => 'controllerFWVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.38' => 'controllerComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.39' => 'controllerNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.41' => 'controllerDriverVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.44' => 'controllerMinFWVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.45' => 'controllerMinDriverVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.55' => 'controllerStorportDriverVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.56' => 'controllerMinRequiredStorportVer',
1634c1634
<       my $controllerTable = '1.3.6.1.4.1.674.10893.1.20.130.1';
---
>       my $controllerTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.1';
1781,1797c1781,1797
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.2'  => 'arrayDiskName',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.3'  => 'arrayDiskVendor',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.4'  => 'arrayDiskState',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.6'  => 'arrayDiskProductID',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.9'  => 'arrayDiskEnclosureID',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.10' => 'arrayDiskChannel',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.11' => 'arrayDiskLengthInMB',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.15' => 'arrayDiskTargetID',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.21' => 'arrayDiskBusType',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.22' => 'arrayDiskSpareState',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.24' => 'arrayDiskComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.26' => 'arrayDiskNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.31' => 'arrayDiskSmartAlertIndication',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.35' => 'arrayDiskMediaType',
<            '1.3.6.1.4.1.674.10893.1.20.130.4.1.36' => 'arrayDiskDellCertified',
<            '1.3.6.1.4.1.674.10893.1.20.130.5.1.7'  => 'arrayDiskEnclosureConnectionControllerNumber',
<            '1.3.6.1.4.1.674.10893.1.20.130.6.1.7'  => 'arrayDiskChannelConnectionControllerNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.2'  => 'arrayDiskName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.3'  => 'arrayDiskVendor',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.4'  => 'arrayDiskState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.6'  => 'arrayDiskProductID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.9'  => 'arrayDiskEnclosureID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.10' => 'arrayDiskChannel',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.11' => 'arrayDiskLengthInMB',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.15' => 'arrayDiskTargetID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.21' => 'arrayDiskBusType',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.22' => 'arrayDiskSpareState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.24' => 'arrayDiskComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.26' => 'arrayDiskNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.31' => 'arrayDiskSmartAlertIndication',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.35' => 'arrayDiskMediaType',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.36' => 'arrayDiskDellCertified',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.5.1.7'  => 'arrayDiskEnclosureConnectionControllerNumber',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.6.1.7'  => 'arrayDiskChannelConnectionControllerNumber',
1801,1803c1801,1803
<           my $arrayDiskTable = '1.3.6.1.4.1.674.10893.1.20.130.4';
<           my $arrayDiskEnclosureConnectionControllerNumber = '1.3.6.1.4.1.674.10893.1.20.130.5.1.7';
<           my $arrayDiskChannelConnectionControllerNumber = '1.3.6.1.4.1.674.10893.1.20.130.6.1.7';
---
>           my $arrayDiskTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.4';
>           my $arrayDiskEnclosureConnectionControllerNumber = '1.3.6.1.4.1.674.10892.5.5.1.20.130.5.1.7';
>           my $arrayDiskChannelConnectionControllerNumber = '1.3.6.1.4.1.674.10892.5.5.1.20.130.6.1.7';
2085,2090c2085,2090
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.3'  => 'virtualDiskDeviceName',
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.4'  => 'virtualDiskState',
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.6'  => 'virtualDiskLengthInMB',
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.13' => 'virtualDiskLayout',
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.20' => 'virtualDiskComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.140.1.1.21' => 'virtualDiskNexusID',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.3'  => 'virtualDiskDeviceName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.4'  => 'virtualDiskState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.6'  => 'virtualDiskLengthInMB',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.13' => 'virtualDiskLayout',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.20' => 'virtualDiskComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.21' => 'virtualDiskNexusID',
2094c2094
<           my $virtualDiskTable = '1.3.6.1.4.1.674.10893.1.20.140.1';
---
>           my $virtualDiskTable = '1.3.6.1.4.1.674.10892.5.5.1.20.140.1';
2230,2235c2230,2235
<            '1.3.6.1.4.1.674.10893.1.20.130.15.1.4'  => 'batteryState',
<            '1.3.6.1.4.1.674.10893.1.20.130.15.1.6'  => 'batteryComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.15.1.9'  => 'batteryNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.15.1.10' => 'batteryPredictedCapacity',
<            '1.3.6.1.4.1.674.10893.1.20.130.15.1.12' => 'batteryLearnState',
<            '1.3.6.1.4.1.674.10893.1.20.130.16.1.5'  => 'batteryConnectionControllerNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.4'  => 'batteryState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.6'  => 'batteryComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.9'  => 'batteryNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.10' => 'batteryPredictedCapacity',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.12' => 'batteryLearnState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.16.1.5'  => 'batteryConnectionControllerNumber',
2239,2240c2239,2240
<           my $batteryTable = '1.3.6.1.4.1.674.10893.1.20.130.15';
<             my $batteryConnectionTable = '1.3.6.1.4.1.674.10893.1.20.130.16';
---
>           my $batteryTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.15';
>             my $batteryConnectionTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.16';
2401,2405c2401,2405
<              '1.3.6.1.4.1.674.10893.1.20.130.2.1.2'  => 'channelName',
<              '1.3.6.1.4.1.674.10893.1.20.130.2.1.3'  => 'channelState',
<              '1.3.6.1.4.1.674.10893.1.20.130.2.1.8'  => 'channelComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.2.1.9'  => 'channelNexusID',
<              '1.3.6.1.4.1.674.10893.1.20.130.2.1.11' => 'channelBusType',
---
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.2.1.2'  => 'channelName',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.2.1.3'  => 'channelState',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.2.1.8'  => 'channelComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.2.1.9'  => 'channelNexusID',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.2.1.11' => 'channelBusType',
2409c2409
<           my $channelTable = '1.3.6.1.4.1.674.10893.1.20.130.2';
---
>           my $channelTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.2';
2501,2509c2501,2509
<              '1.3.6.1.4.1.674.10893.1.20.130.3.1.1'  => 'enclosureNumber',
<              '1.3.6.1.4.1.674.10893.1.20.130.3.1.2'  => 'enclosureName',
<              '1.3.6.1.4.1.674.10893.1.20.130.3.1.4'  => 'enclosureState',
<            '1.3.6.1.4.1.674.10893.1.20.130.3.1.19' => 'enclosureChannelNumber',
<              '1.3.6.1.4.1.674.10893.1.20.130.3.1.24' => 'enclosureComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.3.1.25' => 'enclosureNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.3.1.26' => 'enclosureFirmwareVersion',
<            '1.3.6.1.4.1.674.10893.1.20.130.3.1.31' => 'enclosureOccupiedSlotCount', # new in OMSA 6.3.0
<            '1.3.6.1.4.1.674.10893.1.20.130.3.1.32' => 'enclosureTotalSlots', # new in OMSA 6.3.0
---
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.1'  => 'enclosureNumber',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.2'  => 'enclosureName',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.4'  => 'enclosureState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.19' => 'enclosureChannelNumber',
>              '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.24' => 'enclosureComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.25' => 'enclosureNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.26' => 'enclosureFirmwareVersion',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.31' => 'enclosureOccupiedSlotCount', # new in OMSA 6.3.0
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.32' => 'enclosureTotalSlots', # new in OMSA 6.3.0
2513c2513
<           my $enclosureTable = '1.3.6.1.4.1.674.10893.1.20.130.3';
---
>           my $enclosureTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.3';
2627,2633c2627,2633
<            '1.3.6.1.4.1.674.10893.1.20.130.7.1.2'  => 'fanName',
<            '1.3.6.1.4.1.674.10893.1.20.130.7.1.4'  => 'fanState',
<            '1.3.6.1.4.1.674.10893.1.20.130.7.1.11' => 'fanProbeCurrValue',
<            '1.3.6.1.4.1.674.10893.1.20.130.7.1.15' => 'fanComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.7.1.16' => 'fanNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.8.1.4'  => 'fanConnectionEnclosureName',
<            '1.3.6.1.4.1.674.10893.1.20.130.8.1.5'  => 'fanConnectionEnclosureNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.2'  => 'fanName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.4'  => 'fanState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.11' => 'fanProbeCurrValue',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.15' => 'fanComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.16' => 'fanNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.8.1.4'  => 'fanConnectionEnclosureName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.8.1.5'  => 'fanConnectionEnclosureNumber',
2637,2638c2637,2638
<           my $fanTable = '1.3.6.1.4.1.674.10893.1.20.130.7';
<             my $fanConnectionTable = '1.3.6.1.4.1.674.10893.1.20.130.8';
---
>           my $fanTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.7';
>             my $fanConnectionTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.8';
2734,2739c2734,2739
<            '1.3.6.1.4.1.674.10893.1.20.130.9.1.2'  => 'powerSupplyName',
<            '1.3.6.1.4.1.674.10893.1.20.130.9.1.4'  => 'powerSupplyState',
<            '1.3.6.1.4.1.674.10893.1.20.130.9.1.9'  => 'powerSupplyComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.9.1.10' => 'powerSupplyNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.10.1.4' => 'powerSupplyConnectionEnclosureName',
<            '1.3.6.1.4.1.674.10893.1.20.130.10.1.5' => 'powerSupplyConnectionEnclosureNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.9.1.2'  => 'powerSupplyName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.9.1.4'  => 'powerSupplyState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.9.1.9'  => 'powerSupplyComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.9.1.10' => 'powerSupplyNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.10.1.4' => 'powerSupplyConnectionEnclosureName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.10.1.5' => 'powerSupplyConnectionEnclosureNumber',
2743,2744c2743,2744
<           my $powerSupplyTable = '1.3.6.1.4.1.674.10893.1.20.130.9';
<             my $powerSupplyConnectionTable = '1.3.6.1.4.1.674.10893.1.20.130.10';
---
>           my $powerSupplyTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.9';
>             my $powerSupplyConnectionTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.10';
2836,2847c2836,2847
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.2'  => 'temperatureProbeName',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.4'  => 'temperatureProbeState',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.6'  => 'temperatureProbeUnit',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.7'  => 'temperatureProbeMinWarning',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.8'  => 'temperatureProbeMinCritical',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.9'  => 'temperatureProbeMaxWarning',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.10' => 'temperatureProbeMaxCritical',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.11' => 'temperatureProbeCurValue',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.13' => 'temperatureProbeComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.11.1.14' => 'temperatureProbeNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.12.1.4'  => 'temperatureConnectionEnclosureName',
<            '1.3.6.1.4.1.674.10893.1.20.130.12.1.5'  => 'temperatureConnectionEnclosureNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.2'  => 'temperatureProbeName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.4'  => 'temperatureProbeState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.6'  => 'temperatureProbeUnit',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.7'  => 'temperatureProbeMinWarning',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.8'  => 'temperatureProbeMinCritical',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.9'  => 'temperatureProbeMaxWarning',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.10' => 'temperatureProbeMaxCritical',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.11' => 'temperatureProbeCurValue',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.13' => 'temperatureProbeComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.14' => 'temperatureProbeNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.12.1.4'  => 'temperatureConnectionEnclosureName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.12.1.5'  => 'temperatureConnectionEnclosureNumber',
2851,2852c2851,2852
<           my $temperatureProbeTable = '1.3.6.1.4.1.674.10893.1.20.130.11';
<             my $temperatureConnectionTable = '1.3.6.1.4.1.674.10893.1.20.130.12';
---
>           my $temperatureProbeTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.11';
>             my $temperatureConnectionTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.12';
3054,3059c3054,3059
<            '1.3.6.1.4.1.674.10893.1.20.130.13.1.2'  => 'enclosureManagementModuleName',
<            '1.3.6.1.4.1.674.10893.1.20.130.13.1.4'  => 'enclosureManagementModuleState',
<            '1.3.6.1.4.1.674.10893.1.20.130.13.1.11' => 'enclosureManagementModuleComponentStatus',
<            '1.3.6.1.4.1.674.10893.1.20.130.13.1.12' => 'enclosureManagementModuleNexusID',
<            '1.3.6.1.4.1.674.10893.1.20.130.14.1.4'  => 'enclosureManagementModuleConnectionEnclosureName',
<            '1.3.6.1.4.1.674.10893.1.20.130.14.1.5'  => 'enclosureManagementModuleConnectionEnclosureNumber',
---
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.13.1.2'  => 'enclosureManagementModuleName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.13.1.4'  => 'enclosureManagementModuleState',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.13.1.11' => 'enclosureManagementModuleComponentStatus',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.13.1.12' => 'enclosureManagementModuleNexusID',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.14.1.4'  => 'enclosureManagementModuleConnectionEnclosureName',
>            '1.3.6.1.4.1.674.10892.5.5.1.20.130.14.1.5'  => 'enclosureManagementModuleConnectionEnclosureNumber',
3063,3064c3063,3064
<           my $enclosureManagementModuleTable = '1.3.6.1.4.1.674.10893.1.20.130.13';
<             my $enclosureManagementModuleConnectionTable = '1.3.6.1.4.1.674.10893.1.20.130.14';
---
>           my $enclosureManagementModuleTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.13';
>             my $enclosureManagementModuleConnectionTable = '1.3.6.1.4.1.674.10892.5.5.1.20.130.14';
3157,3162c3157,3162
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.2.1'  => 'memoryDeviceIndex',
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.5.1'  => 'memoryDeviceStatus',
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.8.1'  => 'memoryDeviceLocationName',
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.14.1' => 'memoryDeviceSize',
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.20.1' => 'memoryDeviceFailureModes',
<            '1.3.6.1.4.1.674.10892.1.1100.50.1.27.1' => 'memoryDeviceExtendedSize',
---
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.2.1'  => 'memoryDeviceIndex',
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.5.1'  => 'memoryDeviceStatus',
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.8.1'  => 'memoryDeviceLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.14.1' => 'memoryDeviceSize',
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.20.1' => 'memoryDeviceFailureModes',
>            '1.3.6.1.4.1.674.10892.5.4.1100.50.1.27.1' => 'memoryDeviceExtendedSize',
3166c3166
<           my $memoryDeviceTable = '1.3.6.1.4.1.674.10892.1.1100.50.1';
---
>           my $memoryDeviceTable = '1.3.6.1.4.1.674.10892.5.4.1100.50.1';
3287,3292c3287,3292
<            '1.3.6.1.4.1.674.10892.1.700.12.1.2.1'  => 'coolingDeviceIndex',
<            '1.3.6.1.4.1.674.10892.1.700.12.1.5.1'  => 'coolingDeviceStatus',
<            '1.3.6.1.4.1.674.10892.1.700.12.1.6.1'  => 'coolingDeviceReading',
<            '1.3.6.1.4.1.674.10892.1.700.12.1.8.1'  => 'coolingDeviceLocationName',
<            '1.3.6.1.4.1.674.10892.1.700.12.1.10.1' => 'coolingDeviceUpperCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.700.12.1.11.1' => 'coolingDeviceUpperNonCriticalThreshold',
---
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.2.1'  => 'coolingDeviceIndex',
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.5.1'  => 'coolingDeviceStatus',
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.6.1'  => 'coolingDeviceReading',
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.8.1'  => 'coolingDeviceLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.10.1' => 'coolingDeviceUpperCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.700.12.1.11.1' => 'coolingDeviceUpperNonCriticalThreshold',
3296c3296
<           my $coolingDeviceTable = '1.3.6.1.4.1.674.10892.1.700.12.1';
---
>           my $coolingDeviceTable = '1.3.6.1.4.1.674.10892.5.4.700.12.1';
3390,3394c3390,3394
<            '1.3.6.1.4.1.674.10892.1.600.12.1.2.1'  => 'powerSupplyIndex',
<            '1.3.6.1.4.1.674.10892.1.600.12.1.5.1'  => 'powerSupplyStatus',
<            '1.3.6.1.4.1.674.10892.1.600.12.1.7.1'  => 'powerSupplyType',
<            '1.3.6.1.4.1.674.10892.1.600.12.1.11.1' => 'powerSupplySensorState',
<            '1.3.6.1.4.1.674.10892.1.600.12.1.12.1' => 'powerSupplyConfigurationErrorType',
---
>            '1.3.6.1.4.1.674.10892.5.4.600.12.1.2.1'  => 'powerSupplyIndex',
>            '1.3.6.1.4.1.674.10892.5.4.600.12.1.5.1'  => 'powerSupplyStatus',
>            '1.3.6.1.4.1.674.10892.5.4.600.12.1.7.1'  => 'powerSupplyType',
>            '1.3.6.1.4.1.674.10892.5.4.600.12.1.11.1' => 'powerSupplySensorState',
>            '1.3.6.1.4.1.674.10892.5.4.600.12.1.12.1' => 'powerSupplyConfigurationErrorType',
3398c3398
<           my $powerDeviceTable = '1.3.6.1.4.1.674.10892.1.600.12.1';
---
>           my $powerDeviceTable = '1.3.6.1.4.1.674.10892.5.4.600.12.1';
3514,3523c3514,3523
<            '1.3.6.1.4.1.674.10892.1.700.20.1.2.1'  => 'temperatureProbeIndex',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.5.1'  => 'temperatureProbeStatus',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.6.1'  => 'temperatureProbeReading',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.7.1'  => 'temperatureProbeType',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.8.1'  => 'temperatureProbeLocationName',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.10.1' => 'temperatureProbeUpperCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.11.1' => 'temperatureProbeUpperNonCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.12.1' => 'temperatureProbeLowerNonCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.13.1' => 'temperatureProbeLowerCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.700.20.1.16.1' => 'temperatureProbeDiscreteReading',
---
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.2.1'  => 'temperatureProbeIndex',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.5.1'  => 'temperatureProbeStatus',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.6.1'  => 'temperatureProbeReading',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.7.1'  => 'temperatureProbeType',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.8.1'  => 'temperatureProbeLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.10.1' => 'temperatureProbeUpperCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.11.1' => 'temperatureProbeUpperNonCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.12.1' => 'temperatureProbeLowerNonCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.13.1' => 'temperatureProbeLowerCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.700.20.1.16.1' => 'temperatureProbeDiscreteReading',
3529c3529
<       my $temperatureProbeTable = '1.3.6.1.4.1.674.10892.1.700.20';
---
>       my $temperatureProbeTable = '1.3.6.1.4.1.674.10892.5.4.700.20';
3727,3736c3727,3736
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.2.1'  => 'processorDeviceIndex',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.5.1'  => 'processorDeviceStatus',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.8.1'  => 'processorDeviceManufacturerName',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.9.1'  => 'processorDeviceStatusState',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.10.1' => 'processorDeviceFamily',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.12.1' => 'processorDeviceCurrentSpeed',
<              '1.3.6.1.4.1.674.10892.1.1100.30.1.23.1' => 'processorDeviceBrandName',
<            '1.3.6.1.4.1.674.10892.1.1100.32.1.2.1'  => 'processorDeviceStatusIndex',
<            '1.3.6.1.4.1.674.10892.1.1100.32.1.5.1'  => 'processorDeviceStatusStatus',
<            '1.3.6.1.4.1.674.10892.1.1100.32.1.6.1'  => 'processorDeviceStatusReading',
---
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.2.1'  => 'processorDeviceIndex',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.5.1'  => 'processorDeviceStatus',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.8.1'  => 'processorDeviceManufacturerName',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.9.1'  => 'processorDeviceStatusState',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.10.1' => 'processorDeviceFamily',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.12.1' => 'processorDeviceCurrentSpeed',
>              '1.3.6.1.4.1.674.10892.5.4.1100.30.1.23.1' => 'processorDeviceBrandName',
>            '1.3.6.1.4.1.674.10892.5.4.1100.32.1.2.1'  => 'processorDeviceStatusIndex',
>            '1.3.6.1.4.1.674.10892.5.4.1100.32.1.5.1'  => 'processorDeviceStatusStatus',
>            '1.3.6.1.4.1.674.10892.5.4.1100.32.1.6.1'  => 'processorDeviceStatusReading',
3740,3741c3740,3741
<           my $processorDeviceTable = '1.3.6.1.4.1.674.10892.1.1100.30.1';
<           my $processorDeviceStatusTable = '1.3.6.1.4.1.674.10892.1.1100.32.1';
---
>           my $processorDeviceTable = '1.3.6.1.4.1.674.10892.5.4.1100.30.1';
>           my $processorDeviceStatusTable = '1.3.6.1.4.1.674.10892.5.4.1100.32.1';
4010,4014c4010,4014
<            '1.3.6.1.4.1.674.10892.1.600.20.1.2.1'  => 'voltageProbeIndex',
<            '1.3.6.1.4.1.674.10892.1.600.20.1.5.1'  => 'voltageProbeStatus',
<            '1.3.6.1.4.1.674.10892.1.600.20.1.6.1'  => 'voltageProbeReading',
<            '1.3.6.1.4.1.674.10892.1.600.20.1.8.1'  => 'voltageProbeLocationName',
<            '1.3.6.1.4.1.674.10892.1.600.20.1.16.1' => 'voltageProbeDiscreteReading',
---
>            '1.3.6.1.4.1.674.10892.5.4.600.20.1.2.1'  => 'voltageProbeIndex',
>            '1.3.6.1.4.1.674.10892.5.4.600.20.1.5.1'  => 'voltageProbeStatus',
>            '1.3.6.1.4.1.674.10892.5.4.600.20.1.6.1'  => 'voltageProbeReading',
>            '1.3.6.1.4.1.674.10892.5.4.600.20.1.8.1'  => 'voltageProbeLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.600.20.1.16.1' => 'voltageProbeDiscreteReading',
4017c4017
<       my $voltageProbeTable = '1.3.6.1.4.1.674.10892.1.600.20.1';
---
>       my $voltageProbeTable = '1.3.6.1.4.1.674.10892.5.4.600.20.1';
4117,4120c4117,4120
<            '1.3.6.1.4.1.674.10892.1.600.50.1.2.1' => 'batteryIndex',
<            '1.3.6.1.4.1.674.10892.1.600.50.1.5.1' => 'batteryStatus',
<            '1.3.6.1.4.1.674.10892.1.600.50.1.6.1' => 'batteryReading',
<            '1.3.6.1.4.1.674.10892.1.600.50.1.7.1' => 'batteryLocationName',
---
>            '1.3.6.1.4.1.674.10892.5.4.600.50.1.2.1' => 'batteryIndex',
>            '1.3.6.1.4.1.674.10892.5.4.600.50.1.5.1' => 'batteryStatus',
>            '1.3.6.1.4.1.674.10892.5.4.600.50.1.6.1' => 'batteryReading',
>            '1.3.6.1.4.1.674.10892.5.4.600.50.1.7.1' => 'batteryLocationName',
4124c4124
<           my $batteryTable = '1.3.6.1.4.1.674.10892.1.600.50.1';
---
>           my $batteryTable = '1.3.6.1.4.1.674.10892.5.4.600.50.1';
4190,4197c4190,4197
<            '1.3.6.1.4.1.674.10892.1.600.30.1.2.1'  => 'amperageProbeIndex',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.5.1'  => 'amperageProbeStatus',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.6.1'  => 'amperageProbeReading',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.7.1'  => 'amperageProbeType',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.8.1'  => 'amperageProbeLocationName',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.10.1' => 'amperageProbeUpperCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.11.1' => 'amperageProbeUpperNonCriticalThreshold',
<            '1.3.6.1.4.1.674.10892.1.600.30.1.16.1' => 'amperageProbeDiscreteReading',
---
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.2.1'  => 'amperageProbeIndex',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.5.1'  => 'amperageProbeStatus',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.6.1'  => 'amperageProbeReading',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.7.1'  => 'amperageProbeType',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.8.1'  => 'amperageProbeLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.10.1' => 'amperageProbeUpperCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.11.1' => 'amperageProbeUpperNonCriticalThreshold',
>            '1.3.6.1.4.1.674.10892.5.4.600.30.1.16.1' => 'amperageProbeDiscreteReading',
4201c4201
<           my $amperageProbeTable = '1.3.6.1.4.1.674.10892.1.600.30.1';
---
>           my $amperageProbeTable = '1.3.6.1.4.1.674.10892.5.4.600.30.1';
4417,4419c4417,4419
<            '1.3.6.1.4.1.674.10892.1.300.70.1.2.1' => 'intrusionIndex',
<            '1.3.6.1.4.1.674.10892.1.300.70.1.5.1' => 'intrusionStatus',
<            '1.3.6.1.4.1.674.10892.1.300.70.1.6.1' => 'intrusionReading',
---
>            '1.3.6.1.4.1.674.10892.5.4.300.70.1.2.1' => 'intrusionIndex',
>            '1.3.6.1.4.1.674.10892.5.4.300.70.1.5.1' => 'intrusionStatus',
>            '1.3.6.1.4.1.674.10892.5.4.300.70.1.6.1' => 'intrusionReading',
4423c4423
<           my $intrusionTable = '1.3.6.1.4.1.674.10892.1.300.70.1';
---
>           my $intrusionTable = '1.3.6.1.4.1.674.10892.5.4.300.70.1';
4494,4500c4494,4500
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.2.1'  => 'sdCardDeviceIndex',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.3.1'  => 'sdCardDeviceStatus',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.4.1'  => 'sdCardDeviceType',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.7.1'  => 'sdCardDeviceLocationName',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.8.1'  => 'sdCardDeviceCardPresent',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.9.1'  => 'sdCardDeviceCardState',
<            '1.3.6.1.4.1.674.10892.1.1100.112.1.10.1' => 'sdCardDeviceCardStorageSize',
---
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.2.1'  => 'sdCardDeviceIndex',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.3.1'  => 'sdCardDeviceStatus',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.4.1'  => 'sdCardDeviceType',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.7.1'  => 'sdCardDeviceLocationName',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.8.1'  => 'sdCardDeviceCardPresent',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.9.1'  => 'sdCardDeviceCardState',
>            '1.3.6.1.4.1.674.10892.5.4.1100.112.1.10.1' => 'sdCardDeviceCardStorageSize',
4504c4504
<           my $sdCardDeviceTable = '1.3.6.1.4.1.674.10892.1.1100.112.1';
---
>           my $sdCardDeviceTable = '1.3.6.1.4.1.674.10892.5.4.1100.112.1';
4629c4629
<       my $systemStateEventLogStatus = '1.3.6.1.4.1.674.10892.1.200.10.1.41.1';
---
>       my $systemStateEventLogStatus = '1.3.6.1.4.1.674.10892.5.4.200.10.1.41.1';
4676c4676
<            '1.3.6.1.4.1.674.10892.1.300.40.1.7.1'  => 'eventLogSeverityStatus',
---
>            '1.3.6.1.4.1.674.10892.5.4.300.40.1.7.1'  => 'eventLogSeverityStatus',
4840,4842c4840,4842
<        '1.3.6.1.4.1.674.10892.1.300.10.1.9.1'  => 'chassisModelName',
<        '1.3.6.1.4.1.674.10892.1.300.10.1.11.1' => 'chassisServiceTagName',
<        '1.3.6.1.4.1.674.10892.1.300.10.1.48.1' => 'chassisSystemRevisionName',
---
>        '1.3.6.1.4.1.674.10892.5.4.300.10.1.9.1'  => 'chassisModelName',
>        '1.3.6.1.4.1.674.10892.5.4.300.10.1.11.1' => 'chassisServiceTagName',
>        '1.3.6.1.4.1.674.10892.5.4.300.10.1.48.1' => 'chassisSystemRevisionName',
4845c4845
<     my $chassisInformationTable = '1.3.6.1.4.1.674.10892.1.300.10.1';
---
>     my $chassisInformationTable = '1.3.6.1.4.1.674.10892.5.4.300.10.1';
4877,4878c4877,4878
<        '1.3.6.1.4.1.674.10892.1.300.50.1.7.1.1' => 'systemBIOSReleaseDateName',
<        '1.3.6.1.4.1.674.10892.1.300.50.1.8.1.1' => 'systemBIOSVersionName',
---
>        '1.3.6.1.4.1.674.10892.5.4.300.50.1.7.1.1' => 'systemBIOSReleaseDateName',
>        '1.3.6.1.4.1.674.10892.5.4.300.50.1.8.1.1' => 'systemBIOSVersionName',
4881c4881
<     my $systemBIOSTable = '1.3.6.1.4.1.674.10892.1.300.50.1';
---
>     my $systemBIOSTable = '1.3.6.1.4.1.674.10892.5.4.300.50.1';
4909,4910c4909,4910
<        '1.3.6.1.4.1.674.10892.1.400.10.1.6.1' => 'operatingSystemOperatingSystemName',
<        '1.3.6.1.4.1.674.10892.1.400.10.1.7.1' => 'operatingSystemOperatingSystemVersionName',
---
>        '1.3.6.1.4.1.674.10892.5.4.400.10.1.6.1' => 'operatingSystemOperatingSystemName',
>        '1.3.6.1.4.1.674.10892.5.4.400.10.1.7.1' => 'operatingSystemOperatingSystemVersionName',
4913c4913
<     my $operatingSystemTable = '1.3.6.1.4.1.674.10892.1.400.10.1';
---
>     my $operatingSystemTable = '1.3.6.1.4.1.674.10892.5.4.400.10.1';
4939c4939
<     my $oid = '1.3.6.1.4.1.674.10892.1.100.10.0';
---
>     my $oid = '1.3.6.1.4.1.674.10892.5.4.100.10.0';
5026,5028c5026,5028
<            '1.3.6.1.4.1.674.10892.1.300.60.1.7.1'  => 'firmwareType',
<            '1.3.6.1.4.1.674.10892.1.300.60.1.8.1'  => 'firmwareTypeName',
<            '1.3.6.1.4.1.674.10892.1.300.60.1.11.1' => 'firmwareVersionName',
---
>            '1.3.6.1.4.1.674.10892.5.4.300.60.1.7.1'  => 'firmwareType',
>            '1.3.6.1.4.1.674.10892.5.4.300.60.1.8.1'  => 'firmwareTypeName',
>            '1.3.6.1.4.1.674.10892.5.4.300.60.1.11.1' => 'firmwareVersionName',
5031c5031
<       my $firmwareTable = '1.3.6.1.4.1.674.10892.1.300.60.1';
---
>       my $firmwareTable = '1.3.6.1.4.1.674.10892.5.4.300.60.1';
maggu commented 2 years ago

Personally, I think autodetection should be used, since it's more user-friendly and has negligible overhead.

I'm more of a Python guy and pretty far from fluent in Perl, so somebody else should probably write the actual code. But in principle, set:

$BASEBOARD_SYSTEM = '1.3.6.1.4.1.674.10892.1.' $OUTOFBAND_SYSTEM = '1.3.6.1.4.1.674.10892.5.4.'

$BASEBOARD_STORAGE = '1.3.6.1.4.1.674.10893.' $OUTOFBAND_STORAGE = '1.3.6.1.4.1.674.10892.5.5.'

And since there are no shared OIDs that can be used to determine if out-of-band iDRAC is used:

Check if BASEBOARD_SYSTEM + '300.10.1.9.1' exists. If so, use $BASEBOARD_SYSTEM and $BASEBOARD_STORAGE. Else, if OUTOFBAND_SYSTEM + '300.10.1.9.1' exists use $OUTOFBAND_SYSTEM and $OUTOFBAND_STORAGE. Else fail.

Then change all OIDs to be relative to these base nodes.

Also, if out-of-band (at least) check_connectors() should be skipped since there's no table of controller channels (no 1.3.6.1.4.1.674.10892.5.5.1.20.130.2 OID).

peternewman commented 2 years ago

Personally, I think autodetection should be used, since it's more user-friendly and has negligible overhead.

Yeah fair point.

$BASEBOARD_SYSTEM = '1.3.6.1.4.1.674.10892.1.' $OUTOFBAND_SYSTEM = '1.3.6.1.4.1.674.10892.5.4.'

$BASEBOARD_STORAGE = '1.3.6.1.4.1.674.10893.' $OUTOFBAND_STORAGE = '1.3.6.1.4.1.674.10892.5.5.'

And since there are no shared OIDs that can be used to determine if out-of-band iDRAC is used:

Check if BASEBOARD_SYSTEM + '300.10.1.9.1' exists. If so, use $BASEBOARD_SYSTEM and $BASEBOARD_STORAGE. Else, if OUTOFBAND_SYSTEM + '300.10.1.9.1' exists use $OUTOFBAND_SYSTEM and $OUTOFBAND_STORAGE. Else fail.

Then change all OIDs to be relative to these base nodes.

Again that all sounds good. I may try and have a crack at this if I can remind myself where I'm using it (and assuming I get some time), but very happy for someone to beat me to it!

Also, if out-of-band (at least) check_connectors() should be skipped since there's no table of controller channels (no 1.3.6.1.4.1.674.10892.5.5.1.20.130.2 OID).

Good spot! I don't know how my code wasn't complaining, or at least I don't think it was.

maggu commented 2 years ago

Also, OIDs for FQDD (preferably DisplayName?) need to be added for all storage checks, and used instead of controller id. So quite a bit of code rewriting there.

maggu commented 2 years ago

And systemStateEventLogStatus is missing for iDRAC, so I guess check_esmlog_health can't be used.

physicalDiskState (1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.4) also has completely different values than arrayDiskState. For example, 2 means "failed" for arrayDiskState but "ready" for physicalDiskState. So if I have a spare drive it will be reported as failed unless pdisk_state values in check_physical_disks are updated:

my %pdisk_state
  = (
     1  => 'Unknown',
     2  => 'Ready',
     3  => 'Online',
     4  => 'Foreign',
     5  => 'Offline',
     6  => 'Blocked',
     7  => 'Failed',
     8  => 'Non-RAID',
     9  => 'Removed',
    );

I guess there might be other similar issues. In any case, not as easy as just updating the OIDs.