故障现象
现象描述:客户需要确认通过SNMP读取S12504G-AF设备CPU实时温度的具体OID值。hh3cEntityExtTemperature(1.3.6.1.4.1.25506.2.6.1.1.1.1.12)节点时存在多个回显,无法确认哪个对应的温感是CPU芯片实体温度。另外,客户在S6800设备上执行dis environment命令回显为4行,但SNMP读取有6个回显,无法确认OID子节点与dis environment各hotspot的对应关系。
触发条件:客户通过SNMP方式采集设备温度数据时。
持续时间:暂未提及。
现象特征:SNMP读取hh3cEntityExtTemperature节点返回多个实体索引的温度值,无法与设备CPU温感一一映射。
配置参数
邮件中未提及与温度OID查询相关的特殊配置参数。
故障复现
通过SNMP读取entPhysicalName(OID: 1.3.6.1.2.1.47.1.1.1.1.7)获取各物理实体的索引名称。
通过SNMP读取hh3cEntityExtTemperature(OID: 1.3.6.1.4.1.25506.2.6.1.1.1.1.12)获取各实体索引对应的温度值。
对比SNMP回显温度值与设备dis environment、debug sysm display temperature-all命令输出的对应关系。
日志/抓包
邮件中未提供日志或抓包内容。
排查思路
从客户疑问"哪个hotspot对应CPU温感"及"SNMP回显与dis environment如何对应"入手,通过debug sysm display temperature-all命令和dis environment命令联合分析,确认各温感传感器类型(lm75/cpu/ctc)与位置(inflow/outflow/hotspot)的物理含义,再通过entPhysicalName OID映射建立SNMP索引与温感的对应关系。
2. 关键命令与输出
debug sysm display temperature-all chassis 1 slot 3:获取单板所有温感的类型、位置、温度值及告警阈值。
关键输出示例(Slot 3):
Sensor Type Position Temperature Lower Warning Alarm Shutdown
0 lm75 inflow 1 34 0 80 97 NA
1 lm75 outflow 1 47 0 78 92 NA
2 cpu hotspot 1 50 0 84 97 102
3 ctc hotspot 2 62 0 100 117 122
4 lm75 NA 1 NA 0 100 117 122
分析:Sensor Type为cpu的hotspot即为CPU芯片温度传感器,索引为2(从上到下第3个)。
dis environment:查看设备所有槽位的温度信息,Sensor列与debug sysm命令的type/position对应。
entPhysicalName OID查询(1.3.6.1.2.1.47.1.1.1.1.7):获取各实体索引对应的名称字符串。
关键输出:
entPhysicalName.512 → sensor 1.3.3(1框3槽位从上往下第3个,即CPU,实体索引为512)
hh3cEntityExtTemperature OID查询(1.3.6.1.4.1.25506.2.6.1.1.1.1.12):获取各实体索引的温度值。
关键输出:
hh3cEntityExtTemperature.512 → 50(1/3板卡CPU温感数据为50℃)
3. 中间结论与排除项
确认dis environment输出与debug sysm display temperature-all输出的传感器顺序一致,type和position对应不同器件和位置。
确认lm75和ctc为其他温度传感器(非CPU),cpu类型的hotspot才是CPU芯片温度。
NA位置的传感器(如lm75 NA 1)无需关注。
通过entPhysicalName节点的实体索引(如512)与hh3cEntityExtTemperature节点的下标一一对应,从而通过SNMP精准定位CPU温度。
4. 最终根因
本单为CT咨询问题,非故障。产品通过debug sysm display temperature-all命令和OID映射关系,确认了不同类型板卡上CPU温感的Sensor Type为cpu,位置为hotspot,并通过entPhysicalName OID获取对应实体索引,再用hh3cEntityExtTemperature OID读取温度值,解决了客户SNMP温度监控的疑问。
解决方案:按邮件提供的步骤确认CPU实体温度OID及对应关系,具体如下:
通过dis environment或debug sysm display temperature-all确认CPU温感位置
执行dis environment查看各槽位温度传感器信息。
执行debug sysm display temperature-all chassis < chassis-id > slot < slot-id >获取详细传感器类型。
找到Sensor Type为cpu的条目,其对应的即为CPU芯片温度传感器(Position通常为hotspot)。
通过SNMP entPhysicalName OID获取CPU实体索引
使用OID 1.3.6.1.2.1.47.1.1.1.1.7(entPhysicalName)遍历查询所有实体名称。
从回显中找到与dis environment/debug sysm中CPU温感位置(如sensor 1.3.3)对应的条目,获取其实体索引值(如索引512)。
通过SNMP hh3cEntityExtTemperature OID获取CPU温度
使用OID 1.3.6.1.4.1.25506.2.6.1.1.1.1.12(hh3cEntityExtTemperature),以上一步获取的实体索引作为下标查询(如hh3cEntityExtTemperature.512),回显值即为CPU实时温度。
验证方法:对比SNMP读取的hh3cEntityExtTemperature.512值与设备dis environment中Slot 3 hotspot 1(CPU)的显示值(如50℃),确认一致。
注意事项:
不同类型板卡上的CPU温感位置不同,需根据debug sysm display temperature-all确认。
实体索引为NA的传感器忽略。
hh3cEntityExtTemperature无效值为65535,需注意过滤。