centreon / centreon-plugins

Collection of standard plugins to discover and gather cloud-to-edge metrics and status across your whole IT infrastructure.
https://www.centreon.com
Apache License 2.0
310 stars 274 forks source link

[hardware::server::cisco::ucs::snmp::plugin] uninitialized values #4995

Closed gbin2265 closed 1 month ago

gbin2265 commented 4 months ago

Hello,

Bug report

I have multiple variables that are not initialized in the output

How to reproduce

Here are the error messages that I'm getting

centreon_plugins.pl' '--filter-uom' '(none)' '--hostname' 'x.x.x.x' '--plugin' 'hardware::server::cisco::ucs::snmp::plugin' '--snmp-autoreduce' '2' '--snmp-community' 'public' '--snmp-version' '2' '--mode' 'equipment' --debug --verbose

Use of uninitialized value in sprintf at /hardware/server/cisco/ucs/snmp/mode/components/blade.pm line 60.
Use of uninitialized value in sprintf at /hardware/server/cisco/ucs/snmp/mode/components/blade.pm line 60.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value $options{"value"} in pattern match (m//) at /centreon/plugins/templates/hardware.pm line 471.
Use of uninitialized value in sprintf at /hardware/server/cisco/ucs/snmp/mode/components/blade.pm line 70.

Please provide below the initial conditions to reproduce the bug

Cisco UCSX-210C-M6 - Firmware Version 5.2(0.230040)

Linux ctrlmon01.pol.be 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 4 14:55:32 EST 2024 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux Server release 7.9 (Maipo)

regards, Geert

gbin2265 commented 4 months ago

Hello,

We've been searching for over a year on how to read the temperature and power via SNMP from a CISCO UCSX-210C-M6 blade. We couldn't find the right OID, so we create a case on CISCO. It turned out that it wasn't possible until firmware version 5.1, and they recommended upgrading to firmware 5.2. Now it's possible to query the temperature (front/rear) and power via SNMP on a CISCO UCSX-210C-M6 blade.

They also provided this link with additional information. https://www.cisco.com/c/en/us/td/docs/unified_computing/Intersight/IMM_SNMP_Monitoring/b_imm_snmp_monitoring_guide/m_supported_mibs_imm.html

I noticed that the status of the blade (power on/off) doesn't use the same OID (OperPower/OperStatus) as the one used in your script. That's why the table is empty and the script is throwing errors (I think).

Could you do something with the corresponding OID .1.3.6.1.4.1.9.9.719.1.9 (and below) to adjust your script to the latest OIDs?

And perhaps you could also provide the temperature (front/rear) and POWER as performance data!?

regards, Geert

gbin2265 commented 4 months ago

snmpwalk for OID .1.3.6.1.4.1.9.9.719.1.9 (cucsComputeObjects)

CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeDn.1 = STRING: "sys/chassis-1/blade-1/blade"
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeRn.1 = STRING: blade
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeAvailability.1 = INTEGER: available(1)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeAvailableMemory.1 = Gauge32: 1048576
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeChassisId.1 = Gauge32: 1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeFltAggr.1 = Counter64: 0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeIntId.1 = STRING: 1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeModel.1 = STRING: UCSX-210C-M6
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeNumOfAdaptors.1 = Gauge32: 1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeNumOfCores.1 = Gauge32: 64
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeNumOfCpus.1 = Gauge32: 2
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeOperPower.1 = INTEGER: ok(10)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeOriginalUuid.1 = STRING: abfb8a02-UID-UID-UIS-e56192441f98
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeSerial.1 = STRING: SERIALSERIAL
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeServerId.1 = STRING: 1/1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeSlotId.1 = Gauge32: 1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeTotalMemory.1 = Gauge32: 1048576
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeUuid.1 = STRING: abfb8a02-UID-UID-UID-e56192441f98
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeVendor.1 = STRING: Cisco Systems Inc
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeNumOfCoresEnabled.1 = Gauge32: 64
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeMemorySpeed.1 = Gauge32: 3200
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeMfgTime.1 = STRING: 2022-4-7,0:0:0.0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladePartNumber.1 = STRING: 73-20511-01
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeVid.1 = STRING: V01
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeAssetTag.1 = STRING: N/A
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardDn.1 = STRING: "sys/chassis-1/blade-1/board"
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardRn.1 = STRING: board
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardCmosVoltage.1 = INTEGER: notSupported(100)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardId.1 = Gauge32: 1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardModel.1 = STRING: UCSX-210C-M6
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardOperPower.1 = INTEGER: ok(10)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardOperState.1 = INTEGER: notSupported(100)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardOperability.1 = INTEGER: notSupported(100)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardPerf.1 = INTEGER: notSupported(100)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardPower.1 = INTEGER: ok(10)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardPresence.1 = INTEGER: notSupported(100)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardRevision.1 = STRING: 0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardSerial.1 = STRING: SERIALSERIAL
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardThermal.1 = INTEGER: ok(1)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardVendor.1 = STRING: Cisco Systems Inc
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardVoltage.1 = INTEGER: ok(1)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardOperQualifierReason.1 = STRING: N/A
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardPowerUsage.1 = INTEGER: ok(1)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardFaultQualifier.1 = STRING: N/A
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardLocationDn.1 = STRING: N/A
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardCpuTypeDescription.1 = STRING: N/A
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsDn.1 = STRING: "sys/chassis-1/blade-1/board/power-stats"
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsRn.1 = STRING: power-stats
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsConsumedPower.1 = INTEGER: 351
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsConsumedPowerAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsConsumedPowerMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsConsumedPowerMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputCurrent.1 = INTEGER: 0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputCurrentAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputCurrentMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputCurrentMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputVoltage.1 = INTEGER: 12
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputVoltageAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputVoltageMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsInputVoltageMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsIntervals.1 = Gauge32: 0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsSuspect.1 = INTEGER: false(2)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsThresholded.1 = BITS: 00 00 00 00 00 00 00 00
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsTimeCollected.1 = STRING: 2024-4-21,12:11:33.0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbPowerStatsUpdate.1 = Gauge32: 163
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsDn.1 = STRING: "sys/chassis-1/blade-1/board/temp-stats"
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsRn.1 = STRING: temp-stats
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenIo.1 = INTEGER: 15
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenIoAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenIoMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenIoMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRear.1 = INTEGER: 44
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearL.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearLAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearLMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearLMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearR.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearRAvg.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearRMax.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsFmTempSenRearRMin.1 = INTEGER: -1
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsIntervals.1 = Gauge32: 0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsSuspect.1 = INTEGER: false(2)
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsThresholded.1 = BITS: 00 00 00 00 00 00 00 00
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsTimeCollected.1 = STRING: 2024-4-21,12:11:33.0
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeMbTempStatsUpdate.1 = Gauge32: 231
lucie-dubrunfaut commented 1 month ago

Hello :)

If I understand correctly, the plugin no longer works on blade components beyond version 5.1? And you would also have the temperature to be added for versions > 5.1? Anyway, to be able to adapt the plugin to this new equipment (>5.1) we would need the MIBs (specifically those associated with your equipment) and also if you can you provide us an SNMPWalk with OIDs number rather than label ? Like this : .1.3.6.1.4.1.9.9.719.1.9.2.1.42 = INTEGER: 10

gbin2265 commented 1 month ago

Hello,

see here the snmpwalk but with numbers :

snmpwalk x.x.x.x 1.3.6.1.4.1.9.9.719.1.9.2 snmpwalk x.x.x.x cucsCompute -On

.1.3.6.1.4.1.9.9.719.1.9.2.1.2.1 = STRING: "sys/chassis-1/blade-1/blade" .1.3.6.1.4.1.9.9.719.1.9.2.1.3.1 = STRING: blade .1.3.6.1.4.1.9.9.719.1.9.2.1.8.1 = INTEGER: available(1) .1.3.6.1.4.1.9.9.719.1.9.2.1.9.1 = Gauge32: 1048576 .1.3.6.1.4.1.9.9.719.1.9.2.1.10.1 = Gauge32: 1 .1.3.6.1.4.1.9.9.719.1.9.2.1.16.1 = Counter64: 0 .1.3.6.1.4.1.9.9.719.1.9.2.1.28.1 = STRING: 1 .1.3.6.1.4.1.9.9.719.1.9.2.1.32.1 = STRING: UCSX-210C-M6 .1.3.6.1.4.1.9.9.719.1.9.2.1.34.1 = Gauge32: 1 .1.3.6.1.4.1.9.9.719.1.9.2.1.35.1 = Gauge32: 64 .1.3.6.1.4.1.9.9.719.1.9.2.1.36.1 = Gauge32: 2 .1.3.6.1.4.1.9.9.719.1.9.2.1.40.1 = INTEGER: ok(10) .1.3.6.1.4.1.9.9.719.1.9.2.1.44.1 = STRING: 90a29f86-79bd-45cb-8834-fa01837fc765 .1.3.6.1.4.1.9.9.719.1.9.2.1.47.1 = STRING: FCH26137Q1H .1.3.6.1.4.1.9.9.719.1.9.2.1.48.1 = STRING: 1/1 .1.3.6.1.4.1.9.9.719.1.9.2.1.49.1 = Gauge32: 1 .1.3.6.1.4.1.9.9.719.1.9.2.1.50.1 = Gauge32: 1048576 .1.3.6.1.4.1.9.9.719.1.9.2.1.52.1 = STRING: 90a29f86-79bd-45cb-8834-fa01837fc765 .1.3.6.1.4.1.9.9.719.1.9.2.1.53.1 = STRING: Cisco Systems Inc .1.3.6.1.4.1.9.9.719.1.9.2.1.54.1 = Gauge32: 64 .1.3.6.1.4.1.9.9.719.1.9.2.1.56.1 = Gauge32: 3200 .1.3.6.1.4.1.9.9.719.1.9.2.1.57.1 = STRING: 2022-4-6,0:0:0.0 .1.3.6.1.4.1.9.9.719.1.9.2.1.58.1 = STRING: 73-20511-01 .1.3.6.1.4.1.9.9.719.1.9.2.1.59.1 = STRING: V01 .1.3.6.1.4.1.9.9.719.1.9.2.1.70.1 = STRING: N/A .1.3.6.1.4.1.9.9.719.1.9.6.1.2.1 = STRING: "sys/chassis-1/blade-1/board" .1.3.6.1.4.1.9.9.719.1.9.6.1.3.1 = STRING: board .1.3.6.1.4.1.9.9.719.1.9.6.1.4.1 = INTEGER: notSupported(100) .1.3.6.1.4.1.9.9.719.1.9.6.1.5.1 = Gauge32: 1 .1.3.6.1.4.1.9.9.719.1.9.6.1.6.1 = STRING: UCSX-210C-M6 .1.3.6.1.4.1.9.9.719.1.9.6.1.7.1 = INTEGER: ok(10) .1.3.6.1.4.1.9.9.719.1.9.6.1.8.1 = INTEGER: notSupported(100) .1.3.6.1.4.1.9.9.719.1.9.6.1.9.1 = INTEGER: notSupported(100) .1.3.6.1.4.1.9.9.719.1.9.6.1.10.1 = INTEGER: notSupported(100) .1.3.6.1.4.1.9.9.719.1.9.6.1.11.1 = INTEGER: ok(10) .1.3.6.1.4.1.9.9.719.1.9.6.1.12.1 = INTEGER: notSupported(100) .1.3.6.1.4.1.9.9.719.1.9.6.1.13.1 = STRING: 0 .1.3.6.1.4.1.9.9.719.1.9.6.1.14.1 = STRING: FCH26137Q1H .1.3.6.1.4.1.9.9.719.1.9.6.1.15.1 = INTEGER: ok(1) .1.3.6.1.4.1.9.9.719.1.9.6.1.16.1 = STRING: Cisco Systems Inc .1.3.6.1.4.1.9.9.719.1.9.6.1.17.1 = INTEGER: ok(1) .1.3.6.1.4.1.9.9.719.1.9.6.1.18.1 = STRING: N/A .1.3.6.1.4.1.9.9.719.1.9.6.1.19.1 = INTEGER: ok(1) .1.3.6.1.4.1.9.9.719.1.9.6.1.20.1 = STRING: N/A .1.3.6.1.4.1.9.9.719.1.9.6.1.21.1 = STRING: N/A .1.3.6.1.4.1.9.9.719.1.9.6.1.23.1 = STRING: N/A .1.3.6.1.4.1.9.9.719.1.9.14.1.2.1 = STRING: "sys/chassis-1/blade-1/board/power-stats" .1.3.6.1.4.1.9.9.719.1.9.14.1.3.1 = STRING: power-stats .1.3.6.1.4.1.9.9.719.1.9.14.1.4.1 = INTEGER: 444 .1.3.6.1.4.1.9.9.719.1.9.14.1.5.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.6.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.7.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.8.1 = INTEGER: 0 .1.3.6.1.4.1.9.9.719.1.9.14.1.9.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.10.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.11.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.12.1 = INTEGER: 12 .1.3.6.1.4.1.9.9.719.1.9.14.1.13.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.14.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.15.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.14.1.16.1 = Gauge32: 0 .1.3.6.1.4.1.9.9.719.1.9.14.1.17.1 = INTEGER: false(2) .1.3.6.1.4.1.9.9.719.1.9.14.1.18.1 = BITS: 00 00 00 00 00 00 00 00 .1.3.6.1.4.1.9.9.719.1.9.14.1.19.1 = STRING: 2024-7-19,14:46:2.0 .1.3.6.1.4.1.9.9.719.1.9.14.1.20.1 = Gauge32: 4007 .1.3.6.1.4.1.9.9.719.1.9.16.1.2.1 = STRING: "sys/chassis-1/blade-1/board/temp-stats" .1.3.6.1.4.1.9.9.719.1.9.16.1.3.1 = STRING: temp-stats .1.3.6.1.4.1.9.9.719.1.9.16.1.4.1 = INTEGER: 15 .1.3.6.1.4.1.9.9.719.1.9.16.1.5.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.6.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.7.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.8.1 = INTEGER: 47 .1.3.6.1.4.1.9.9.719.1.9.16.1.9.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.10.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.11.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.12.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.13.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.14.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.15.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.16.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.17.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.18.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.19.1 = INTEGER: -1 .1.3.6.1.4.1.9.9.719.1.9.16.1.20.1 = Gauge32: 0 .1.3.6.1.4.1.9.9.719.1.9.16.1.21.1 = INTEGER: false(2) .1.3.6.1.4.1.9.9.719.1.9.16.1.22.1 = BITS: 00 00 00 00 00 00 00 00 .1.3.6.1.4.1.9.9.719.1.9.16.1.23.1 = STRING: 2024-7-19,14:46:2.0 .1.3.6.1.4.1.9.9.719.1.9.16.1.24.1 = Gauge32: 8921

gbin2265 commented 1 month ago

blade oper -> ".1.3.6.1.4.1.9.9.719.1.9.2.1.40.1" board oper -> ".1.3.6.1.4.1.9.9.719.1.9.6.1.7.1" Stat Power -> ".1.3.6.1.4.1.9.9.719.1.9.14.1.4.1" Stat Temp Front -> ".1.3.6.1.4.1.9.9.719.1.9.16.1.4.1" Stat Temp Rear -> ".1.3.6.1.4.1.9.9.719.1.9.16.1.8.1"

gbin2265 commented 1 month ago

For blades on USCX, it is only possible to perform monitoring via SNMP for Status/Temp/Power from version 5.2 onwards.

The OIDs you are currently using are think for UCS-C but not for the USC-X (firmware 5.2)

lucie-dubrunfaut commented 1 month ago

Hello :)

Thank you very much for all these very clear details :) To facilitate the versatility of the plugin, do you have an idea of ​​a specific OID (or other way by querying the equipment) which would allow us to retrieve the firmware version (to check if it is >=5.2) as well as to decide between a USC-X and a USC-C equipment?

gbin2265 commented 1 month ago

Hello,

I have reviewed the emails with CISCO once more and found this as a link. https://www.cisco.com/c/en/us/td/docs/unified_computing/Intersight/IMM_SNMP_Monitoring/b_imm_snmp_monitoring_guide/m_supported_mibs_imm.html

So if I see it correctly, the temp/power... is available from version 5.1.0 (in the emails they mentioned from version 5.2).

If I am correct, then it is basically a matter of checking if the OID cucsAdaptorUnitTable exists, and then you know that the temp/power/... option is available (Firmware 5.1.0 or higher).

I see this in the web page :

Following are the MIB tables supported by CIMC on blade servers with server firmware version 5.1(0) and later.
cucsAdaptorUnitTable
cucsComputeMbPowerStatsTable
cucsComputeMbTempStatsTable
cucsEquipmentGraphicsCardCapProviderTable
cucsMemoryUnitTable
cucsMemoryUnitEnvStatsTable

We only have UCSX equipment, so it is difficult to compare with other CISCO hardware. Maybe this firmware also applies to other CISCO hardware to find out the temp/power/... via the snmp - CISCO KVM console.

When I look at this link, I get the impression that version 5.2 is not yet available for the UCS-C. https://www.cisco.com/c/en/us/td/docs/unified_computing/Intersight/Server-Firmware/4_3/b_intersight_server_fw_rn_4_3.html

Regarding the UCSX, I think you can only see this in the description of the blade.

CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBladeModel.1 = STRING: UCSX-210C-M6
CISCO-UNIFIED-COMPUTING-COMPUTE-MIB::cucsComputeBoardModel.1 = STRING: UCSX-210C-M6

.1.3.6.1.4.1.9.9.719.1.9.2.1.32.1 = STRING: UCSX-210C-M6
.1.3.6.1.4.1.9.9.719.1.9.6.1.6.1 = STRING: UCSX-210C-M6
lucie-dubrunfaut commented 1 month ago

Hello :)

Thank you for all these elements, I was able to complete the necessary fields to propose an enhancement of the plugin. Let me close this issue here because it is now an enhancement request and these are managed on TheWatch Ideas to be vote on (you can create a new idea and link this github issue in your proposition). Thank you for your understanding 🙏