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[edit | edit source]

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[edit | edit source]

View System Event Logs[edit | edit source]

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

Clearing System Event Log[edit | edit source]

Run ipmitool sel clear to clear all SEL logs. This is useful if your machine has an amber light due to a machine check which you wish to clear.

Power Cycle Machine[edit | edit source]

To power cycle a machine: ipmitool -U username -f passwd.txt -I lanplus -H hostname chassis power cycle

Polling Data[edit | edit source]

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.

Troubleshooting[edit | edit source]

$ 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