IPMI 实战:服务器硬件监控与异常告警
文章介绍了观测云基于 DataKit IPMI 采集器实现服务器硬件可观测的实践,无侵入采集温度、风扇转速、电压、功耗及设备状态等指标,并通过仪表板与告警规则,及时发现散热、电源及硬件异常风险,提升服务器运维效率。
IPMI 介绍
IPMI 指标展示被监测设备的电流、电压、功耗、占用率、风扇转速、温度以及设备状态等信息。
在物理服务器、私有云资源池和机房设备运维场景中,操作系统层面的 CPU、内存、磁盘指标只能说明业务负载状态,无法直接反映主板、风扇、电源、温度、电压等硬件健康情况。一旦散热异常、电源不稳或设备状态异常未被及时发现,容易引发服务器降频、宕机、业务实例迁移失败等问题。
IPMI 通过独立于操作系统的管理通道暴露硬件运行状态,适合用于服务器硬件健康巡检、机房设备风险预警和远程故障定位。通过 DataKit 采集 IPMI 指标后,观测云可以把硬件健康指标纳入统一可观测体系,帮助运维人员从「设备是否健康」和「风险是否扩大」两个维度提前发现问题。
- IPMI 是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准。用户可以利用 IPMI 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。
- IPMI 可以让运维系统无侵入获得被监控服务器等设备的运行健康指标,保障信息安全。
观测云
观测云是一款专为IT工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
部署 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在 集成 -> DataKit 选择对应安装方式,当前采用 Linux 主机部署 DataKit。
配置采集器
# 安装 ipmitool
yum -y install ipmitool
# 加载模块
modprobe ipmi_msghandler
modprobe ipmi_devintf
# 验证 IPMI 返回数据
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> sdr elist
# 进入 DataKit 安装目录下的 conf.d/samples 目录,复制采集器配置
cp ipmi.conf.sample ipmi.conf
# 配置好后,重启 DataKit 即可
接入注意事项
当前场景不建议使用 -I lan,它走 IPMI v1.5,容易出现 Unable to establish IPMI v1.5 / RMCP session。建议使用 -I lanplus。
# 本地验证通过的命令
ipmitool -I lanplus -H xxx -U xxx -E -L USER -C 17 sdr elist
# 推荐配置
[[inputs.ipmi]]
interval = "60s"
election = false
bin_path = "/usr/local/bin/ipmitool-dk"
ipmi_servers = ["xxx"]
ipmi_interfaces = ["lanplus"]
ipmi_users = ["xxx"]
ipmi_passwords = ["xxx"]
metric_versions = [2]
timeout = "30s"
如果 iDRAC 用户只有普通用户权限,DataKit 默认申请 ADMINISTRATOR 权限时可能出现 Set Session Privilege Level to ADMINISTRATOR failed: Unknown (0x81)。可给专用采集用户配置 IPMI LAN 管理员权限,或使用 wrapper 脚本强制添加 -L USER -C 17。
sudo tee /usr/local/bin/ipmitool-dk >/dev/null <<'EOF'
#!/bin/sh
exec /opt/homebrew/bin/ipmitool -L USER -C 17 "$@"
EOF
sudo chmod +x /usr/local/bin/ipmitool-dk
sudo /usr/local/bin/ipmitool-dk -I lanplus -H xxx -U xxx -P 'xxx' sdr elist
sudo datakit service -R
datakit monitor | grep -i ipmi
sudo tail -n 200 /usr/local/datakit/log | grep -iE 'ipmi|error|dataway|upload'
Mac 上 Homebrew 安装的 ipmitool 通常位于 /opt/homebrew/bin/ipmitool,不要直接依赖 /usr/bin/ipmitool。同时不要修改 /usr/local/datakit/conf.d/samples/ipmi.conf,真实配置应放在 /usr/local/datakit/conf.d/ipmi/ipmi.conf。单机排障时建议设置 election = false,采集超时时可调大 interval 和 timeout。
关键指标
| 指标名 | 单位 | 描述 |
|---|---|---|
| current | ampere | 电流 |
| fan_speed | RPM | 风扇转速 |
| power_consumption | watt | 功耗 |
| status | - | 设备单元状态 |
| temp | temperature,C | 温度 |
| usage | percent,percent | 使用率 |
| voltage | volt | 电压 |
| warning | - | 告警开关 |
场景视图
登录 观测云控制台,点击「场景」 -「新建仪表板」,基于 IPMI 指标配置服务器硬件健康视图。
建议围绕服务器硬件健康配置以下仪表板,用于日常巡检和告警定位:



监控器(告警)
观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。
建议优先配置以下监控器,阈值可根据服务器型号、机房环境和历史基线调整:
设备状态异常告警

功耗异常告警

电压异常告警

风扇转速异常告警

温度过高告警

总结
通过 DataKit IPMI 采集器,观测云可以在不登录服务器业务系统、不安装额外业务探针的情况下,基于 iDRAC/IPMI 无侵入采集服务器硬件健康指标,覆盖温度、风扇转速、电压、电流、功耗、使用率和设备状态等关键数据。
本次完成了 IPMI 采集接入、指标确认、仪表板和监控器配置。仪表板按“总览 + 详情”设计,上方展示整体硬件健康状态,下方展开到具体传感器趋势和明细;监控器则围绕温度过高、风扇异常、电压异常、功耗异常和设备状态异常建立告警规则,帮助及时发现散热、电源和硬件模块风险。


