IPMI Platform Event Filtering

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

IPMI Platform Event Filtering (PEF) bietet Funktionen zum Ausführen von bestimmten Aktionen (z.B. System Power-Off, System Reset, Generierung eines SNMP Traps) wenn bestimmte Ereignisse auftreten (Ereignisse werden typischerweise auch im IPMI System Event Log (SEL) protokolliert). Welche Aktionen bei welchen Ereignissen ausgeführt werden, wird in der Event Filter Table konfiguriert. Dieser Artikel zeigt als PEF Anwendungsbeispiel, wie Sie mit FreeIPMI einen IPMI-fähigen Server so konfigurieren, dass dieser automatisch herunter fährt sobald sein Chassis Intrusion Event auftritt.

PEF Konfiguration auslesen

Die aktuelle PEF Konfiguration eines Server lesen Sie mit dem FreeIPMI Kommando ipmi-pef-config aus (falls Sie das Kommando übers Netzwerk von der Ferne ausführen verwenden Sie dazu die FreeIPMI Host Optionen):

ipmi-pef-config --checkout > pef-configuration.txt

Die folgende Datei enthält die standard PEF Konfiguration eines Servers mit X9SCM-F Mainboard. In dieser Standardkonfiguration ist PEF deaktiviert:

pef-configuration-X9SCM-F.txt

PEF Konfiguration anpassen

Bevor Sie die PEF Konfiguration anpassen, erstellen Sie am besten eine Sicherheitskopie damit Sie bei Konfigurationsproblemen wieder einfach von vorne beginnen können:

cp pef-configuration.txt pef-configuration-backup.txt

PEF aktivieren

PEF aktivieren Sie, indem Sie im ersten Abschnitt der Konfigurationsdatei die Option Enable_PEF sowie die gewünschten Aktions-Optionen auf Yes stellen.

Editieren Sie dazu die Konfigurationsdatei pef-configuration.txt mit einem Texteditor. Da wir in unserem Beispiel den Server automatisiert herunterfahren möchten, konfigurieren wir die folgenden Optionen:

Section PEF_Conf
	## Possible values: Yes/No
	Enable_PEF                                    Yes
	[...]
	## Possible values: Yes/No
	Enable_Power_Down_Action                      Yes
	[...]
EndSection

Event Filter einrichten

Damit der Server beim Eintritt eines General Chassis Intrusion Events heruntergefahren wird, konfigurieren wir den Filter so, dass ein Power_Off beim Auftreten einer Meldung eines Physical_Security Sensors ausgeführt wird. Dazu setzen wir die Event_Data1_Offset_Mask auf 0x01 (Laut Tabelle 42.3 der IPMI Spezifikation steht am Offset 00h - also am ersten Bit - die Information für General Chassis Intrusion; am Offset 01h - also am zweiten Bit, steht die Information für Drive Bay Intrusion - hierzu müsste der Wert auf 0x02 gesetzt werden - 0x03 würde dann zutreffenwenn General Chassis Intrusion und Drive Bay Intrusion gleichzeitig ausgelöst werden würden):

Section Event_Filter_1
	[...]
	## Possible values: Yes/No
	Enable_Filter                                 Yes
	[...]
	## Possible values: Yes/No
	Event_Filter_Action_Power_Off                 Yes
	[...]
	## Specify a hex Slave Address or Software ID from Event Message or 0xFF to Match Any
	Generator_Id_Byte_1                           0xFF
	## Specify a hex Channel Number or LUN to match or 0xFF to Match Any
	Generator_Id_Byte_2                           0xFF
	## Specify a Sensor Type, via hex or see MAN page for string options
	Sensor_Type                                   Physical_Security
	## Specify a Sensor Number or 0xFF to Match Any
	Sensor_Number                                 0xFF
	## Specify a Event/Reading Type Number or 0xFF to Match Any
	Event_Trigger                                 0xFF
	## Give a valid number
	Event_Data1_Offset_Mask                       0x01
	[...]
EndSection

Wichtiger Hinweis: In diesem einfachen Beispiel wird der Server sowohl beim Auslösen der Chassis Intrusion als auch beim Reset der Chassis Intrusion heruntergefahren. Für einen konkreten bestimmten Filter ist die richtige Konfiguration der Event_Data1_Offset_Mask bei der PEF Konfiguration meist die schwierigste Aufgabe.[1]

Als Anhaltspunkte helfen hier die folgenden Kapitel derIPMI Spezifikation:[2]

  • Platform Event Filtering (PEF)
    • 17.7 Event Filter Table
    • 17.8 Event Data 1 Event Offset Mask
    • 17.9 Using the Mask and Compare Fields
  • 29.7 Event Data Field Formats
  • 32.1 SEL Event Records
  • 42 Sensor and Event Code Tables
    • 42.1 Event/Reading Type Codes
    • 42.2 Sensor Type Codes and Data

PEF Konfiguration einspielen und testen

Nachdem Sie die Konfiguration angepasst haben, spielen Sie diese mit folgendem Kommando ein:

ipmi-pef-config --commit --filename=pef-configuration.txt

Zum Abschluss empfehlen wir die Konfiguration zu testen, indem Sie bei laufendem Server das konfigurierte Event erzwingen (in dem hier gezeigten Beispiel öffnen Sie dazu das Gehäuse des Servers). Die gewünschte Aktion (im Beispiel Shutdown des Servers) soll dann automatisch durchgeführt werden.

Einzelnachweise


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

CPU Temp Sensor Interpretation von FreeIPMI
IPMI Init Script für Debian
IPMI Sensor Thresholds anpassen