IPMITool和其中常用的命令

IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如图1),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。

ipmitool 是一种可用在 Linux/Unix 系统下的基于命令行方式的 ipmi 平台管理工具。它支持 ipmi 1.5 和ipmi 2.0 规范(最新的规范为 ipmi 2.0)。利用它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。其主要功能包括读取和显示传感器数据(SDR),显示System Evernt Log(SEL)的内容,显示打印Field Replaceable Unit(FRU)信息,读取和设置BMC模块的LAN配置,远程控制服务器主机的电源。

ipmitool支持IPMI-over-LAN和系统Kernel中的设备驱动(openIPMI in Linux, BMC in Solaris, openIPMI in FreeBSD) 接口。即可以本地运行,也可以在远程机器上运行,实现对服务器主机的管理和控制。

最新版本的ipmitool可以去http://ipmitool.sourceforge.net/下载。目前的最新版本为1.8.11(2012-04-29)。ipmitool的man手册可以去http://ipmitool.sourceforge.net/manpage.html访问web版本。

常用的管理命令包括:

================
系统管理命令
================
1. 查看设备信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin chassis status

2. 查看用户
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user list

3. 增加用户
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user set name 3 test1
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user list
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user set password 3 test1
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user priv 3 20
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user list
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U test1 -P test1 user list

4. disable/enable用户
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user disable 3
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U test1 -P test1 user list
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin user enable 3
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U test1 -P test1 user list

5. 查看服务器当前开电状态
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power status

6. 服务器的开机,关机,reset和power cycle
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power on
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power off
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power cycle
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power reset

7. 查看服务器的80 Port当前状态
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin raw 0x30 0xB2

8. 查看服务器的传感器状态
所有传感器状态详细信息:
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sensor
传感器SDR summary信息:
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sdr info
传感器SDR 列表信息:
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sdr list
FRU传感器SDR 列表信息:
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sdr list fru
下载RAW SDR信息到文件:
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sdr dump sdr.raw

9. 查看服务器的FRU信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin fru
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin fru print

================
BMC自身配置命令
================
1. 查看BMC的信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc info

2. 查看BMC的LAN信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin lan print 1
(一般channel 1为LAN)

3. 修改BMC的MAC信息(只能在本地以root用户做,因为在此之前没IP)
enable BMC MAC SET mode:
/usr/bin/ipmitool raw 0x0c 0x01 0x01 0xc2 0x00
Write MAC to BMC (BMC MAC=d0:27:88:a4:e4:37):
/usr/bin/ipmitool raw 0x0c 0x01 0x01 0x05 0xD0 0x27 0x88 0xA4 0xE4 0x37

4. 修改BMC的网络为自动从DHCP获得IP地址,而不是静态的(只能在本地以root用户做,因为在此之前没IP)
确定channel 1为LAN:
/usr/bin/ipmitool lan print 1
设定channel 1从DHCP获得IP:
/usr/bin/ipmitool lan set 1 ipsrc dhcp

5. 重启BMC自己(不是服务器)(小心BMC挂掉hang)
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc reset

================
SOL和通过IPMItool访问系统终端 (Serial-Over-LAN)
================
1. 查看当前的SOL summary信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sol info 1

2. 修改SOL配置信息
查看所有可能的配置
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sol set
修改波特率配置
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sol set non-volatile-bit-rate 38.4 1
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sol set volatile-bit-rate 38.4 1

3. 开启远程终端
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sol activate
(可以使用~.退出,~?显示帮助信息)

================
Watchdog配置命令
================
1. 查看当前的watchdog信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc watchdog get

2. 设置,开启一个watchdog
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc watchdog get
设置一个OS WDT的watchdog, 超时时间为60秒(自己看IPMI 2.0手册,351页的27.6 Set Watchdog Timer Command)(60x10=600 = 0x258)
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin raw 0x06 0x24 0x04 0x01 0x00 0x10 0x58 0x2
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc watchdog get
开启该watchdog
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc watchdog reset
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin mc watchdog get

禁止该watchdog的动作(Hard reset-> no action)

/usr/bin/ipmitool -I lanplus -H 10.32.228.187 -U sysadmin -P admin raw 0x06 0x24 0x04 0x00 0x00 0x10 0x58 0xFF

上面的命令把时间改为非常大,提示第1个0x00表示没有动作,0x04表示是SMS/OS的watchdog, 0xFF58是超时的时间,单位为100ms。

================
SEL命令
================
1. 查看当前的SEL summary信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel info

2. 列示所有SEL记录详细信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel list
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel list 10

3. 删除指定的SEL记录
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel delete 1

4. 清除所有的SEL记录
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel clear

5. 获取和修改SEL当前时钟
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel time get
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin sel time set "04/24/2012 18:44:44"

6. 以RAW方式查看制定的SEL数据

/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin raw 0xa 0x43 0 0 111 0 0 0xFF

0xa 0x43为Get SEL Entry Command; 0 0 保留值,111 0 表示取第112条记录(从0开始),0 为offset,保留;0xFF为读取的字节数,FF表示取整条记录

================
PEF命令
================
1. 查看BMC当前的PEF 支持信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef info

2. 查看BMC当前的PEF 配置表信息(配置表也是可以修改的)
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef list

3. 查看BMC当前的PEF 状态信息(BMC处理的最后一条SEL记录)
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef status

4. 修改BMC当前的PEF 配置表
查看当前的PEF 配置表
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef list
假定我们要删除下面这条配置项
1 | active, pre-configured | 0x11 | Voltage | Any | None | OEM | Any | Power-off,OEM-defined
获取该配置项的配置信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin raw 0x04 0x13 0x07 0x01 0x00
11 01 40
修改该配置项的配置信息
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin raw 0x04 0x12 0x07 0x01 0x40
检查修改后的PEF配置表
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin pef list

================
特殊命令
================
1. 查看ipmi服务器端当前活动的session会话
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin session info active

2. 执行一个保存在文件中的所有ipmitool命令
/usr/bin/ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin exec myipmi.cmd

=====================================总结======================================================

#service ipmi start
#ipmitool -I open shell
#### 可以直接进入本地BMC shell
#ipmitool -I lan -H -U shell
#### 输入password,进入IPMI交互模式,当然这里也可以把shell直接换成bmc命令 , 另外ipmitool支持端口,所以是否可以先做DNAT,然后远程直接管理内网机器.
#### ipmitool提供的功能要比windows下ipmish提供的功能多得多,用法相对复杂一些
参考下面转摘的文章来详细了解命令
引用
Ipmitool本地监控使用命令:ipmitool –I open command,其中-I open表示使用OpenIPMI接口,command有以下项:
a) raw:发送一个原始的IPMI请求,并且打印回复信息。
b) Lan:配置网络(lan)信道(channel)
c) chassis :查看底盘的状态和设置电源
d) event:向BMC发送一个已经定义的事件(event),可用于测试配置的SNMP是否成功
e) mc: 查看MC(Management Contollor)状态和各种允许的项
f) sdr:打印传感器仓库中的所有监控项和从传感器读取到的值。
g) Sensor:打印详细的传感器信息。
h) Fru:打印内建的Field Replaceable Unit (FRU)信息
i) Sel: 打印 System Event Log (SEL)
j) Pef: 设置 Platform Event Filtering (PEF),事件过滤平台用于在监控系统发现有event时候,用PEF中的策略进行事件过滤,然后看是否需要报警。
k) Sol/isol:用于配置通过串口的Lan进行监控
l) User:设置BMC中用户的信息 。
m) Channel:设置Management Controller信道。
Ipmitool –I open sensor list命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
Ipmitool –I open sensor get “CPU0Temp”可以获取ID为CPU0Temp监测值,CPU0Temp是sensor的ID,服务器不同,ID表示也不同。
Ipmitool –I open sensor thresh 设置ID值等于id的监测项的各种限制值。
Ipmitool –I open chassis status查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
Ipmitool –I open chassis restart_cause查看上次系统重启的原因
Ipmitool –I open chassis policy list 查看支持的底盘电源相关策略。
Ipmitool –I open chassis power on启动底盘,用此命令可以远程开机
Ipmitool –I open chassis power off关闭底盘,用此命令可以远程开机
Ipmitool –I open chassis power reset实现硬重启,用此命令可以远程开机
Ipmi还可以设置系统启动boot的设备,具体见ipmitool帮助文档。
Ipmitool –I open mc reset 使BMC重新硬启动
Ipmitool –I open mc info 查看BMC硬件信息
Ipmitool –I open mc getenables 列出BMC所有允许的选项
Ipmitool –I open mc setenables =[on|off],设置bmc相应的允许/禁止选项。
Ipmitool-I open event 1 发送一个温度过高的消息到System Event Log中,可以发送的Event有:
1 Temperature: Upper Critical: Going High
2 Voltage Threshold: Lower Critical: Going Low
3 Memory: Correctable ECC Error Detected
Ipmitool-I open event命令可以用测试配置的IPMI中的snmp功能是否成功。
Ipmitool -I open lan print 1 打印现咱channel 1的信息 。
Ipmitool -I open lan set 1 ipaddr 10.10.113.95设置channel 1 的地址为10.10.113.95
Ipmitool -I open lan set 1 snmp public设置channel 1 上snmp的community为public。
Ipmitool -I open lan set 1 access on设置channel 1允许访问。
Ipmitool -I open pef info打印Platform Event Filtering (pef)信息
Ipmitool -I open pef status查看Platform Event Filtering (pef)状态
Ipmitool -I open pef policy查看Platform Event Filtering (pef)策略设置
Ipmitool -I open sdr list fru 读取fru信息并显示。
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐