2. ThinkSystem硬件与固件监控对象梳理

要对Lenovo ThinkSystem做监控告警与容量运营,第一步不是急着接告警通道,而是把"被监控对象"梳理清楚。ThinkSystem是一个覆盖机架服务器、刀片、高密度多节点、存储与网络交换的硬件家族,其可观测性来自两条主线:一条是带外管理控制器(XCC/XClarity Controller)暴露的硬件与固件状态,另一条是操作系统内代理或带内工具采集的性能与容量数据。本节聚焦第一条主线,把服务器、存储、网络、机箱、电源、风扇、RAID卡、HBA等关键部件,以及XCC的监控能力逐一拆开。

一、XCC:所有硬件监控的汇聚点

XClarity Controller(XCC)是集成在ThinkSystem主板上的带外管理控制器,前身是IMM,在SR系列与新一代机架机型上统一称为XCC。它独立于操作系统运行,只要服务器接通电源(待机电源即可),XCC就能工作。这意味着即使操作系统宕机、业务中断,XCC仍能上报硬件状态——这正是硬件监控与业务监控最大的区别。

XCC对外提供的主要接口包括:Redfish REST API(推荐用于自动化采集)、SNMP Trap(用于事件推送)、Syslog转发、以及Web界面和CLI。监控系统通常通过Redfish轮询获取当前状态,同时订阅SNMP Trap或配置告警转发来接收实时事件。XCC能监控的对象大致分为几类:温度与散热(进风口温度、CPU温度、各风扇转速)、电源(PSU状态、输入电压、功耗)、存储控制器(RAID卡状态、虚拟盘与物理盘健康)、内存(ECC错误、可纠正/不可纠正错误计数)、处理器(状态、温度、微码版本)、以及固件版本与更新状态。

XCC的Redfish路径通常以 /redfish/v1/Systems/1 为根,处理器、内存、存储、电源、散热分别位于 /Processors、/Memory、/Storage、/Power、/Thermal 等子资源下。采集时建议先拉取 /redfish/v1/Chassis/1/Thermal 与 /Power,这两个端点信息密度最高。

二、关键部件与监控能力对照

不同部件的监控粒度差异很大,理解这一点决定了告警阈值怎么设、容量数据怎么采。下面这张图把ThinkSystem主要部件与XCC的监控能力、典型采集端点、以及可观测的关键指标对应起来,便于在搭建监控时逐项核对。

ThinkSystem 硬件监控对象与 XCC 能力映射 带外管理控制器汇聚各部件状态,经 Redfish / SNMP / Syslog 输出 XCC / XClarity Controller 带外运行 · 独立于 OS Redfish REST API 轮询采集当前状态 SNMP Trap / Syslog 事件实时推送 服务器 / 处理器 CPU 状态 · 温度 · 微码版本 /Systems/1/Processors 告警:温度越限、微码不一致 内存 ECC 可纠正/不可纠正错误 /Systems/1/Memory 告警:UE 错误、DIMM 失效 RAID 卡 / HBA 控制器状态 · 缓存电池 · 固件 /Systems/1/Storage 告警:降级、重建、电池失效 存储 / 硬盘 物理盘健康 · 虚拟盘状态 /Storage/.../Drives 告警:掉盘、预测性故障 电源 PSU 状态 · 输入电压 · 功耗 /Chassis/1/Power 告警:冗余丢失、PSU 故障 风扇 / 散热 转速 RPM · 进风口温度 /Chassis/1/Thermal 告警:转速异常、温度越限 机箱 / 机架 机箱状态 · 面板 LED · 槽位 /Chassis/1 告警:机箱开盖、槽位异常 网络 / 网卡 链路状态 · 端口速率 · 固件 /Systems/1/EthernetInterfaces 告警:链路 down、降速 采集与告警要点 • 轮询周期建议 60~300 秒;温度/风扇可缩短至 30 秒,固件版本可放宽至 24 小时。 • 事件类(PSU 故障、掉盘、UE 内存错误)走 SNMP Trap 或 Syslog,避免仅靠轮询漏报。 • 容量类指标(硬盘容量、RAID 组可用空间、内存配置)用于容量运营,与告警分开存储。 • 固件版本需与 Lenovo 兼容性矩阵比对,版本不一致本身可作为合规告警项。

三、从"能监控"到"该监控什么"

XCC能读到的对象很多,但监控系统不应该把所有字段都变成告警。梳理监控对象时,建议按"健康状态类"和"容量趋势类"分开处理。

健康状态类关注的是"现在是否正常",典型如PSU冗余是否丢失、风扇是否停转、RAID虚拟盘是否降级、内存是否出现不可纠正错误。这类指标适合设阈值告警,且多数能通过SNMP Trap实时获得。例如XCC在检测到电源冗余丢失时会推送一条Trap,监控平台应立即产生告警,而不是等下一次轮询。

容量趋势类关注的是"还能撑多久",典型如硬盘剩余容量、RAID组可用空间、内存已配置容量、机箱槽位占用率。这类数据变化慢,适合按小时或按天采集并存入时序库,用于容量预测。把这两类混在一起,往往导致告警风暴或容量盲区。

四、一个可执行的采集清单示例

下面给出一份基于Redfish的采集清单示例,字段和周期为教学示例,实际部署时应根据机型与XCC固件版本调整。清单按对象分组,每行说明采集端点、关键字段与建议周期。

监控对象 Redfish 端点 关键字段 建议周期 用途
处理器 /Systems/1/Processors Status.Health, Model, MicrocodeVersion 300s 健康 + 固件合规
内存 /Systems/1/Memory Status.Health, CapacityMiB, ECCErrorCount 300s 健康 + 容量
RAID 卡 /Systems/1/Storage ControllerStatus, FirmwareVersion, BatteryStatus 300s 健康 + 固件合规
物理盘 /Systems/1/Storage/.../Drives Status.Health, CapacityBytes, PredictedFailure 600s 健康 + 容量
电源 /Chassis/1/Power PowerSupply.Status, InputVoltage, PowerConsumedWatts 60s 健康 + 功耗
风扇/温度 /Chassis/1/Thermal Fan.SpeedRPM, Temperature.ReadingCelsius 30s 健康
网卡 /Systems/1/EthernetInterfaces LinkStatus, SpeedMbps, FirmwareVersion 300s 健康 + 固件合规

五、实操:用一条命令验证XCC可采集性

在正式接入监控平台前,建议先用curl验证XCC的Redfish接口是否可达、认证是否正常。以下命令为示例,IP、用户名和密码需替换为实际值。

# 获取机箱散热信息(风扇转速与温度)
curl -k -u USER:PASS \
  https://192.168.10.21/redfish/v1/Chassis/1/Thermal

# 获取电源与功耗信息
curl -k -u USER:PASS \
  https://192.168.10.21/redfish/v1/Chassis/1/Power

# 获取存储控制器与硬盘状态
curl -k -u USER:PASS \
  https://192.168.10.21/redfish/v1/Systems/1/Storage

返回的JSON中,重点看 Status.Health 字段,其取值通常为 OK、Warning、Critical。如果某个风扇的 ReadingRPM 为0而 Status.Health 仍为OK,说明该风扇可能未被正确识别,需要检查XCC固件版本或风扇在位状态。这一步能提前发现"接口通但数据不可信"的问题,避免监控上线后出现假阴性。

XCC的Redfish接口默认使用自签名证书,采集端需配置信任或忽略证书校验。生产环境建议导入企业CA签发的证书,避免因证书过期导致采集中断。

六、梳理结果的落地形态