方法一:使用Zabbix Agent 2(推荐)
1. 准备工作
- 确保目标服务器已开启IPMI功能(BIOS中启用)
- 配置BMC网络和IP地址
- 准备好IPMI用户名和密码
2. 安装IPMI工具
# RHEL/CentOS
yum install ipmitool OpenIPMI OpenIPMI-libs -y
# Ubuntu/Debian
apt-get install ipmitool freeipmi-tools -y
# 验证安装
ipmitool chassis status
3. 配置Zabbix Agent 2
编辑 /etc/zabbix/zabbix_agent2.conf:
# 启用IPMI监控
Plugins.Ipmi.Enabled=true
Plugins.Ipmi.Timeout=30
# 可选:如果使用sudo运行ipmitool
Plugins.Ipmi.Sudo=true
4. 配置监控项
方法A:通过模板
在Zabbix Web控制台 → 模板 → 搜索"IPMI"
使用官方模板:"Template IPMI by Zabbix agent 2"
将模板链接到主机
方法B:手动创建监控项
创建IPMI传感器监控项:
Key: ipmi.get[sensor,{$IPMI.SENSOR}]
Type: Zabbix agent 2
5. 配置IPMI连接参数
在主机级别的宏中设置:
{$IPMI.USERNAME} = admin
{$IPMI.PASSWORD} = your_password
{$IPMI.INTERFACE} = lanplus # 或lan
或使用主机级别的宏:
User macros:
{$IPMI.USERNAME} = admin
{$IPMI.PASSWORD} = password
{$IPMI.IP} = 192.168.1.100
{$IPMI.PORT} = 623
方法二:使用Zabbix Agent 1.x
1. 配置UserParameter
编辑 /etc/zabbix/zabbix_agentd.conf:
UserParameter=ipmi.sensor[*],ipmitool -H $1 -U $2 -P $3 -I lanplus sdr get "$4" | grep "$5" | awk '{print $$NF}'
UserParameter=ipmi.chassis.status[*],ipmitool -H $1 -U $2 -P $3 -I lanplus chassis status | grep "$4" | awk '{print $$NF}'
UserParameter=ipmi.power.status,ipmitool -H $1 -U $2 -P $3 -I lanplus chassis power status | awk '{print $$4}'
2. 重启Agent
systemctl restart zabbix-agent
3. 创建监控项
在Zabbix中创建监控项:
Key: ipmi.sensor[{$IPMI.IP},{$IPMI.USER},{$IPMI.PASSWORD},"CPU Temp","degrees C"]
方法三:使用IPMI检查(无需Agent)
1. 在Zabbix Server安装IPMI工具
# 在Zabbix Server上安装
yum install ipmitool OpenIPMI -y
# 配置sudo(如果需要)
visudo -f /etc/sudoers.d/zabbix
# 添加:
zabbix ALL=(ALL) NOPASSWD: /usr/bin/ipmitool
2. 创建IPMI主机
创建新主机,选择"IPMI"作为监控方式
配置IPMI参数:
- IPMI IP地址:BMC IP
- IPMI用户名/密码
- 特权级别:USER
3. 添加IPMI监控项
创建监控项时选择"IPMI agent"
配置传感器:
Key: ipmi.get[<sensor_type>,<sensor_name>]
例如:ipmi.get[Temperature,CPU]
常用监控项示例
温度监控
Key: ipmi.get[sensor,Ambient Temp]
Name: Ambient Temperature
Units: °C
风扇转速
Key: ipmi.get[sensor,FAN1 RPM]
Name: Fan 1 Speed
Units: RPM
电源状态
Key: ipmi.get[chassis,power]
Name: Chassis Power Status
电压监控
Key: ipmi.get[sensor,12V]
Name: 12V Voltage
Units: V
模板配置建议
创建IPMI模板
发现规则:创建传感器自动发现
Name: IPMI Sensor Discovery
Type: IPMI agent
Key: ipmi.sensor.discovery
监控项原型:
Name: {#SENSOR_NAME} {#SENSOR_TYPE}
Key: ipmi.get[{#SENSOR_TYPE},{#SENSOR_NAME}]
触发器原型:
- 高温报警:
{Template IPMI:ipmi.get[{#SENSOR_TYPE},{#SENSOR_NAME}].last()}>{$IPMI.TEMP.MAX}}
- 风扇故障:
{Template IPMI:ipmi.get[{#SENSOR_TYPE},{#SENSOR_NAME}].last()}<{$IPMI.FAN.MIN.RPM}}
故障排除
1. 测试IPMI连接
# 本地测试
ipmitool -H <BMC_IP> -U <username> -P <password> -I lanplus sdr
# 带详细输出
ipmitool -H <BMC_IP> -U <username> -P <password> -I lanplus -v sdr
2. 常见问题
- 权限问题:确保用户有足够的IPMI权限
- 网络问题:检查防火墙(端口623)
- 密码包含特殊字符:使用单引号或转义字符
3. 日志查看
# Zabbix Agent日志
tail -f /var/log/zabbix/zabbix_agent2.log
# IPMI调试
ipmitool -H <BMC_IP> -U <username> -P <password> -I lanplus -vvvv sdr
安全建议
使用专用监控账户
网络隔离
- 将BMC网络与管理网络隔离
- 使用VPN或跳板机访问
加密通信
- 使用
lanplus接口(支持加密)
- 避免使用明文传输的
lan接口
最佳实践
批量部署:使用模板统一管理所有服务器的IPMI监控
阈值设置:根据硬件规格设置合理的报警阈值
定期检查:定期验证监控数据的准确性
文档记录:记录各服务器的BMC信息和凭据
选择哪种方法取决于您的环境需求。Zabbix Agent 2提供了更现代和集成的解决方案,而IPMI agent方法适合无法安装Agent的环境。