on 12-22-2011 06:20 AM
Monitoring Power-supplies is done using the ENTITY-MIB (RFC-2737) and MIBs which extend/supplement the ENTITY-MIB. The ENTITY-MIB’s entPhysicalTable defines the MIB identifierfor an inventory item, entPhysicalIndex, which is used by the other MIBs extending ENTITY-MIB information.
The relevant Cisco extensions to the ENTITY-MIB supported:
NOTE: In XR Power Supply information is considered “admin” restricted information which is therefore only accessible via community-strings/usernames configured with the “SystemOwner” keyword, ie. “snmp-server community adminLevelCommStr RO SystemOwner” (then poll with “adminLevelCommStr” as community-string).
Use the entPhysicalTable to determine the physical hierarchy of entities. The entPhysicalTable maps entPhysicalIndex values to the other identifying information for each physical entity modeled in the system. The hierarchy of entities is learned using the following objects:
Object Name | Description |
entPhysicalClass | Indicates the generic type of entity being modeled. |
entPhysicalContainedIn | Indicates the parent entity for the entity being modeled. |
entPhysicalParentRelPos | Indicates the position number of the entity within its parent entity relative to other entities of the same class. |
The entity hierarchy visualization:
Entity Hierarchy Visualization for Power Supplies with Entity Details
Entity Hierarchy Output Format:
|
<<entPhysicalClass>>
|
+-->[entPhysicalParentRelPos] entPhysicalIndex : "entPhysicalName"
| "entPhysicalDescr"
| "entPhysicalVendorType"
|
... hierarchy of children (entPhysicalContainedIn == entPhysicalIndex)
|
<<chassis>>
|
+-->[ -1] 24555730 : "chassis ASR-9010-AC"
| "ASR-9010 AC Chassis"
| "cevChassisASR9010AC"
|
<<container>>
|
|
+-->[ 12] 43665869 : "slot 0/PM0"
| | "Cisco ASR9K AC Power Entry Module Container"
| | "cevContainerASR9KPowerSupplySlotAC"
| |
| <<powerSupply>>
| |
| +-->[ 0] 66531208 : "power-module 0/PM0/SP"
| | "3kW AC Power Module"
| | "cevPowerSupplyASR9KAC3KW"
| |
| <<module>>
| |
| +-->[ 0] 19750579 : "module 0/PM0/SP"
| | "Power-Module host "
| | "cevModuleASR9KHost"
| |
| <<sensor>>
| |
| +-->[ 0] 20133606 : "capacity 0/PM0/SP"
| | "Power Module Capacity Sensor"
| | "cevSensor.71"
| |
| +-->[ 1] 3355929 : "voltage 0/PM0/SP"
| | "Power Module Voltage Sensor"
| | "cevSensor.72"
| |
| +-->[ 2] 53687180 : "current 0/PM0/SP"
| "Power Module Current Sensor"
| "cevSensor.73"
|
+-->[ 13] 60443482 : "slot 0/PM1"
| "Cisco ASR9K AC Power Entry Module Container"
| "cevContainerASR9KPowerSupplySlotAC"
|
+-->[ 14] 10110611 : "slot 0/PM2"
| "Cisco ASR9K AC Power Entry Module Container"
| "cevContainerASR9KPowerSupplySlotAC"
|
+-->[ 15] 26888288 : "slot 0/PM3"
| "Cisco ASR9K AC Power Entry Module Container"
| "cevContainerASR9KPowerSupplySlotAC"
|
+-->[ 16] 43667457 : "slot 0/PM4"
| "Cisco ASR9K AC Power Entry Module Container"
| "cevContainerASR9KPowerSupplySlotAC"
|
+-->[ 17] 60445166 : "slot 0/PM5"
"Cisco ASR9K AC Power Entry Module Container"
"cevContainerASR9KPowerSupplySlotAC"
Using the info from the entPhysicalTable the information from the CISCO-ENTITY-FRU-CONTROL-MIB can be obtained with the appropriate entPhysicalIndex values for the entities of concern.
Object Name | Description |
cefcFRUPowerAdminStatus | Power Administrative status of the entity |
cefcFRUPowerOperStatus | Power Operational Status of the entity |
cefcFRUCurrent | Current supplied by the entity – positive values indicate power-supplied by the entity; negative values indicate current required to operate the entity. |
cefcFRUPowerAdminStatus.66531208 = on(1)
cefcFRUPowerOperStatus.66531208 = on(2)
cefcFRUCurrent.66531208 = 3000
For power supply sensors the entSensorValueTable is supported to indicate the value of the sensors. The entSensorThresholdTable is not supported for ASR9K power-supply sensors.
For 20133606 : "capacity 0/PM0/SP"
entSensorType.20133606 = watts(6)
entSensorScale.20133606 = units(9)
entSensorPrecision.20133606 = 0
entSensorValue.20133606 = 3000
entSensorStatus.20133606 = ok(1)
entSensorValueTimeStamp.20133606 = 00:00:00.00
entSensorValueUpdateRate.20133606 = 0
For 3355929 : "voltage 0/PM0/SP"
entSensorType.3355929 = voltsDC(4)
entSensorScale.3355929 = milli(8)
entSensorPrecision.3355929 = 0
entSensorValue.3355929 = 54350
entSensorStatus.3355929 = ok(1)
entSensorValueTimeStamp.3355929 = 00:00:00.00
entSensorValueUpdateRate.3355929 = 0
For 53687180 : "current 0/PM0/SP"
entSensorType.53687180 = amperes(5)
entSensorScale.53687180 = milli(8)
entSensorPrecision.53687180 = 0
entSensorValue.53687180 = 25600
entSensorStatus.53687180 = ok(1)
entSensorValueTimeStamp.53687180 = 00:00:00.00
entSensorValueUpdateRate.53687180 = 0
well total different seems a bit of an overstatement, no? 8% difference.
thing is the cli gets the actual read from the hardware instantly, snmp gets it from cached (so periodic updated) ones so the fact that there is some fluctuation is not unexpected.
this falls for me within the realm of acceptable.
"fixing" this with hw reads every time an snmp query comes in comes along with a significant scale impact, hence the caching layers put in for better performance etc.
xander
True, 8% might be a fluctuation. But whe I try to read 0/PM1 i get really weird results:
ENTITY-MIB::entPhysicalName.2237736 = STRING: module 0/PM1/SP
ENTITY-MIB::entPhysicalName.15858003 = STRING: capacity 0/PM1/SP
ENTITY-MIB::entPhysicalName.21657197 = STRING: power-module 0/PM1/SP
ENTITY-MIB::entPhysicalName.32635680 = STRING: voltage 0/PM1/SP
ENTITY-MIB::entPhysicalName.49413261 = STRING: current 0/PM1/SP
ENTITY-MIB::entPhysicalName.60443482 = STRING: slot 0/PM1
Voltage:
CISCO-ENTITY-SENSOR-MIB::entSensorValue.32635680 = INTEGER: 54012
Amps:
CISCO-ENTITY-SENSOR-MIB::entSensorValue.49413261 = INTEGER: 19750
So, when I calculate the capacity:
54V * 19,8A = 1069,2W
The output from the show command:
R/S/I Power Supply Voltage Current
(W) (V) (A)
0/PM0/* 1060.8 54.4 19.5
0/PM1/* 528.2 53.9 9.8
--------------
Total: 1589.0
This result seems to match PM0 instead of PM1.
that I agree with Robert, it seems to return values from different module.
not knowing what version you have there, I see quite a few fixes there:
CSCur52091: 5.3.0: SNMP-CLI mismatch for entSensorThresholdValue
CSCus78773: 5.3.1:wrong display of 2 instances of line_8 voltage sensor in CLI
CSCuu69614: 5.3.0:FC2 entSensorThresholdEvaluation is improper for voltage sensors
you could try a reseat of the power modules so they reindex or a process restart of the invmgr to try and alleviate this issue.
regards
xander
Hi Xander,
It seems to be limited to one router, other routers show the correct values for their power supplies. I have a different question though:
When trying to monitor the power usage for a linecard in my router I can't find an entry for the LC voltage and current. I do find several entries for the voltage:
ENTITY-MIB::entPhysicalName.6752423 = STRING: voltage 0/2/0
ENTITY-MIB::entPhysicalName.23530036 = STRING: voltage 0/2/0
ENTITY-MIB::entPhysicalName.40309205 = STRING: voltage 0/2/0
These values are way too low, around 2V, so I think I've got the wrong entries. Do you have any experience with monitoring the power consumption for a LC?
yeah yu mean the actual LC draw right?
I dont believe that is in the mib, but you could walk it to see if the actual instances from this admin show env power:
R/S/I Power Draw Voltage Current
(W) (V) (A)
0/0/* 519.3 54.1 9.6
0/2/* 731.6 53.8 13.6
are in there, dont believe they are.
the low voltage points you see are the sensors next to some of the asics and cpu's to measure the voltage at their inlets, not necessary to monitor those.
cheers
xander
Hey Alex, how are you doing?
Well, I'm not sure if here is the best place for making this question but where do I find the MIB/OID to monitor the temperature of ASR-9000V module?
Thanks in advance,
Renato Reis
there is no specific MIB for satellite environmental monitoring. CISCO-ENTITY-FRU-CONTROL-MIB is the MIB to use.
/Aleksandar
Thank you so much Alek !
Dear Alex,
Support required : Failed to Read Power/Voltage Reading using these MIB's( CISCO-ENTITY- SENSOR-MIB) and (CISCO-ENTITY-FRU-CONTROL-MIB)
I am first time configuring SNMP-v2 in Cisco Switch.
My Switch Details: Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M), Version 15.2(2)E6, RELEASE SOFTWARE (fc1).
I downloaded All SNMP v2 MIB's related to this switch from Cisco Web site and loaded into I-Reasoning MIB Browser.
I am able to query few other OID like temperature and they are showing correct values.But i can't able to query Volatge/Power consumption from these MIB's ( CISCO-ENTITY-SENSOR-MIB) and (CISCO-ENTITY-FRU-CONTROL-MIB)
Kindly help me to resolve this issue.
Thanks,
Prasad
hi Prasad,
not all platforms have the same capabilities when it comes to reading environmental information. This document was written for the ASR9000 platform. Cisco2960X is a L2 switch that doesn't have the same capabilities as Service Provider grade products like ASR9000. If you have loaded the latest available IOS release for your c2960X, the information that you have obtained is very likely all that this platform can provide.
hope this helps,
Aleksandar
Dear Alex,
Thanks for quick response. This information will surely helpful to me and this info also saved my time a lot.
Thank you very much.
ASR9001 cXR 6.6.3 example for simplicity
#################################
SNMP Config for testing
!
snmp-server user PSUTEST USR-GRP-SNMP-RO-00003 v2c SystemOwner
snmp-server group USR-GRP-SNMP-RO-00003 v2c
!
RP/0/RSP0/CPU0:ASR9001#admin show platform
Thu Feb 2 06:16:17.180 UTC
Node Type State Config State
-----------------------------------------------------------------------------
0/RSP0/CPU0 ASR9001-RP(Active) IOS XR RUN PWR,NSHUT,MON
0/FT0/SP ASR-9001-FAN READY
0/0/CPU0 ASR9001-LC IOS XR RUN PWR,NSHUT,MON
0/0/0 A9K-MPA-20X1GE OK PWR,NSHUT,MON
0/0/1 A9K-MPA-4X10GE OK PWR,NSHUT,MON
0/PS0/M0/SP A9K-750W-AC READY PWR,NSHUT,MON <---- PSU 0 is only connected at this time
0/PS0/M1/SP A9K-750W-AC FAILED PWR,NSHUT,MON
RP/0/RSP0/CPU0:ASR9001#sh snmp entity | i PS
Thu Feb 2 07:07:49.853 UTC
entPhysicalIndex: 3355929 entPhysicalName: voltage 0/PS0/M0/SP <---- Voltage
entPhysicalIndex: 19750579 entPhysicalName: module 0/PS0/M0/SP
entPhysicalIndex: 20133606 entPhysicalName: capacity 0/PS0/M0/SP
entPhysicalIndex: 21657197 entPhysicalName: power-module 0/PS0/M1/SP
entPhysicalIndex: 43665869 entPhysicalName: slot 0/PS0/M0
entPhysicalIndex: 53687180 entPhysicalName: current 0/PS0/M0/SP <---- Current
entPhysicalIndex: 60443482 entPhysicalName: slot 0/PS0/M1
entPhysicalIndex: 66531208 entPhysicalName: power-module 0/PS0/M0/SP
ade # snmpwalk -v2c -c PSUTEST 192.168.203.225 1.3.6.1.2.1.47.1.1.1 | grep -E 'Power Module|capacity|AC|PS0'
SNMPv2-SMI::mib-2.47.1.1.1.1.2.3355929 = STRING: "Power Module Voltage Sensor" <----- Voltage
SNMPv2-SMI::mib-2.47.1.1.1.1.2.6838122 = STRING: "Voltage Sensor - VP1P8_SAC_VDDR"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.20133606 = STRING: "Power Module Capacity Sensor"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.21657197 = STRING: "ASR-9001 AC Power Supply"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.23614115 = STRING: "Voltage Sensor - VP1P0_SAC_CORE"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.23615735 = STRING: "Voltage Sensor - VP1P2_SAC_VDDT"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.40391728 = STRING: "Voltage Sensor - VP1P0_SAC_VDDA"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.43665869 = STRING: "Cisco ASR9K Power Module Container"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.53687180 = STRING: "Power Module Current Sensor" <----- Current
SNMPv2-SMI::mib-2.47.1.1.1.1.2.57169309 = STRING: "Voltage Sensor - VP1P0_SAC_VDDD"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.60443482 = STRING: "Cisco ASR9K Power Module Container"
SNMPv2-SMI::mib-2.47.1.1.1.1.2.66531208 = STRING: "ASR-9001 AC Power Supply"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.3355929 = STRING: "voltage 0/PS0/M0/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.19750579 = STRING: "module 0/PS0/M0/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.20133606 = STRING: "capacity 0/PS0/M0/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.21657197 = STRING: "power-module 0/PS0/M1/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.43665869 = STRING: "slot 0/PS0/M0"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.53687180 = STRING: "current 0/PS0/M0/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.60443482 = STRING: "slot 0/PS0/M1"
SNMPv2-SMI::mib-2.47.1.1.1.1.7.66531208 = STRING: "power-module 0/PS0/M0/SP"
SNMPv2-SMI::mib-2.47.1.1.1.1.13.21657197 = STRING: "A9K-750W-AC"
SNMPv2-SMI::mib-2.47.1.1.1.1.13.66531208 = STRING: "A9K-750W-AC"
RP/0/RSP0/CPU0:ASR9001#admin show environment power-supply
Thu Feb 2 07:48:40.065 UTC
R/S/I Modules Capacity Status
(W)
0/PS0/M0/*
host PM 750 Ok
0/PS0/M1/*
host PM 0 Failed
R/S/I Power Supply Voltage Current
(W) (V) (A)
0/PS0/M0/* 342.8 12.2 28.1
0/PS0/M1/* 0.0 0.2 0.4
--------------
Total: 342.8
Voltage: 1.3.6.1.4.1.9.9.91.1.1.1.1.4.3355929
ade # snmpwalk -v2c -c PSUTEST 192.168.203.225 1.3.6.1.4.1.9.9.91.1.1.1.1.4.3355929
SNMPv2-SMI::enterprises.9.9.91.1.1.1.1.4.3355929 = INTEGER: 12156
CLI Output : 12.2 Volts
Amps: 1.3.6.1.4.1.9.9.91.1.1.1.1.4.53687180
ade # snmpwalk -v2c -c PSUTEST 192.168.203.225 1.3.6.1.4.1.9.9.91.1.1.1.1.4.53687180
SNMPv2-SMI::enterprises.9.9.91.1.1.1.1.4.53687180 = INTEGER: 28125
CLI Output : 28.1 Amps
Ohms Law to then calculate Voltage (via manual coded equation)
Voltage (V) = Current (I) * Resistance (R)
Power (P) = Voltage (V) * Current (I)
Thank you davhume, real-world example is really helpful to understand the process!
Thanks @xthuijs, nice guide.
However, it seems that the cefcFRUPowerStatusTable is missing in recent IOS-XR versions, in particular ASR9001 running 6.8.1 or 6.9.2.
The SystemOwner is enabled in the config:
snmp-server community [redacted] RO SystemOwner IPv4 to-VTY
How can the power supply status be read on ASR9001 running 6.9.2?
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: