IPMI

IPMI steht für „Intelligent Platform Management Interface“. Der in vielen BMCs (Base Management Controller) angbotene Webserver zur Hardware-Administration startet, sobald die Maschine an das Stromnetz angeschlossen ist.

Die BMCs heissen bei …

  • Dell: iDRAC (integrated Dell Remote Access Controller; Default Login: root / calvin)

  • HP/HPE: iLO (integrated Lights Out)

  • Supermicro: schlicht BMC (Default-Login: ADMIN / ADMIN)

Dell iDRAC

iDRAC steht für „integrated Dell Remote Access Controller“. Damit lassen sich unter anderem RAIDs verwalten oder die Sensoren einer Maschine bis hin zum Ladestand des Notstromakkus des RAID-Controllers vom Schreibtisch aus überwachen. iDRAC kümmert sich bei Erreichen bestimmter Temperatur-Schwellwerte auch um das Drosseln der CPU-Leistung, oder begrenzt den Stromverbrauch anhand der Vorgaben des Admins. Der Zugriff erfolgt

  • über das Webinterface.

  • seriell über LAN (Simulation einer seriellen Schnittstelle per IPMI).

  • per SSH (proprietäre Shell).

  • per Telnet (per default abgeschaltet).

iDRAC wird über ein eigenes Netzwerk-Interface an das Service-Netzwerk angeschlossen.

HPE iLO

Steht für „integrated Lights Out“ (Version 2 und 3).

Benutzer

Ältere IPMI-Versionen bis v1.5 (Interface „lan“) verkraften nur bis zu 16 Zeichen lange Passwörter. IPMI ab 2.0 (Interfae „lanplus“) erhöht die Passwort-Länge auf 20 Zeichen. Benutzer Nummer 1 ist der Benutzer „Anonymous“.

Mail-Benachrichtigung

So sieht eine IPMI-Fehlermeldung per Mail aus, wenn eine Disk SMART-Errors zeigt:

message
IP : 10.80.32.27
Hostname: host.example.com
SEL_TIME: 2017/09/03 21:09:53
SENSOR_NUMBER: ff
SENSOR_TYPE: HDD
SENSOR_NAME: OEM
EVENT_DESCRIPTION: Medium
EVENT_DIRECTION: Assertion
EVENT SEVERITY:"Information"

ipmitool

Mit Hilfe von ipmitool lassen sich die IPMI-basierten Systemverwaltungs-Interfaces auf der Kommandzeile administrieren.

Begriffe:

  • CT, cr: critical

  • na: Not Available

  • NC, nc: non-critical

  • NR, nr: non-recoverable

  • ns: Not Specified

  • SDR: Sensor Data Record, beschreibt einen bestimmten Sensor

  • SEL: System Event Log

Installation und Konfiguration

yum -y install ipmitool

User

Benutzer auflisten, und dem Benutzer Nummer 2 einen Namen sowie ein Passwort vergeben:

ipmitool user list
ipmitool user set name 2 ipmi-admin
ipmitool user set password 2

Sensoren

# ipmi v1.5 locally
ipmitool sensor list

# ipmi v1.5 remote
ipmitool sensor list -I lan -H 10.80.32.29 -U 'ilo-viewer' -P '0123456789123456'

# ipmi v2.0; we just need USER permissions here
ipmitool sensor list -I lanplus -H 10.80.32.29 -L user -U 'ilo-viewer' -P '01234567890123456789'

Das Ergebnis ist natürlich abhängig von der Maschine. Beispiel:

Sensor

Sensor-Wert

UOM

Status

LowerNR

LowerCT

LowerNC

UpperNC

UpperCT

UpperNR

1

2

3

4

5

6

7

8

9

10

CPU Temp

52.000

degrees C

ok

0.000

0.000

0.000

96.000

101.000

101.000

PCH Temp

44.000

degrees C

ok

0.000

5.000

16.000

90.000

95.000

100.000

System Temp

33.000

degrees C

ok

-10.000

-5.000

0.000

80.000

85.000

90.000

Peripheral Temp

40.000

degrees C

ok

-10.000

-5.000

0.000

80.000

85.000

90.000

VcpuVRM Temp

55.000

degrees C

ok

-5.000

0.000

5.000

95.000

100.000

105.000

VmemABVRM Temp

41.000

degrees C

ok

-5.000

0.000

5.000

95.000

100.000

105.000

VmemCDVRM Temp

35.000

degrees C

ok

-5.000

0.000

5.000

95.000

100.000

105.000

DIMMA1 Temp

39.000

degrees C

ok

-5.000

0.000

5.000

80.000

85.000

90.000

DIMMA2 Temp

na

na

na

na

na

na

na

na

DIMMB1 Temp

41.000

degrees C

ok

-5.000

0.000

5.000

80.000

85.000

90.000

DIMMB2 Temp

na

na

na

na

na

na

na

na

DIMMC1 Temp

na

na

na

na

na

na

na

na

DIMMC2 Temp

na

na

na

na

na

na

na

na

DIMMD1 Temp

na

na

na

na

na

na

na

na

DIMMD2 Temp

na

na

na

na

na

na

na

na

FAN1

6000.000

RPM

ok

300.000

500.000

700.000

25300.000

25400.000

25500.000

FAN2

5400.000

RPM

ok

300.000

500.000

700.000

25300.000

25400.000

25500.000

FAN3

5800.000

RPM

ok

300.000

500.000

700.000

25300.000

25400.000

25500.000

FAN4

5700.000

RPM

ok

300.000

500.000

700.000

25300.000

25400.000

25500.000

FAN5

na

na

na

na

na

na

na

na

FANA

na

na

na

na

na

na

na

na

12V

12.189

Volts

ok

10.173

10.299

10.740

12.945

13.260

13.386

5VCC

5.026

Volts

ok

4.246

4.298

4.480

5.390

5.546

5.598

3.3VCC

3.384

Volts

ok

2.789

2.823

2.959

3.554

3.656

3.690

VBAT

3.075

Volts

ok

2.375

2.487

2.599

3.775

3.887

3.999

Vcpu

1.836

Volts

ok

1.242

1.260

1.395

1.899

2.088

2.106

VDIMMAB

1.218

Volts

ok

0.948

0.975

1.047

1.344

1.425

1.443

VDIMMCD

1.218

Volts

ok

0.948

0.975

1.047

1.344

1.425

1.443

5VSB

4.974

Volts

ok

4.246

4.298

4.480

5.390

5.546

5.598

3.3VSB

3.333

Volts

ok

2.789

2.823

2.959

3.554

3.656

3.690

1.5V PCH

1.536

Volts

ok

1.320

1.347

1.401

1.644

1.671

1.698

1.2V BMC

1.227

Volts

ok

1.020

1.047

1.092

1.344

1.371

1.398

1.05V PCH

1.059

Volts

ok

0.870

0.897

0.942

1.194

1.221

1.248

Chassis Intru

0x0

discrete

0x0000

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

Sensor Data Repository

ipmitool sdr list all

Das Ergebnis ist natürlich abhängig von der Maschine. Beispiel:

CPU Temp         | 51 degrees C      | ok
PCH Temp         | 44 degrees C      | ok
System Temp      | 33 degrees C      | ok
Peripheral Temp  | 40 degrees C      | ok
VcpuVRM Temp     | 55 degrees C      | ok
VmemABVRM Temp   | 41 degrees C      | ok
VmemCDVRM Temp   | 35 degrees C      | ok
DIMMA1 Temp      | 39 degrees C      | ok
DIMMA2 Temp      | no reading        | ns
DIMMB1 Temp      | 41 degrees C      | ok
DIMMB2 Temp      | no reading        | ns
DIMMC1 Temp      | no reading        | ns
DIMMC2 Temp      | no reading        | ns
DIMMD1 Temp      | no reading        | ns
DIMMD2 Temp      | no reading        | ns
FAN1             | 6000 RPM          | ok
FAN2             | 5400 RPM          | ok
FAN3             | 5800 RPM          | ok
FAN4             | 5700 RPM          | ok
FAN5             | no reading        | ns
FANA             | no reading        | ns
12V              | 12.13 Volts       | ok
5VCC             | 5.03 Volts        | ok
3.3VCC           | 3.38 Volts        | ok
VBAT             | 3.08 Volts        | ok
Vcpu             | 1.84 Volts        | ok
VDIMMAB          | 1.22 Volts        | ok
VDIMMCD          | 1.22 Volts        | ok
5VSB             | 4.97 Volts        | ok
3.3VSB           | 3.33 Volts        | ok
1.5V PCH         | 1.54 Volts        | ok
1.2V BMC         | 1.23 Volts        | ok
1.05V PCH        | 1.06 Volts        | ok
Chassis Intru    | 0x00              | ok
BMC FRU          | Log FRU @00h 00.0 | ok
ATEN BMC         | Dynamic MC @ 20h  | ok
NM exception     | Event-Only        | ns
NM health        | Event-Only        | ns
NM op cap        | Event-Only        | ns
NM alert         | Event-Only        | ns
PS1 Status       | 0x01              | ok
PS2 Status       | 0x01              | ok

System Event Log (SEL)

Achtung: Zeiten werden in UTC statt in Local Time angegeben (im Beispiel ist das Event nicht um 07:06, sondern um 08:06 Ortszeit Winterzeit aufgetreten).

ipmitool sel list

Beispiel:

 1 | 03/12/2019 | 13:10:45 | Physical Security #0xaa | General Chassis intrusion () | Asserted
 2 | 03/13/2019 | 11:15:43 | Physical Security #0xaa | General Chassis intrusion () | Asserted
 3 | 03/13/2019 | 15:15:34 | Physical Security #0xaa | General Chassis intrusion () | Asserted
 4 | 03/16/2019 | 07:06:24 | Physical Security #0xaa | General Chassis intrusion () | Asserted
 5 | 03/16/2019 | 12:10:02 | OS Boot | Installation started () | Asserted
 6 | 03/16/2019 | 12:16:11 | OS Boot | Installation completed () | Asserted
 7 | 04/02/2019 | 14:46:19 | OS Boot | Installation started () | Asserted
 8 | 04/02/2019 | 14:52:04 | OS Boot | Installation completed () | Asserted
 9 | 08/17/2019 | 02:31:44 | Power Supply #0xc8 | Failure detected () | Asserted
 a | 08/17/2019 | 02:31:57 | Power Supply #0xc8 | Failure detected () | Deasserted
 b | 08/17/2019 | 02:33:24 | Power Supply #0xc8 | Failure detected () | Asserted
 c | 08/17/2019 | 02:33:33 | Power Supply #0xc8 | Failure detected () | Deasserted
 d | 08/26/2019 | 13:57:02 | Physical Security #0xaa | General Chassis intrusion () | Deasserted
 e | 09/03/2019 | 21:08:34 | Unknown #0xff |  | Asserted
 f | 09/03/2019 | 21:09:53 | Unknown #0xff |  | Asserted
10 | 09/03/2019 | 21:11:20 | Unknown #0xff |  | Asserted
11 | 09/03/2019 | 21:19:24 | Unknown #0xff |  | Asserted
12 | 09/03/2019 | 21:23:27 | Unknown #0xff |  | Asserted
13 | 09/03/2019 | 21:24:49 | Unknown #0xff |  | Asserted
14 | 09/03/2019 | 21:59:00 | Unknown #0xff |  | Asserted
15 | 09/10/2019 | 20:45:43 | OS Boot | Installation started () | Asserted
16 | 09/10/2019 | 21:00:01 | OS Boot | Installation started () | Asserted
17 | 09/10/2019 | 21:11:27 | OS Boot | Installation completed () | Asserted

Mit Bezeichnung des Sensors statt der Hardware-Adresse:

ipmitool sel elist

Beispiel:

 1 | 03/12/2019 | 13:10:45 | Physical Security Chassis Intru | General Chassis intrusion () | Asserted
 2 | 03/13/2019 | 11:15:43 | Physical Security Chassis Intru | General Chassis intrusion () | Asserted
 3 | 03/13/2019 | 15:15:34 | Physical Security Chassis Intru | General Chassis intrusion () | Asserted
 4 | 03/16/2019 | 07:06:24 | Physical Security Chassis Intru | General Chassis intrusion () | Asserted
 5 | 03/16/2019 | 12:10:02 | OS Boot | Installation started () | Asserted
 6 | 03/16/2019 | 12:16:11 | OS Boot | Installation completed () | Asserted
 7 | 04/02/2019 | 14:46:19 | OS Boot | Installation started () | Asserted
 8 | 04/02/2019 | 14:52:04 | OS Boot | Installation completed () | Asserted
 9 | 08/17/2019 | 02:31:44 | Power Supply PS1 Status | Failure detected () | Asserted
 a | 08/17/2019 | 02:31:57 | Power Supply PS1 Status | Failure detected () | Deasserted
 b | 08/17/2019 | 02:33:24 | Power Supply PS1 Status | Failure detected () | Asserted
 c | 08/17/2019 | 02:33:33 | Power Supply PS1 Status | Failure detected () | Deasserted
 d | 08/26/2019 | 13:57:02 | Physical Security Chassis Intru | General Chassis intrusion () | Deasserted
 e | 09/03/2019 | 21:08:34 | Unknown #0xff |  | Asserted
 f | 09/03/2019 | 21:09:53 | Unknown #0xff |  | Asserted
10 | 09/03/2019 | 21:11:20 | Unknown #0xff |  | Asserted
11 | 09/03/2019 | 21:19:24 | Unknown #0xff |  | Asserted
12 | 09/03/2019 | 21:23:27 | Unknown #0xff |  | Asserted
13 | 09/03/2019 | 21:24:49 | Unknown #0xff |  | Asserted
14 | 09/03/2019 | 21:59:00 | Unknown #0xff |  | Asserted
15 | 09/10/2019 | 20:45:43 | OS Boot | Installation started () | Asserted
16 | 09/10/2019 | 21:00:01 | OS Boot | Installation started () | Asserted
17 | 09/10/2019 | 21:11:27 | OS Boot | Installation completed () | Asserted

Meta-Informationen:

ipmitool sel info

Beispiel:

SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 2
Free Space       : 10200 bytes
Percent Used     : 0%
Last Add Time    : 02/17/2019 10:29:31
Last Del Time    : 04/09/2018 08:10:06
Overflow         : false
Supported Cmds   : 'Reserve' 'Get Alloc Info'
# of Alloc Units : 512
Alloc Unit Size  : 20
# Free Units     : 510
Largest Free Blk : 510
Max Record Size  : 20

SEL löschen:

ipmitool sel clear

Troubleshooting

Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

Evtl. fehlen die Kernel-Module - laden:

modprobe ipmi_devintf
modprobe ipmi_si

Um sie dauerhaft zu laden, diese zu /etc/modules hinzufügen.

Built on 2022-06-03