目录
IPMI简介
IPMI(Intelligent Platform Management Interface)是一种智能平台管理接口标准,允许系统管理员在操作系统无法运行时(如关机或崩溃状态)远程管理和监控服务器硬件。通过IPMI,管理员可以实现:
- 远程电源控制(开机、关机、重启)
- 系统健康状态监控(温度、电压、风扇转速)
- 远程KVM(键盘、视频、鼠标)控制
- 系统事件日志查看
- 固件更新等操作
安装与基础配置
在CentOS/RHEL系统安装
# CentOS 7/RHEL 7及以下版本 yum install OpenIPMI OpenIPMI-tools -y # CentOS 8/RHEL 8及以上版本 dnf install OpenIPMI ipmitool -y # Ubuntu/Debian系统 apt update && apt install ipmitool freeipmi-tools -y
服务管理
# 设置开机启动 systemctl enable ipmi chkconfig ipmi on # 旧版本系统 # 启动IPMI服务 systemctl start ipmi service ipmi start # 旧版本系统 # 检查服务状态 systemctl status ipmi
网络配置
设置静态IP地址
# 进入IPMI配置模式 ipmitool -I open lan set 1 ipsrc static # 设置IP地址、子网掩码和网关 ipmitool -I open lan set 1 ipaddr 10.10.1.x ipmitool -I open lan set 1 netmask 255.255.255.0 ipmitool -I open lan set 1 defgw ipaddr 10.10.1.1 # 启用网络访问 ipmitool -I open lan set 1 access on # 验证配置 ipmitool lan print 1
设置动态IP(DHCP)
ipmitool -I open lan set 1 ipsrc dhcp ipmitool -I open lan set 1 access on
注意:如果DHCP一时获取不到IP,可能需要完全切断服务器电源,等待5分钟后,先插上网线再接上电源。
高级网络配置
# 设置VLAN(如需要) ipmitool lan set 1 vlan id 100 # 查看所有网络通道 ipmitool lan print 1 ipmitool lan print 2 # 有些服务器有多个通道 # 验证网络连通性 ipmitool -I lan -H 10.10.1.x -U root -P root mc info
用户管理与权限控制
查看用户列表
ipmitool -I open user list 1
输出示例:
text复制下载
ID Name Callin Link Auth IPMI Msg Channel Priv Limit 1 (null) true false true ADMINISTRATOR 2 admin true false false NO ACCESS
修改用户密码
# 修改用户2(通常为admin用户)密码 ipmitool -I open user set password 2 # 按照提示输入两次新密码 # 修改用户1密码 ipmitool -I open user set password 1
创建和管理用户
# 创建新用户(ID 3) ipmitool user set name 3 "newadmin" ipmitool user set password 3 ipmitool user priv 3 4 1 # 设置权限级别(4=ADMIN), 通道1 ipmitool user enable 3 # 启用用户 # 设置用户权限级别 # 权限级别:1=回调,2=用户,3=操作员,4=管理员 ipmitool user priv <用户ID> <权限级别> <通道> # 启用/禁用用户 ipmitool user enable <用户ID> ipmitool user disable <用户ID>
远程管理操作
电源管理
# 远程电源控制 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis power off # 关机 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis power on # 开机 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis power reset # 重启 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis power status # 状态查询 # 本地电源控制 ipmitool chassis power off ipmitool chassis power on ipmitool chassis power reset ipmitool chassis power status
启动设备控制
# 设置下次启动设备 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis bootdev pxe # 网络启动 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis bootdev disk # 硬盘启动 ipmitool -I lan -H 10.1.199.212 -U root -P root chassis bootdev cdrom # 光驱启动 # 永久设置启动顺序 ipmitool chassis bootparam set bootdev force_pxe
系统监控与维护
传感器监控
# 查看所有传感器数据 ipmitool sensor # 查看特定传感器(如温度) ipmitool sensor | grep -i temp ipmitool -H 192.168.8.137 -U root -P root sensor | grep -i temp # 详细传感器数据 ipmitool sdr list full
系统事件日志(SEL)管理
# 查看事件日志 ipmitool sel list ipmitool -v -H 10.10.1.38 -U root -P root sel list # 详细事件日志 ipmitool sel elist # 清空事件日志 ipmitool sel clear # 查看SEL信息 ipmitool sel info
FRU信息查看
# 查看FRU(现场可更换单元)信息 ipmitool fru print # 查看特定FRU ipmitool fru print 0 # 主板信息
BMC状态管理
# 查看BMC信息 ipmitool mc info # 重置BMC(谨慎使用) ipmitool mc reset cold ipmitool mc reset warm
安全最佳实践
修改默认通信字符串
# 修改SNMP社区字符串 ipmitool -I open lan set 1 snmp COMPLEX_COMMUNITY_STRING
用户安全配置
# 禁用不必要的默认用户 ipmitool user disable 1 # 创建专用管理账户而非使用默认账户 ipmitool user set name 3 "bmcadmin" ipmitool user set password 3 ipmitool user priv 3 4 1 ipmitool user enable 3 # 然后禁用默认admin用户 ipmitool user disable 2
网络安全加固
# 启用IP过滤(如果支持) ipmitool lan set 1 ipfd 1 # 设置加密级别 ipmitool lan set 1 cipher_privs aaaaaaaaaaaaaaa # 限制访问IP(如果硬件支持) # 具体命令因厂商而异,请参考硬件文档
故障排除
连接测试
# 测试IPMI连接 ipmitool -I lan -H 10.10.1.x -U username -P password mc info # 如果连接失败,检查以下项目: # 1. 网络连通性 ping 10.10.1.x # 2. 凭据是否正确 # 3. IPMI服务是否运行 systemctl status ipmi # 4. 防火墙设置 firewall-cmd --list-all # CentOS/RHEL
常见问题解决
- IPMI服务无法启动# 检查内核模块 lsmod | grep ipmi # 加载模块 modprobe ipmi_si modprobe ipmi_devintf modprobe ipmi_msghandler
- 网络配置不生效
- 尝试重启BMC:
ipmitool mc reset cold - 检查网络线缆连接
- 验证交换机端口配置
- 尝试重启BMC:
- 用户认证失败
- 确认用户ID正确
- 检查用户是否启用
- 验证权限设置
批量配置脚本示例
#!/bin/bash # ipmi-batch-config.sh - 批量IPMI配置脚本 IPMI_HOST="$1" IPMI_USER="admin" IPMI_PASS="temporary_password" echo "配置IPMI主机: $IPMI_HOST" # 配置静态IP ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS lan set 1 ipsrc static ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS lan set 1 ipaddr 10.10.1.$IPMI_HOST ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS lan set 1 netmask 255.255.255.0 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS lan set 1 defgw ipaddr 10.10.1.1 # 创建管理用户并设置强密码 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user set name 3 'bmc_admin' echo "NewSecurePassword123!" | ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user set password 3 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user priv 3 4 1 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user enable 3 # 禁用默认用户 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user disable 1 ipmitool -I lan -H $IPMI_HOST -U $IPMI_USER -P $IPMI_PASS user disable 2 echo "IPMI配置完成: $IPMI_HOST"
使用方式:./ipmi-batch-config.sh 38 (配置IP为10.10.1.38的BMC)
总结
IPMI是服务器管理的重要工具,通过ipmitool可以高效地进行远程管理。正确的配置和安全加固对于保护服务器基础设施至关重要。建议定期:
- 检查系统事件日志
- 更新用户密码
- 审计用户权限
- 监控系统健康状态
- 备份重要配置
通过遵循本指南,您可以建立安全、可靠的服务器远程管理环境。