IPMI Platform Event Filtering
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 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
- ↑ Re: (Freeipmi-users) Temperature sensors disabled or abnormally cold: Can alerts be sent? (FreeIPMI Users Mailing List, 30.09.2010)
- ↑ IPMI Specification, V2.0, Rev. 1.1
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.
|