Update Dell MIBs (#16120)

* Update Dell MIBs
tidy up some related code a bit too to make it more readable

* handle extra data correctly (discard it)
This commit is contained in:
Tony Murray 2024-06-14 22:33:51 -05:00 committed by GitHub
parent 449b53d7fc
commit 04a70d2fda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 6486 additions and 1622 deletions

View File

@ -22,13 +22,12 @@ $tables = [
['batteryTable', '.1.3.6.1.4.1.674.10893.1.20.130.15.1.4.', 'batteryState', 'batteryName', 'StorageManagement-MIB', 'dell'], ['batteryTable', '.1.3.6.1.4.1.674.10893.1.20.130.15.1.4.', 'batteryState', 'batteryName', 'StorageManagement-MIB', 'dell'],
]; ];
foreach ($tables as $tablevalue) { foreach ($tables as [$table, $num_oid, $value_oid, $descr_oid, $mib, $mib_dir]) {
$temp = snmpwalk_cache_multi_oid($device, $tablevalue[0], [], $tablevalue[4], $tablevalue[5]); $temp = snmpwalk_cache_multi_oid($device, $table, [], $mib, $mib_dir);
$cur_oid = $tablevalue[1];
if (is_array($temp)) { if (is_array($temp)) {
//Create State Index //Create State Index
$state_name = 'dell.' . $tablevalue[2]; $state_name = 'dell.' . $value_oid;
if ($state_name == 'dell.processorDeviceStatusStatus' || $state_name == 'dell.memoryDeviceStatus' || $state_name == 'dell.powerSupplyStatus' || $state_name == 'dell.intrusionStatus') { if ($state_name == 'dell.processorDeviceStatusStatus' || $state_name == 'dell.memoryDeviceStatus' || $state_name == 'dell.powerSupplyStatus' || $state_name == 'dell.intrusionStatus') {
$states = [ $states = [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'other'], ['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'other'],
@ -107,18 +106,18 @@ foreach ($tables as $tablevalue) {
create_state_index($state_name, $states); create_state_index($state_name, $states);
foreach ($temp as $index => $entry) { foreach ($temp as $index => $entry) {
if (strpos($index, '54.') === false) { //Because Dell is buggy if (array_key_exists($value_oid, $entry)) { // ward against extra data from newer MIBs
if ($state_name == 'dell.intrusionStatus') { if ($state_name == 'dell.intrusionStatus') {
$descr = $tablevalue[3]; $descr = $descr_oid;
} elseif ($state_name == 'dell.batteryState') { } elseif ($state_name == 'dell.batteryState') {
$descr = str_replace('"', '', snmp_get($device, 'batteryConnectionControllerName.' . $index . '', '-Ovqn', $tablevalue[4])) . ' - ' . $temp[$index][$tablevalue[3]]; $descr = str_replace('"', '', snmp_get($device, 'batteryConnectionControllerName.' . $index, '-Ovqn', $mib)) . ' - ' . $entry[$descr_oid];
} elseif ($state_name == 'dell.arrayDiskState') { } elseif ($state_name == 'dell.arrayDiskState') {
$descr = str_replace('"', '', snmp_get($device, 'arrayDiskEnclosureConnectionEnclosureName.' . $index . '', '-Ovqn', $tablevalue[4])) . ' - ' . $temp[$index][$tablevalue[3]]; $descr = str_replace('"', '', snmp_get($device, 'arrayDiskEnclosureConnectionEnclosureName.' . $index, '-Ovqn', $mib)) . ' - ' . $entry[$descr_oid];
} else { } else {
$descr = strip_tags($temp[$index][$tablevalue[3]]); // Use clean as virtualDiskDeviceName is user defined $descr = strip_tags($entry[$descr_oid]); // Use clean as virtualDiskDeviceName is user defined
} }
//Discover Sensors //Discover Sensors
discover_sensor($valid['sensor'], 'state', $device, $cur_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $temp[$index][$tablevalue[2]], 'snmp', $index); discover_sensor($valid['sensor'], 'state', $device, $num_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $entry[$value_oid], 'snmp', $index);
//Create Sensor To State Index //Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index); create_sensor_to_state_index($device, $state_name, $index);

View File

@ -20,8 +20,7 @@ $tables = [
['systemBatteryTable', '.1.3.6.1.4.1.674.10892.5.4.600.50.1.5.', 'systemBatteryStatus', 'systemBatteryLocationName'], ['systemBatteryTable', '.1.3.6.1.4.1.674.10892.5.4.600.50.1.5.', 'systemBatteryStatus', 'systemBatteryLocationName'],
]; ];
foreach ($tables as $tablevalue) { foreach ($tables as [$table_oid, $num_oid, $value_oid, $descr_oid]) {
[$table_oid, $num_oid, $value_oid, $descr_oid] = $tablevalue;
$temp = snmpwalk_cache_multi_oid($device, $table_oid, [], 'IDRAC-MIB-SMIv2', null, '-OQUse'); $temp = snmpwalk_cache_multi_oid($device, $table_oid, [], 'IDRAC-MIB-SMIv2', null, '-OQUse');
// '-OQUsetX' // '-OQUsetX'

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
-- --
-- dcstorag.mib -- dcstorag.mib
-- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 240 -- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 240
-- Monday, September 02, 2013 at 16:26:07 -- Release Date: December 2022
-- --
-- Copyright (c) 2002 Dell -- Copyright (c) 2000-2022 Dell Inc.
-- Module Name: dcstorag.mib -- Module Name: dcstorag.mib
-- Abstract: -- Abstract:
-- Defines the Dell OpenManage Storage Management SNMP interface. -- Defines the Dell OpenManage Storage Management SNMP interface.
@ -925,7 +925,10 @@
md1000(8), md1000(8),
md1120(9), md1120(9),
md1200(10), md1200(10),
md1220(11) md1220(11),
md1400(12),
md1420(13),
mx5016s(14)
} }
ACCESS read-only ACCESS read-only
STATUS mandatory STATUS mandatory
@ -941,8 +944,10 @@
7: Dell PV660F / PV224F 7: Dell PV660F / PV224F
8: Dell MD1000 8: Dell MD1000
9: Dell MD1120 9: Dell MD1120
10: Dell MD1200 11: Dell MD1220
11: Dell MD1220" 12: Dell MD1400
13: Dell MD1420
14: Dell MX5016S"
::= { enclosureEntry 16 } ::= { enclosureEntry 16 }
@ -1300,6 +1305,22 @@
arrayDiskMaxLinkWidth arrayDiskMaxLinkWidth
INTEGER, INTEGER,
arrayDiskNegotiatedLinkWidth arrayDiskNegotiatedLinkWidth
INTEGER,
nonRAIDdiskCachePolicy
DisplayString,
arraydiskCachePolicy
DisplayString,
arraydiskISECapable
INTEGER,
arraydiskWWN
DisplayString,
arraydiskEncryptionProtocol
INTEGER,
arraydiskErrorRecoverable
INTEGER,
arraydiskErrorDescription
DisplayString,
arraydiskAvailableSpare
INTEGER INTEGER
} }
@ -1352,6 +1373,7 @@
rebuild(24), rebuild(24),
noMedia(25), noMedia(25),
formatting(26), formatting(26),
unusable(27),
diagnostics(28), diagnostics(28),
predictiveFailure(34), predictiveFailure(34),
initializing(35), initializing(35),
@ -1382,6 +1404,7 @@
24: Rebuild 24: Rebuild
25: No Media - CD-ROM or removable disk has no media. 25: No Media - CD-ROM or removable disk has no media.
26: Formatting - In the process of formatting. 26: Formatting - In the process of formatting.
27: Unusable - INIT error drive
28: Diagnostics - Diagnostics are running. 28: Diagnostics - Diagnostics are running.
34: Predictive failure 34: Predictive failure
35: Initializing: Applies only to virtual disks on PERC, PERC 2/SC, and PERC 2/DC controllers. 35: Initializing: Applies only to virtual disks on PERC, PERC 2/SC, and PERC 2/DC controllers.
@ -1996,6 +2019,87 @@
Possible values are: 0 - 8." Possible values are: 0 - 8."
::= { arrayDiskEntry 53 } ::= { arrayDiskEntry 53 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.54
nonRAIDdiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy of the NonRAID disk.
Possible values are: Enabled - Disabled."
::= { arrayDiskEntry 54 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.55
arraydiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy of the array disk.
Possible values are: Enabled - Disabled - Default."
::= { arrayDiskEntry 55 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.56
arraydiskISECapable OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A boolean value depicitng if the disk is Instant Secure Erase Capable or not."
::= { arrayDiskEntry 56 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.57
arraydiskWWN OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays WWN for a disk."
::= { arrayDiskEntry 57 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.58
arraydiskEncryptionProtocol OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays Encrption Protocol for a disk.
Possible Values:
0: No encryption
1: TCG Enterprise SSC
2: TCG Opal SSC"
::= { arrayDiskEntry 58 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.59
arraydiskErrorRecoverable OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates if INIT error drive is recoverable.
Values: 1- Yes, 0 - No, 99 - Not available / Not applicable."
::= { arrayDiskEntry 59 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.60
arraydiskErrorDescription OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays description of INIT error."
::= { arrayDiskEntry 60 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.61
arraydiskAvailableSpare OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays Available Spare for a PCIe SSD.
Possible Values: 0-100 %
Note: A value of 9999 indicates Not Applicable or Not Available"
::= { arrayDiskEntry 61 }
-- 1.3.6.1.4.1.674.10893.1.20.130.5 -- 1.3.6.1.4.1.674.10893.1.20.130.5
arrayDiskEnclosureConnectionTable OBJECT-TYPE arrayDiskEnclosureConnectionTable OBJECT-TYPE
SYNTAX SEQUENCE OF ArrayDiskEnclosureConnectionEntry SYNTAX SEQUENCE OF ArrayDiskEnclosureConnectionEntry
@ -4135,7 +4239,13 @@
frontChassisSlot frontChassisSlot
INTEGER, INTEGER,
controllerInstance controllerInstance
INTEGER INTEGER,
controllerNonRAIDdiskCachePolicy
DisplayString,
controllerAutoconfigureBehavior
DisplayString
-- controllerSupportedInterface
-- INTEGER,
} }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.1 -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.1
@ -4663,6 +4773,7 @@
STATUS mandatory STATUS mandatory
DESCRIPTION DESCRIPTION
"The PCI slot number or embedded number for controllers on the motherboard. "The PCI slot number or embedded number for controllers on the motherboard.
For Modular or NGM controllers, the PCI Slot Designation or Embedded is displayed.
" "
::= { controllerEntry 42 } ::= { controllerEntry 42 }
@ -4920,7 +5031,7 @@
STATUS mandatory STATUS mandatory
DESCRIPTION DESCRIPTION
"Indicates the current encryption mode of the controller. "Indicates the current encryption mode of the controller.
Value: 0 - No Encryption, 1 - Local Key Management (LKM), 2 - Dell Key Management (DKM), 99 - Not Applicable Value: 0 - No Encryption, 1 - Local Key Management (LKM), 2 - Secure Enterprise Key Management (SEKM), 99 - Not Applicable
" "
::= { controllerEntry 63 } ::= { controllerEntry 63 }
@ -5030,6 +5141,47 @@
"Shows the current instance of the controller for stash ." "Shows the current instance of the controller for stash ."
::= { controllerEntry 73 } ::= { controllerEntry 73 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.74
controllerNonRAIDdiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy for Non-RAID disks."
::= { controllerEntry 74 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.75
controllerAutoconfigureBehavior OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current auto configure behavior mode on controller."
::= { controllerEntry 75 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.75
-- controllerSupportedInterfaces OBJECT-TYPE
-- SYNTAX INTEGER
-- {
-- sata(7),
-- sas(8),
-- pcie(9)
-- sas, sata (10)
-- sas, sata, pcie (11)
-- }
-- ACCESS read-only
-- STATUS mandatory
-- DESCRIPTION
-- "The supported device protocol on controller.
-- Possible values:
-- 7: SATA
-- 8: SAS
-- 9: PCIe
-- 10: SAS, SATA
-- 11: SAS, SATA, PCIE"
-- ::= { controllerEntry 75 }
-- 1.3.6.1.4.1.674.10893.1.20.130.17 -- 1.3.6.1.4.1.674.10893.1.20.130.17
tapeDriveTable OBJECT-TYPE tapeDriveTable OBJECT-TYPE
SYNTAX SEQUENCE OF TapeDriveEntry SYNTAX SEQUENCE OF TapeDriveEntry
@ -5243,7 +5395,9 @@
nvmeAdapterNegotiatedLinkWidth nvmeAdapterNegotiatedLinkWidth
INTEGER, INTEGER,
nvmeAdapterSubVendor nvmeAdapterSubVendor
DisplayString DisplayString,
nvmeAdapterAvailableSpare
INTEGER
} }
@ -5518,6 +5672,14 @@
"Sub vendor of the NVMe Adapter device." "Sub vendor of the NVMe Adapter device."
::= { nvmeAdapterEntry 28} ::= { nvmeAdapterEntry 28}
-- 1.3.6.1.4.1.674.10893.1.20.130.18.1.29
nvmeAdapterAvailableSpare OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The remaining available spare space on the NVME device"
::= { nvmeAdapterEntry 29 }
-- 1.3.6.1.4.1.674.10893.1.20.140 -- 1.3.6.1.4.1.674.10893.1.20.140
logicalDevices OBJECT IDENTIFIER ::= { storageManagement 140 } logicalDevices OBJECT IDENTIFIER ::= { storageManagement 140 }
@ -5873,7 +6035,8 @@
writeBack(3), writeBack(3),
writeThrough(4), writeThrough(4),
enabledAlways(5), enabledAlways(5),
enabledAlwaysSAS(6), forceWriteback(6),
enabledAlwaysSAS(7),
notApplicable(9) notApplicable(9)
} }
ACCESS read-only ACCESS read-only
@ -5887,7 +6050,8 @@
3: LSI Write Back 3: LSI Write Back
4: LSI Write Through 4: LSI Write Through
5: Enabled Always - Adaptec only 5: Enabled Always - Adaptec only
6: Enabled Always - SAS only 6: Force write back
7: Enabled Always - SAS only
9: Not Applicable" 9: Not Applicable"
::= { virtualDiskEntry 10 } ::= { virtualDiskEntry 10 }
@ -6097,6 +6261,7 @@
sata(2), sata(2),
scsi(3), scsi(3),
ide(4), ide(4),
pcie(5),
unknown(99) unknown(99)
} }
ACCESS read-only ACCESS read-only
@ -6108,6 +6273,7 @@
2: SATA 2: SATA
3: SCSI 3: SCSI
4: IDE 4: IDE
5: PCIE
99: Unknown 99: Unknown
" "
::= { virtualDiskEntry 22 } ::= { virtualDiskEntry 22 }
@ -6149,11 +6315,18 @@
-- 1.3.6.1.4.1.674.10893.1.20.140.1.1.26 -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.26
virtualDiskDiskCachePolicy OBJECT-TYPE virtualDiskDiskCachePolicy OBJECT-TYPE
SYNTAX INTEGER SYNTAX INTEGER
{
unchanged(1),
enabled(2),
disabled(4),
default(8),
undetermined(10)
}
ACCESS read-only ACCESS read-only
STATUS mandatory STATUS mandatory
DESCRIPTION DESCRIPTION
"Indicates disk cache policy of the logical device. "Indicates disk cache policy of the logical device.
Value: 1 - Enabled, 2 - Disabled, 99 - Undetermined" Value: 1 - Unchanged, 2 - Enabled, 4 - Disabled, 8 - Default, 10 - Undetermined"
::= { virtualDiskEntry 26 } ::= { virtualDiskEntry 26 }
@ -6519,6 +6692,8 @@
SYNTAX SEQUENCE OF FluidCacheDiskEntry SYNTAX SEQUENCE OF FluidCacheDiskEntry
ACCESS not-accessible ACCESS not-accessible
STATUS mandatory STATUS mandatory
DESCRIPTION
"Indicates the Disk Table of the fludicache component"
::= { logicalDevices 5 } ::= { logicalDevices 5 }
@ -6527,6 +6702,8 @@
SYNTAX FluidCacheDiskEntry SYNTAX FluidCacheDiskEntry
ACCESS not-accessible ACCESS not-accessible
STATUS mandatory STATUS mandatory
DESCRIPTION
"Indicates the Disk Number of the fludicache component"
INDEX { fluidCacheDiskNumber } INDEX { fluidCacheDiskNumber }
::= { fluidCacheDiskTable 1 } ::= { fluidCacheDiskTable 1 }
@ -6683,6 +6860,8 @@
SYNTAX SEQUENCE OF FluidCachePoolEntry SYNTAX SEQUENCE OF FluidCachePoolEntry
ACCESS not-accessible ACCESS not-accessible
STATUS mandatory STATUS mandatory
DESCRIPTION
"Indicates the Pool Table of the fludicache component"
::= { logicalDevices 6 } ::= { logicalDevices 6 }
@ -6691,6 +6870,8 @@
SYNTAX FluidCachePoolEntry SYNTAX FluidCachePoolEntry
ACCESS not-accessible ACCESS not-accessible
STATUS mandatory STATUS mandatory
DESCRIPTION
"Indicates the Pool Number of the fludicache component"
INDEX { fluidCachePoolNumber } INDEX { fluidCachePoolNumber }
::= { fluidCachePoolTable 1 } ::= { fluidCachePoolTable 1 }
@ -8963,6 +9144,35 @@
--#STATUS MANDATORY --#STATUS MANDATORY
::= 170400 ::= 170400
alertRRWEThresholdSASSATASSD TRAP-TYPE
ENTERPRISE storageManagementEvent
VARIABLES { messageIDEvent, descriptionEvent }
DESCRIPTION
"Storage Management Information
There is no global status change associated with this trap."
--#TYPE "Storage Management Event: Storage Management Information"
--#SEVERITY INFORMATIONAL
--#SUMMARY "Alert message ID: %s, The Remaining Rated Write Endurance Threshold for SAS and SATA SSDs is set to. %s"
--#ARGUMENTS { 0, 1 }
--#CATEGORY "Status Events"
--#STATE OPERATIONAL
--#STATUS MANDATORY
::= 170401
alertRRWEThresholdPCIeSSD TRAP-TYPE
ENTERPRISE storageManagementEvent
VARIABLES { messageIDEvent, descriptionEvent }
DESCRIPTION
"Storage Management Information
There is no global status change associated with this trap."
--#TYPE "Storage Management Event: Storage Management Information"
--#SEVERITY INFORMATIONAL
--#SUMMARY "Alert message ID: %s, The Remaining Rated Write Endurance Threshold for PCIe SSDs is set to. %s"
--#ARGUMENTS { 0, 1 }
--#CATEGORY "Status Events"
--#STATE OPERATIONAL
--#STATUS MANDATORY
::= 170402
END END
-- --

File diff suppressed because it is too large Load Diff