Ipmitool
ipmitool
is a utility to fetch information from devices that support the Intelligent Platform Management Interface (IPMI). This includes servers such as the HP Proliant DL380 G6 which I have at home or practically all Dell servers.
The project can be found at:
Installation
Clone the repository from https://github.com/ipmitool/ipmitool, then run autoconf
, ./configure
, make
.
A docker image containing this binary can be found at:
Usage
Task | Command |
---|---|
Print the iDRAC network settings | ipmitool lan print
|
Set the iDRAC network settings | # ipmitool lan set 1 ipsrc static
# ipmitool lan set 1 ipaddr 10.1.1.21
# ipmitool lan set 1 netmask 255.255.255.0
# ipmitool lan set 1 defgw ipaddr 10.1.1.1
|
View system event logs | ipmitool sel elist
|
Clear system event logs / amber light | ipmitool sel clear
|
Print sensor information | ipmitool sensor
|
Powercycle a machine | ipmitool -U username -f passwd.txt -I lanplus -H hostname chassis power cycle
|
Reset iDRAC account password | # ipmitool user list 1
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
1 true false false NO ACCESS
2 root true true true ADMINISTRATOR
3 true false false NO ACCESS
4 true false false NO ACCESS
5 true false false NO ACCESS
6 true false false NO ACCESS
7 true false false NO ACCESS
8 true false false NO ACCESS
9 true false false NO ACCESS
10 true false false NO ACCESS
11 true false false NO ACCESS
12 true false false NO ACCESS
13 true false false NO ACCESS
14 true false false NO ACCESS
15 true false false NO ACCESS
16 true false false NO ACCESS
# ipmitool user set password 2
Password for user 2:
Password for user 2:
|
Tasks
View System Event Logs
Use ipmitool sel elist
to show logs.
# ipmitool sel elist
1 | 08/24/2006 | 14:05:17 | Event Logging Disabled SEL | Log area reset/cleared | Asserted
2 | 12/11/2008 | 03:21:50 | Memory ECC Corr Err | Correctable ECC (Correctable ECC | Bank 1DIMM B) | Asserted
3 | Pre-Init |0000000011| Physical Security Intrusion | General Chassis intrusion | Asserted
4 | Pre-Init |0000000017| Physical Security Intrusion | General Chassis intrusion | Deasserted
5 | Pre-Init |0000000011| Physical Security Intrusion | General Chassis intrusion | Asserted
6 | Pre-Init |0000000016| Physical Security Intrusion | General Chassis intrusion | Deasserted
7 | Pre-Init |0000000011| Physical Security Intrusion | General Chassis intrusion | Asserted
8 | Pre-Init |0000000016| Physical Security Intrusion | General Chassis intrusion | Deasserted
9 | 06/11/2020 | 08:40:21 | Voltage CMOS Battery | Lower Critical going low | Asserted | Reading 2.57 < Threshold 2.64 Volts
a | 06/11/2020 | 08:41:41 | Voltage CMOS Battery | Lower Critical going low | Deasserted | Reading 2.73 < Threshold 2.64 Volts
b | 06/13/2020 | 19:01:06 | Voltage CMOS Battery | Lower Critical going low | Asserted | Reading 2.63 < Threshold 2.64 Volts
c | 06/13/2020 | 19:01:11 | Voltage CMOS Battery | Lower Critical going low | Deasserted | Reading 2.68 < Threshold 2.64 Volts
Polling Data
Poll the data from iLO by running ipmitool
. An example output is given below.
/tmp # ./ipmitool -I lanplus -H X.X.X.X -U Administrator -P XXXXXXXXXX sensor
Unable to Get Channel Cipher Suites
UID Light | 0x0 | discrete | 0x0080| na | na | na | na | na | na
Sys. Health LED | 0x0 | discrete | 0x0080| na | na | na | na | na | na
Power Supply 1 | 85 | Watts | ok | na | na | na | na | na | na
Power Supply 2 | 95 | Watts | ok | na | na | na | na | na | na
Power Supplies | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Fan 1 | 13.720 | percent | ok | na | na | na | na | na | na
Fan 2 | 13.720 | percent | ok | na | na | na | na | na | na
Fan 3 | 22.736 | percent | ok | na | na | na | na | na | na
Fan 4 | 27.048 | percent | ok | na | na | na | na | na | na
Fan 5 | 22.736 | percent | ok | na | na | na | na | na | na
Fan 6 | 13.720 | percent | ok | na | na | na | na | na | na
Fans | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Temp 1 | 19.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 39.000 | 41.000 | 45.000
Temp 2 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 82.000 | 83.000
Temp 3 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 82.000 | 83.000
Temp 4 | 37.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 87.000 | 92.000
Temp 5 | 39.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 87.000 | 92.000
Temp 6 | 44.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 87.000 | 92.000
Temp 7 | 42.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 87.000 | 92.000
Temp 8 | 48.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 90.000 | 95.000
Temp 9 | 42.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 65.000 | 70.000
Temp 10 | 48.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 90.000 | 95.000
Temp 11 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 12 | 49.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 90.000 | 95.000
Temp 13 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 14 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 15 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 16 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 17 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 18 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 19 | 24.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 20 | 36.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 21 | 34.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 80.000 | 85.000
Temp 22 | 32.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 80.000 | 85.000
Temp 23 | 43.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 77.000 | 82.000
Temp 24 | 38.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 25 | 39.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 26 | 38.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 27 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 28 | na | | na | 0.000 | 0.000 | 0.000 | 0.000 | 70.000 | 75.000
Temp 29 | 35.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 60.000 | 65.000
Temp 30 | 77.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 0.000 | 110.000 | 115.000
Memory | 0x0 | discrete | 0x4080| na | na | na | na | na | na
Power Meter | 188 | Watts | ok | na | na | na | na | na | na
The data can be parsed then pushed into a logging server.
Enable Serial Over Lan (SOL)
You can verify the SOL status via ipmitool by running ipmitool sol info 1
. If you use the lanplus interface, ipmitool -I lanplus -U root -H $DRACIP sol info
. The output should look something like this:
# ipmitool sol info 1
Info: SOL parameter 'Nonvolatile Bitrate (5)' not supported
Info: SOL parameter 'Volatile Bitrate (6)' not supported
Set in progress : set-complete
Enabled : false
Force Encryption : false
Force Authentication : false
Privilege Level : USER
Character Accumulate Level (ms) : 60
Character Send Threshold : 96
Retry Count : 7
Retry Interval (ms) : 500
Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting
Non-Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting
Payload Channel : 1 (0x01)
Payload Port : 623
To enable SOL, set the 'Enabled' property to 'true'. This can only be done using the lanplus interface.
# ipmitool -I lanplus -U root -H XXX sol set enabled true 1
Password:
# ipmitool -I lanplus -U root -H XXX sol info
Password:
Info: SOL parameter 'Nonvolatile Bitrate (5)' not supported
Info: SOL parameter 'Volatile Bitrate (6)' not supported
Set in progress : set-complete
Enabled : true
Force Encryption : false
Force Authentication : false
Privilege Level : USER
Character Accumulate Level (ms) : 60
Character Send Threshold : 96
Retry Count : 7
Retry Interval (ms) : 500
Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting
Non-Volatile Bit Rate (kbps) : IPMI-Over-Serial-Setting
Payload Channel : 1 (0x01)
Payload Port : 623
Troubleshooting
$ autoconf
configure.ac:8: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:9: error: possibly undefined macro: AM_CONFIG_HEADER
configure.ac:38: error: possibly undefined macro: AM_PROG_LIBTOOL
Fix this by running:
$ autoreconf -i