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
Hi Xander,
Thanks for making such a wonderful document. In SNMP V3, we have only user name based authentication instead of community string as in V1 and V2. Even though why they have given "community-string" in this syntax along with v3 also ?
Thank you!
Its part of the CLI description in the documentation, obviously in v3 the community string has no signficance and if you check the parser help it is not presented as an option either:
RP/0/RSP0/CPU0:A9K-BNG(config)#snmp-server host 1.1.1.1 version 3 ?
auth Using authNoPriv Security Level
noauth Using noAuthNoPriv Security Level
priv Using authPriv Security Level
similarly, when you provide the community, the version is assumbed to be not 3:
RP/0/RSP0/CPU0:A9K-BNG(config)#snmp-server host 1.1.1.1 test ?
udp-port udp port to which notifications should be sent
<cr>
xander
Hi Xander,
Yeah, I got it. Thank you.
Hi Alexander & friends,
I also felt the same doubts when I read it first time. Let me know how can I configre snmp engine id manually. From where can i get the engine-id for manual configuration. Why engine-id is very important in snmp ?In the command : snmp-server engineID local engine-id , where can I get the ID ?
Shiras:
The SNMP engine ID is a unique string used to identify the device for administration purposes. You do not need to specify an engine ID for the device; a default string is generated using Cisco's enterprise number (1.3.6.1.4.1.9) and the mac address of the first interface on the device. For further details on the SNMP engine ID, see RFC 2571.
If you wish to specify your own ID, note that you need not specify the entire 24-character engine ID if it contains trailing zeros. Specify only the portion of the Engine ID up until the point where only zeros remain in the value.
xander
Thanks Xander. I am aading the same "from can I get the engine ID ? ". As per my best level of knowledge snmp v1 and v2 won't support encryption. But in the command CCO, they have given like this. Can I get the options v1 and v2 if I select "encryption". Please make sure which is right?
snmp-server host address [clear| encrypted] [informs] [traps] [version {1| 2c| 3 {auth| noauth| priv}}]
community-string [udp-port port] [ notification-type ]
that "encrypted" just refers to the way the community string is saved in the configuration.
Yaah, So according to you we can use this keyword with SNMP v2 also.
Hi,
Very good article on how to probe the power supplies on the ASR 9010, but is it possible to obtain the current power drain as opposed to the capacity of the PEM?
i.e. the following values:
RP/0/RSP0/CPU0:Router# admin show environment power-supply
R/S/I Power Draw Voltage Current
(W) (V) (A)
0/PM0/* 553.8 54.3 10.2
0/PM1/* 464.4 54.0 8.6
0/PM2/* 1104.1 53.6 20.6
--------------
Total: 2122.3
Thanks,
Chris
I have sorted it, I was looking for Watts, but I am able to obtain Current and Voltage and then deduce Watts from Ohms law.
Hi Chris, yeah that was going to be my recommendation, thanks for letting me know.
P = V * I right?
cheers
xander
Hi Chris and Xander,
I'm looking for the power oid too but I can't find the watts, nor the voltage nor the Current... Can you send me the oid's?
King Regards
Diego
hi diego, this:
For 53687180 : "current 0/PM0/SP"
entSensorType.53687180 = amperes(5)
entSensorScale.53687180 = milli(8)
entSensorPrecision.53687180 = 0
entSensorValue.53687180 = 25600
entSensorStatus.53687180 = ok(1)
you first need to get the entity mib to see what the instance value is for the sensor (PM) that you want to measure obviously.
and also you want to make sure the sysowner is configured on the community otherwise it would be abel to read it.
cheers!
xander
Thanks a lot Xander!
Regards
Diego
Hi Xander,
When trying to calculate the actual power consumption, I get values that do not correspond to the CLI. The OID's:
ENTITY-MIB::entPhysicalName.3355929 = STRING: voltage 0/PM0/SP
ENTITY-MIB::entPhysicalName.19750579 = STRING: module 0/PM0/SP
ENTITY-MIB::entPhysicalName.20133606 = STRING: capacity 0/PM0/SP
ENTITY-MIB::entPhysicalName.43665869 = STRING: slot 0/PM0
ENTITY-MIB::entPhysicalName.53687180 = STRING: current 0/PM0/SP
ENTITY-MIB::entPhysicalName.66531208 = STRING: power-module 0/PM0/SP
So I fetch the current for 0/PM0/SP:
CISCO-ENTITY-SENSOR-MIB::entSensorValue.53687180 = INTEGER: 21250
21250 mA = 21,25A
And the voltage:
CISCO-ENTITY-SENSOR-MIB::entSensorValue.3355929 = INTEGER: 54270
54270 mV = 54,27V
So if you multiply those to calculate the capacity:
54,27V * 21,25A = 1153 Watt
"admin show env power" shows very different values for 0/PM0/SP (around 19A and in total 1060W)
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: