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错误、可纠正/不可纠正错误计数)、处理器(状态、温度、微码版本)、以及固件版本与更新状态。
/redfish/v1/Systems/1 为根,处理器、内存、存储、电源、散热分别位于 /Processors、/Memory、/Storage、/Power、/Thermal 等子资源下。采集时建议先拉取 /redfish/v1/Chassis/1/Thermal 与 /Power,这两个端点信息密度最高。二、关键部件与监控能力对照
不同部件的监控粒度差异很大,理解这一点决定了告警阈值怎么设、容量数据怎么采。下面这张图把ThinkSystem主要部件与XCC的监控能力、典型采集端点、以及可观测的关键指标对应起来,便于在搭建监控时逐项核对。
三、从"能监控"到"该监控什么"
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固件版本或风扇在位状态。这一步能提前发现"接口通但数据不可信"的问题,避免监控上线后出现假阴性。