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
posted @ 2020-10-11 23:10  一介草民李八千  阅读(9213)  评论(0)    收藏  举报