IPMI获取服务器硬件信息
IPMI获取服务器硬件信息
IPMI介绍
IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如图1),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。
安装ipmitool:
#配置yum源后运行
yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi
#采用本地rpm包安装
rpm -ivh ipmitool-1.8.x.x-9.el7_7.x86_64
impi命令:
[root@server2 monitordata]# ipmitool -h
ipmitool version 1.8.15
usage: ipmitool [options...] <command>
-h This help
-V Show version information
-v Verbose (can use multiple times)
-c Display output in comma separated format
-d N Specify a /dev/ipmiN device to use (default=0)
-I intf Interface to use
-H hostname Remote host name for LAN interface
-p port Remote RMCP port [default=623]
-U username Remote session username
-f file Read remote session password from file
-z size Change Size of Communication Channel (OEM)
-S sdr Use local file for remote SDR cache
-D tty:b[:s] Specify the serial device, baud rate to use
and, optionally, specify that interface is the system one
-a Prompt for remote password
-Y Prompt for the Kg key for IPMIv2 authentication
-e char Set SOL escape character
-C ciphersuite Cipher suite to be used by lanplus interface
-k key Use Kg key for IPMIv2 authentication
-y hex_key Use hexadecimal-encoded Kg key for IPMIv2 authentication
-L level Remote session privilege level [default=ADMINISTRATOR]
Append a '+' to use name/privilege lookup in RAKP1
-A authtype Force use of auth type NONE, PASSWORD, MD2, MD5 or OEM
-P password Remote session password
-E Read password from IPMI_PASSWORD environment variable
-K Read kgkey from IPMI_KGKEY environment variable
-m address Set local IPMB address
-b channel Set destination channel for bridged request
-t address Bridge request to remote target address
-B channel Set transit channel for bridged request (dual bridge)
-T address Set transit address for bridge request (dual bridge)
-l lun Set destination lun for raw commands
-o oemtype Setup for OEM (use 'list' to see available OEM types)
-O seloem Use file for OEM SEL event descriptions
-N seconds Specify timeout for lan [default=2] / lanplus [default=1] interface
-R retry Set the number of retries for lan/lanplus interface [default=4]
Interfaces:
open Linux OpenIPMI Interface [default]
imb Intel IMB Interface
lan IPMI v1.5 LAN Interface
lanplus IPMI v2.0 RMCP+ LAN Interface
serial-terminal Serial Interface, Terminal Mode
serial-basic Serial Interface, Basic Mode
Commands:
raw Send a RAW IPMI request and print response
i2c Send an I2C Master Write-Read command and print response
spd Print SPD info from remote I2C device
lan Configure LAN Channels
chassis Get chassis status and set power state
power Shortcut to chassis power commands
event Send pre-defined events to MC
mc Management Controller status and global enables
sdr Print Sensor Data Repository entries and readings
sensor Print detailed sensor information
fru Print built-in FRU and scan SDR for FRU locators
gendev Read/Write Device associated with Generic Device locators sdr
sel Print System Event Log (SEL)
pef Configure Platform Event Filtering (PEF)
sol Configure and connect IPMIv2.0 Serial-over-LAN
tsol Configure and connect with Tyan IPMIv1.5 Serial-over-LAN
isol Configure IPMIv1.5 Serial-over-LAN
user Configure Management Controller users
channel Configure Management Controller channels
session Print session information
dcmi Data Center Management Interface
sunoem OEM Commands for Sun servers
kontronoem OEM Commands for Kontron devices
picmg Run a PICMG/ATCA extended cmd
fwum Update IPMC using Kontron OEM Firmware Update Manager
firewall Configure Firmware Firewall
delloem OEM Commands for Dell systems
shell Launch interactive IPMI shell
exec Run list of commands from file
set Set runtime variable for shell and exec
hpm Update HPM components using PICMG HPM.1 file
ekanalyzer run FRU-Ekeying analyzer using FRU files
ime Update Intel Manageability Engine Firmware
获取服务器上详细的传感器信息:ipmitool -I open sensor list
[root@server2 monitordata]# ipmitool -I open sensor list
CPU1 Temp | 61.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 95.000 | 100.000 | 100.000
CPU2 Temp | 64.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 95.000 | 100.000 | 100.000
PCH Temp | 52.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 80.000 | 85.000 | 95.000
Inlet Temp | 25.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 40.000 | 42.000 | 45.000
System Temp | 34.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
Peripheral Temp | 46.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
MB_10G Temp | 48.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMCpu1IN Temp | 58.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMCpu1IO Temp | 44.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMCpu2IN Temp | 56.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMCpu2IO Temp | 43.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMP1AB Temp | 41.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMP1DE Temp | 43.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMP2AB Temp | 44.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
VRMP2DE Temp | 40.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 95.000 | 100.000 | 105.000
P1-DIMMA1 Temp | 46.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P1-DIMMB1 Temp | 44.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P1-DIMMC1 Temp | 43.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P1-DIMMD1 Temp | 41.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P1-DIMME1 Temp | 40.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P1-DIMMF1 Temp | 41.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMMA1 Temp | 42.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMMB1 Temp | 40.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMMC1 Temp | 39.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMMD1 Temp | 42.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMME1 Temp | 40.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
P2-DIMMF1 Temp | 37.000 | degrees C | ok | -5.000 | 0.000 | 5.000 | 80.000 | 85.000 | 90.000
FAN1 | 11200.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN2 | 11300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN3 | 11300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN4 | 11300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN5 | 11400.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN6 | 11400.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN7 | 11300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN8 | na | | na | na | na | na | na | na | na
FAN9 | na | | na | na | na | na | na | na | na
12V | 12.156 | Volts | ok | 10.116 | 10.296 | 10.716 | 12.936 | 13.236 | 13.356
5VCC | 5.007 | Volts | ok | 4.224 | 4.282 | 4.456 | 5.384 | 5.529 | 5.587
3.3VCC | 3.350 | Volts | ok | 2.789 | 2.823 | 2.959 | 3.554 | 3.656 | 3.690
VBAT | 0x4 | discrete | 0x04ff| na | na | na | na | na | na
Vcpu1 | 1.771 | Volts | ok | 1.240 | 1.258 | 1.393 | 1.897 | 2.086 | 2.104
Vcpu2 | 1.762 | Volts | ok | 1.240 | 1.258 | 1.393 | 1.897 | 2.086 | 2.104
VDimmP1AB | 1.230 | Volts | ok | 1.027 | 1.062 | 1.146 | 1.489 | 1.587 | 1.608
VDimmP1DE | 1.230 | Volts | ok | 1.027 | 1.062 | 1.146 | 1.489 | 1.587 | 1.608
VDimmP2AB | 1.230 | Volts | ok | 1.027 | 1.062 | 1.146 | 1.489 | 1.587 | 1.608
VDimmP2DE | 1.230 | Volts | ok | 1.027 | 1.062 | 1.146 | 1.489 | 1.587 | 1.608
5VSB | 5.110 | Volts | ok | 4.240 | 4.270 | 4.480 | 5.380 | 5.530 | 5.590
3.3VSB | 3.367 | Volts | ok | 2.789 | 2.823 | 2.959 | 3.554 | 3.656 | 3.690
1.8V PCH | 1.788 | Volts | ok | 1.581 | 1.608 | 1.680 | 1.968 | 1.995 | 2.031
PVNN PCH | 1.006 | Volts | ok | 0.754 | 0.778 | 0.826 | 1.096 | 1.108 | 1.126
1.05V PCH | 1.069 | Volts | ok | 0.866 | 0.894 | 0.943 | 1.314 | 1.342 | 1.377
12VSB | 12.036 | Volts | ok | 10.116 | 10.296 | 10.716 | 12.936 | 13.236 | 13.356
Chassis Intru | 0x1 | discrete | 0x0100| na | na | na | na | na | na
PW Consumption | 525.000 | Watts | ok | na | na | na | na | na | na
PS1 Status | 0x1 | discrete | 0x0100| na | na | na | na | na | na
PS2 Status | 0x1 | discrete | 0x0100| na | na | na | na | na | na
GPU1 Temp | 38.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 83.000 | 87.000 | 90.000
GPU2 Temp | 42.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 83.000 | 87.000 | 90.000
GPU3 Temp | 42.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 83.000 | 87.000 | 90.000
GPU4 Temp | 42.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 83.000 | 87.000 | 90.000
AOC_SAS Temp | 64.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 100.000 | 105.000 | 110.000
HDD Temp | 32.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 50.000 | 55.000 | 55.000
HDD Status | 0x1 | discrete | 0x0100| na | na | na | na | na | na
NVMe1_SSD Temp | 40.000 | degrees C | ok | 0.000 | 0.000 | 5.000 | 65.000 | 70.000 | 70.000
通过ipmi接口获取服务器硬件状态信息:
如下脚本可以通过ipmi实现服务器节点的硬件相关指标信息获取,包含详细注释。使用前提是已经安装ipmitool工具。
#!/bin/bash
HOST=$1
USER=$2
PASSWD=$3
function getinfo()
{
# 1. 获取到服务器的网络配置信息
echo -e "\n\n=======Networking Configurations:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 2.获取到服务器的温度信息
echo -e "\n\n=======Ambient Temprature:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Ambient Temp"
# 3.获取到服务器的功率信息
echo -e "\n\n=======System Level:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level"
# 4.获取到服务器的序列号信息
echo -e "\n\n=======Serial Number(Fru):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD fru
# 5.获取到服务器的MAC
echo -e "\n\n=======Mac Address(only Dell):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem mac
# 6.获取到服务器的资产号信息
echo -e "\n\n=======Serial Number(Fru):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level"
# 7.获取到服务器的管理卡的时间
echo -e "\n\n=======Date and Time:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get
# 8.查看管理卡配置模式
echo -e "\n\n=======Lan set Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan get
# 9.查看SOL波特率
echo -e "\n\n=======Volatile Bit Rate (kbps):"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
}
function operation()
{
# 1.服务器开机、关机、重启
echo -e "\n\n=======Power:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD power
ipmitool -I lan -H $HOST -U $USER -P $PASSWD power status
# 2.服务器添加用户、设置密码、授予权限
echo -e "\n\n=======USER:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set name 10 test1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set password 10 test1pwd
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user enable 10
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
# 1-CALLBACK ,2-USER ,3-OPERATOR ,4-ADMNISTRATOR
echo -e "\n\n=======User privilage:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user priv 10 4 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1
# 3.管理卡IP配置模式转换(DHCP/静态IP)
echo -e "\n\n=======OOB IP Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc static
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 4.管理卡修改IP地址
echo -e "\n\n=======Set IP:"
read -p "modify oob ip, please use the current network : " oobip
read -p "modify oob netmask : " netmask
read -p "modify oob gateway : " oobgw
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipaddr $oobip
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 netmask $netmask
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 defgw ipaddr $oobgw
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print
# 5.管理卡配置模式转换(独立/共享) 仅dell
echo -e "\n\n=======Lan Mode:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan
#ipmitool -I lan -H HOST−U
USER -P $PASSWD delloem lan set dedicated
# 6.设置SOL波特率
echo -e "\n\n=======Sol volatile-bit-rate:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 115.2 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 57.6 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
# 7.SOL模式开启、关闭
echo -e "\n\n=======Sol enable and disable:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled true 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled false 1
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1
}
function extrainfo()
{
echo -e "\n\n\n=======Extra infomation:"
# cpu信息
echo -e "\n\n=======cpu型号:"
echo -e "\n\n=======cpu物理个数:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'Status' #华为提供,貌似不准确
echo -e "\n\n=======cpu当前频率:"
#内存信息
echo -e "\n\n=======内存型号:"
echo -e "\n\n=======内存数量:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'DIMM'
#硬盘信息
echo -e "\n\n=======硬盘品牌:"
echo -e "\n\n=======硬盘SN:"
echo -e "\n\n=======硬盘型号:"
#电力
echo -e "\n\n=======服务器当前整体功耗:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Pwr"
echo -e "\n\n=======服务器交流实际供电电压:" #不支持或未找到
echo -e "\n\n=======服务器直流3.3V,5V和12V实际供电电压:"
#风扇
echo -e "\n\n=======风扇数量和转速:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Fan"
#温度
echo -e "\n\n=======服务器进风口温度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Inlet"
echo -e "\n\n=======服务器出风口温度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Exhaust Temp"
echo -e "\n\n=======CPU当前温度:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Temp"
#状态:基于收集信息异常状态的记录及展示
echo -e "\n\n=======基于收集信息异常状态的记录及展示:"
#网络:Mac地址
echo -e "\n\n=======远程管理卡以及主板上所有网口的MAC地址:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print |grep "MAC Address"
#时间:收集管理卡当前时钟信息,以“年月日时分秒”格式显示。
echo -e "\n\n=======收集管理卡当前时钟信息,以“年月日时分秒”格式显示。:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get
#事件:异常事件、操作事件、登录事件记录
echo -e "\n\n=======异常事件、操作事件、登录事件记录:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel list
}
function extraop()
{
#通过网络,命令行模式完成以下功能:
#1, 指定特定端口PXE启动
echo -e "\n\n=======指定特定端口PXE启动:"
ipmitool -I lan -H $HOST -U $USER -P $PASSWD chassis bootdev pxe #不能指定特定端口,端口指定可借助racadm等工具实现,网卡的pxe功能需要在bios中开启
#2, 可通过管理卡启动KVM(无需登录web界面),并有相关的权限区分(可看,可操作等多种权限)
echo -e "\n\n=======可通过管理卡启动KVM(无需登录web界面),并有相关的权限区分(可看,可操作等多种权限):" #Need config SSO, 虚拟控制台或者VNC免登陆方式
#可以设置管理卡的时钟、使用“年月日时分秒”格式。
echo -e "\n\n=======可以设置管理卡的时钟、使用 年月日时分秒 格式。" #dell反馈管理卡没有时间设置,只有BIOS时间和NTP
ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time set
}
echo >$HOST-report.txt
getinfo 2>&1 |tee -a $HOST-report.txt
operation 2>&1 |tee -a $HOST-report.txt
extrainfo 2>&1 |tee -a $HOST-report.txt
extraop 2>&1 | tee -a $HOST-report.txt
专注搬砖,擅长搬砖砸自己的脚~~~
Email:
ltwbuaa@163.com

浙公网安备 33010602011771号