4. ESXi主机监控与硬件健康告警
虚拟化平台的稳定性最终落在物理主机上。CPU温度、内存ECC错误、电源模块、风扇转速、磁盘背板、RAID控制器电池等硬件状态一旦异常,轻则触发HA重启虚拟机,重则导致整台ESXi主机宕机。ESXi本身提供了多层硬件健康数据通道,理解它们各自的数据来源、采集路径和告警能力,是构建主机监控体系的基础。
四条硬件健康数据通道
ESXi获取硬件健康信息并非只有一条路径,而是由四类机制协同完成,它们覆盖的硬件范围、数据粒度和告警能力各不相同。
硬件传感器(Hardware Sensors)是最直接的一层。ESXi通过CIM提供程序读取主板上的传感器数据,包括温度、电压、风扇转速、电源状态等。这些传感器由服务器厂商在BMC/管理控制器中暴露,ESXi通过IPMI或厂商专用驱动读取。在vSphere Client中,主机→监控→硬件运行状况→传感器即可看到温度、风扇、电压、电源等分类的实时读数与状态(绿/黄/红)。
IPMI(智能平台管理接口)是带外管理的基础协议。ESXi本身不直接通过IPMI采集传感器数据用于vCenter告警,但IPMI提供了独立于操作系统的硬件监控通道。当ESXi主机完全宕机时,IPMI仍可通过BMC记录事件日志(SEL)、触发SNMP Trap或发送邮件。因此IPMI在架构中承担“最后一道防线”的角色,尤其适合与独立监控系统(如Zabbix、PRTG)对接。
CIM(通用信息模型)是ESXi硬件监控的核心机制。ESXi内置CIM Broker(sfcbd)和厂商提供的CIM Provider(如Dell OpenManage、HPE Insight、Lenovo XClarity),通过CIM接口向vCenter暴露硬件清单、传感器、存储控制器、内存ECC等详细信息。vCenter的硬件运行状况页面、硬件告警触发,都依赖CIM Provider返回的数据。如果CIM Provider未安装或版本不匹配,硬件状态会显示为“未知”,告警也无法触发。
系统事件日志(System Event Log / vmkernel.log)记录ESXi内核层的事件,包括硬件错误、驱动异常、存储路径故障、内存校验错误等。通过vSphere Client的主机→监控→事件,或直接查看/var/log/vmkernel.log,可以捕获CIM传感器之外的底层异常。系统事件日志与vCenter告警联动后,可实现“日志关键字触发告警”的机制。
配置CIM Provider与硬件传感器
CIM Provider是硬件监控能否正常工作的关键。以Dell PowerEdge为例,需要安装Dell OpenManage Server Administrator的CIM Provider(通常以VIB形式提供)。安装后通过SSH登录ESXi主机,执行以下命令确认Provider已加载:
esxcli software vib list | grep -i openmanage
/etc/init.d/sfcbd-watchdog status
esxcli hardware ipmi sel list
第一条命令确认VIB已安装,第二条确认CIM Broker守护进程运行正常,第三条列出IPMI系统事件日志(SEL)中的硬件事件。如果sfcbd未运行,硬件运行状况页面会显示“无法获取硬件信息”。此时可执行/etc/init.d/sfcbd-watchdog restart重启CIM Broker。
传感器阈值由厂商Provider定义,通常不可在ESXi侧修改。但可以在vCenter中为传感器状态创建告警:当某个温度传感器状态从绿色变为黄色或红色时触发告警。配置路径为:主机→配置→告警定义→添加,选择“硬件运行状况”相关事件,设置触发条件为“传感器状态等于黄色”或“等于红色”。
系统事件日志与告警联动
vmkernel.log中与硬件相关的典型关键字包括:ECC、MCE(机器检查异常)、thermal、power supply、fan、RAID、disk error。这些日志条目会以事件形式出现在vCenter中,但默认不一定触发告警。需要手动创建基于事件的告警。
例如,为内存ECC可纠正错误创建告警:在vCenter告警定义中,事件类型选择“主机硬件健康”相关事件,或使用“事件关键字包含ECC”的条件。当vmkernel.log中出现ECC错误时,vCenter会生成事件并触发告警动作(发送邮件、执行脚本等)。
IPMI带外监控的补充价值
IPMI的最大价值在于ESXi主机完全无响应时仍能提供硬件状态。通过BMC的独立网口,可以使用ipmitool从外部Linux跳板机查询:
ipmitool -I lanplus -H 192.168.10.50 -U admin -P password sdr
ipmitool -I lanplus -H 192.168.10.50 -U admin -P password sel list
第一条命令读取传感器数据记录(SDR),第二条读取系统事件日志。这些数据不依赖ESXi运行状态,适合作为独立监控通道接入Zabbix或Prometheus的IPMI Exporter。在vSphere告警体系之外,IPMI监控提供了冗余保障。
告警联动配置示例
以下是一个可参考的告警配置清单,用于主机硬件健康监控:
| 告警名称 | 触发条件 | 级别 | 动作 |
|---|---|---|---|
| CPU温度过高 | 温度传感器状态 = 红色 | 严重 | 邮件 + SNMP Trap |
| 风扇转速异常 | 风扇传感器状态 = 黄色或红色 | 警告/严重 | 邮件 |
| 电源模块故障 | 电源状态 = 红色 | 严重 | 邮件 + SNMP Trap + 脚本 |
| 内存ECC错误 | vmkernel.log 包含 ECC 关键字 | 警告 | 邮件 |
| RAID控制器电池故障 | CIM存储控制器状态 = 降级 | 严重 | 邮件 + SNMP Trap |
| IPMI SEL新事件 | IPMI SEL 新增条目 | 警告 | 第三方监控平台 |
验证与排障要点
配置完成后,需要验证告警链路是否真正生效。可以手动触发一个测试告警:在vCenter中临时将某个传感器阈值调低(如果Provider支持),或直接使用esxcli hardware ipmi sel add模拟一条SEL事件。观察vCenter是否在预期时间内产生事件并触发邮件。
常见问题包括:CIM Provider版本与ESXi版本不兼容导致硬件状态显示“未知”;sfcbd进程崩溃导致传感器数据停止更新;vCenter告警定义中事件类型选择错误导致日志关键字无法匹配。排障时优先检查/var/log/sfcb/sfcb.log和/var/log/vmkernel.log,确认数据采集层是否正常。
主机硬件健康监控不是一次性配置,而是需要持续运营的体系。建议每季度检查一次CIM Provider版本、告警定义覆盖率和IPMI SEL日志,确保当硬件真正出现异常时,告警能够准确、及时地送达运维人员。