首页/系统/服务器硬件与 RAID 速查/Redfish 读取温度与功耗
带外管理72 条

Redfish 读取温度与功耗

Chassis 下的 Thermal 与 Power 资源提供温度、风扇与功耗读数:可作为跨品牌监控采集的统一数据源。

用 Redfish 读温度与功耗

Redfish 把温度、风扇与功耗建模成 Chassis 资源下的两个子资源:Thermal 提供 Temperatures 与 Fans 数组,Power 提供 PowerControl、PowerSupplies 与 Voltages。字段结构由规范定义,各厂商只是填充自己的数据,因此同一套采集脚本可以覆盖不同品牌机器,这是它相对各厂商私有接口最大的价值。采集时要注意两点:Chassis 的资源编号并非固定为 1,以及未安装的传感器可能返回空读数。

基本信息

适用设备支持 Redfish 的 BMC:iDRAC、iLO、iBMC、XCC 等
资源根/redfish/v1/Chassis,先枚举再取具体编号
散热资源Chassis/<n>/Thermal:温度与风扇数组
电源资源Chassis/<n>/Power:功耗、电源模块与电压
常见字段ReadingCelsius、Reading、Health、Status
返回值JSON,可配合 jq 提取所需字段

典型使用场景

  • 统一监控:跨品牌采集温度与功耗,收敛到一套数据模型
  • 容量规划:长期采集功耗趋势,作为机柜电力核算依据
  • 散热巡检:定期拉取进风温度与风扇转速,比对历史基线
  • 告警联动:监控平台按阈值触发工单,不依赖 BMC 自身告警配置
  • 验收取证:装机后采集一份快照作为交付记录

散热与电源资源

散热与电源资源
# 先枚举 Chassis 资源,确认实际编号(不一定是 1)
curl -k -s -u admin:'<口令>' https://10.0.0.10/redfish/v1/Chassis | head -30
# 读取温度与风扇:Temperatures 与 Fans 两个数组
curl -k -s -u admin:'<口令>' https://10.0.0.10/redfish/v1/Chassis/1/Thermal | head -60
# 读取功耗与电源模块状态
curl -k -s -u admin:'<口令>' https://10.0.0.10/redfish/v1/Chassis/1/Power | head -60
# 用 jq 提取关键字段入库
curl -k -s -u admin:'<口令>' https://10.0.0.10/redfish/v1/Chassis/1/Thermal | jq '.Temperatures[] | {Name, ReadingCelsius, Health}'

字段逐项读法

字段含义使用要点
Temperatures.Name温度测点名称进风、CPU、内存等按名称区分
ReadingCelsius摄氏温度读数空值表示未安装或不可读
Fans.Reading风扇转速(RPM)为 0 或缺失需结合状态判断
Fans.Status.Health健康状态非 OK 时应与 SEL 事件交叉核对
PowerControl.PowerConsumedWatts当前功耗作为电力核算的实测样本
PowerSupplies.Status电源模块状态与 BMC 传感器读数相互印证
不同机型对同一数值的呈现方式可能不同:有的把进风温度放在 Environmental 类测点,有的命名为 Inlet Temp,采集脚本要做名称兼容而不是硬匹配。
采集脚本要显式处理空读数与缺失字段:未装传感器的机型会返回空值,直接入库会污染监控曲线。

易错点

  • 假设 Chassis/1 一定存在:部分机型返回 404,脚本直接中断
  • 不处理空读数:未安装传感器时字段为空,监控数据出现异常断点
  • 只采一次不做趋势:单点读数无法判断散热劣化,需要历史曲线
  • 把采集失败当成功入库:状态码未判导致无效数据累计

数据来源与参考

  • DMTF Redfish 规范(Thermal/Power 模型)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌