ipmitool 是一種可用在 linux 系統下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 規範(最新的規範為 ipmi 2.0),通過它可以實現獲取感測器的信息、顯示系統日誌內容、網路遠程開關機等功能。
基本介紹,特點,命令,
基本介紹
ipmitool 是一種可用在 linux 系統下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 規範(最新的規範為 ipmi 2.0),通過它可以實現獲取感測器的信息、顯示系統日誌內容、網路遠程開關機等功能。
特點
IPMI(Intelligent Platform Management Interface)即智慧型平台管理接口是使硬體管理具備“智慧型化”的新一代通用接口標準。用戶可以利用 IPMI 監視伺服器的物理特徵,如溫度、電壓、電扇工作狀態、電源供應以及機箱入侵等。Ipmi 最大的優勢在於它是獨立於 CPU BIOS 和 OS 的,所以用戶無論在開機還是關機的狀態下,只要接通電源就可以實現對伺服器的監控。Ipmi 是一種規範的標準,其中最重要的物理部件就是BMC(Baseboard Management Controller 如圖1),一種嵌入式管理微控制器,它相當於整個平台管理的“大腦”,通過它 ipmi 可以監控各個感測器的數據並記錄各種事件的日誌。
命令
一般命令
raw #傳送一個原始的IPMI請求,並且列印回覆信息。
Lan #配置網路(lan)信道(channel)
chassis #查看底盤的狀態和設定電源
event #向BMC傳送一個已經定義的事件(event),可用於測試配置的SNMP是否成功
mc #查看MC(Management Contollor)狀態和各種允許的項
sdr #列印感測器倉庫中的所有監控項和從感測器讀取到的值。
Sensor #列印詳細的感測器信息。
Fru #列印內建的Field Replaceable Unit (FRU)信息
Sel #列印 System Event Log (SEL)
Pef #設定 Platform Event Filtering (PEF),事件過濾平台用於在監控系統發現有event時候,用PEF中的策略進行事件過濾,然後看是否需要報警。
Sol/isol #用於配置通過串口的Lan進行監控
User #設定BMC中用戶的信息 。
Channel #設定Management Controller信道。
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有:
Temperature: Upper Critical: Going High
Voltage Threshold: Lower Critical: Going Low
Memory: Correctable ECC Error Detected
Ipmitool -I open lan print 1 #列印現咱channel 1的信息 。
Ipmitool -I open lan set 1 ipaddr 10.10.113.95 #設定channel 1的IP位址為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信息並顯示。
ipmitool sel clear #清除記錄
ipmitool sel elist
ipmitool sel list
ipmitool fru
ipmitool fru print #顯示fru信息
ipmitool fru print 0
ipmitool fru print 1
ipmitool bmc reset cold #重啟bmc
ipmitool sdr #查看psu fan (BAT)等信息
ipmitool sdr type fan
ipmitool mc info #查看bmc信息
ipmitool lan print #顯示lan信息
ipmitool lan print|egrep "MAC Address" #得到bmc的oui
ipmitool lan set 1 ipsrc dhcp #設定動態ip 1用戶
ipmitool -H $bmc_ip -U admin -P admin mc info #設定用戶名密碼
ipmitool chassis policy always-off
ipmitool chassis identify force
ipmitool chassis identify off
ipmitool sdr type Temperature
ipmitool sol payload enable 1
IPMI RAW command
參照IPMI spec 2.0 with KCS
BMC 可以控制的功能很多, 除了常用的ipmi command, 其餘還有許多,可以依靠RAW command 來與BMC 溝通完成, 並且有"隱藏"的command 可以用,尤其是OEM command, 可以詢問各機種BMC RD
以下整理出來較有用的command, 需注意Data 的Request/Response 起始位置。
Request 指令格式 "ipmitool raw NetFnCode CommandCode Data .."
Ex.ipmitool raw 0x0C 0x02 0x01 0x04 0x00 0x00(Get BMC IP Source)
0x0C Request Transport Media-specific configuration & control
0x02 GET LAN Config
0x01 Channel Num
0x04 IP Source(Selector)
0x00 not use set Selector
0x00 not require block num
Response 指令格式 "NetFnCode CommandCode CopmpletionCode Data .."
Ex.0x0D 0x02 0x00 0x01
0x0D Response Transport Media-specific configuration & control
0x02 GET LAN Config
0x00 Command Completed Successful
0x01 IP source is Static
## NetFn code
0x00(request), 0x01(Response) Chassis
0x02(request), 0x03(Response) Bridge
0x04(request), 0x05(Response) Sensor/Event
0x06(request), 0x07(Response) Application
0x08(request), 0x09(Response) Firmware Transfer
0x0A(request), 0x0B(Response) Non-volatile storage
0x0C(request), 0x0D(Response) Transport Media-specific configuration & control
0x0E- 0x2B Reserved
2Ch-2Dh Extension Non-IPMI group
2Eh-2Fh OEM/Non-IPMI group
30h-3Fh Controllerspecific OEM/Group
## Completion Code
0x00 Command Completed Normally
0xC0 Node Busy
0xC1 Invalid Command
0xC2 Command invalid for given NetFn
0xC3 Timeout
0xC4 Storage Out of space
0xC5 Reservation Canceled or Invalid Reservation ID
0xC6 Request data truncated
0xC7 Request data length invalid
0xC8 Request data field length limit exceeded
0xC9 Parameter/Data out of range
0xCA Cannot return number of requested data bytes
0xCB Requested Sensor, data, or record not present
0xCC Invalid data field in Request
0xCD Command illegal for specified sensor or record type
0xCE Command response could not be provided
0xCF Cannot execute duplicated request
0xD0 Command response could not be provided. SDR Repository in update mode.
0xD1 Command response could not be provided. Device in firmware update mode.
0xD2 Command response could not be provided. BMC initialization or
initializationagent in progress
0xD3 Destination unavailable
0xD4 Cannot execute command due to insufficient privilege level or other
securitybased restriction
0xD5 Cannot execute command. Command or parameter not supported in present
state
0xD6 Cannot execute command. Parameter is illegal
0xFF Unspecified error
0x01-0x7E OEM completion codes
0x80-0xBE Standard command-specific codes
0x7F, 0xBF, 0xD7-0xFE Reserved