Redfish (iDRAC, iLO) Smart-Home-Integration, kostenlos und Open Source

Server über ihren BMC (iDRAC, iLO, XClarity …): Betrieb, Zustand, Watt, Temperaturen, Lüfter.
Rack- und Tower-Server haben einen Management-Controller (BMC), der sie ständig überwacht, auch im ausgeschalteten Zustand: Dell iDRAC, HPE iLO, Lenovo XClarity, Supermicro, OpenBMC … Alle sprechen Redfish, die Standard-API der DMTF. Diese Integration liest sie: ein Gerät pro Server mit Betriebszustand, Zustand, Leistungsaufnahme, Temperaturen, Lüftern und Netzteilen. Szenen können reagieren, wenn sich der Zustand verschlechtert, ein kritischer Eintrag im Ereignisprotokoll erscheint oder ein Server ein- oder ausgeschaltet wird, und ein Widget fasst deine Server im Dashboard zusammen. Die Stromsteuerung (Einschalten, sauberes Herunterfahren, Neustart) gibt es, standardmäßig aus. Alles bleibt in deinem lokalen Netzwerk.
Ohne die Hardware entwickelt: Rückmeldungen willkommen. Getestet gegen den offiziellen Redfish-Mockup-Server der DMTF (Docker): Sitzungen, die Werte der alten und der neueren Redfish-Ressourcen, die Ereignisprotokolle, die Reset-Aktion. Die Unterschiede der Hersteller (iLO 4, iDRAC) stammen aus ihren dokumentierten Schemas. Sag uns, wie es auf deinem Server läuft, in den Issues.
Was du brauchst
- Gladys Assistant 5.1.0 oder neuer.
- Einen Server, dessen Controller Redfish aktiviert hat: iDRAC 8 (Firmware 2.40 oder neuer) oder iDRAC 9, iLO 4 (2.30 oder neuer), iLO 5 oder iLO 6, Lenovo XClarity Controller, ein aktuelles Supermicro-BMC, OpenBMC.
- Den Controller per HTTPS (Port 443) vom Gladys-Rechner aus erreichbar.
- Ein Konto auf dem Controller. Ein Nur-Lese-Konto reicht; die Stromsteuerung braucht ein Konto mit diesem Recht (Operator auf einem iDRAC, „Virtual Power and Reset“ auf einem iLO).
- Bis zu drei Controller pro Installation der Integration.
Erste Schritte
1. Den Controller vorbereiten
- Prüfe, ob sich die Weboberfläche des Controllers im Browser öffnet
(
https://<Controller-Adresse>). - Redfish ist bei aktueller Firmware standardmäßig an. Auf einem iDRAC 8 prüfst du es unter iDRAC Settings → Services → Redfish.
- Lege wenn möglich ein eigenes Konto an, nur lesend, wenn du keine Stromsteuerung willst.
2. Die Integration konfigurieren
Im Tab Konfiguration der Integration:
- Controller-Adresse:
192.168.1.30,idrac.lanoderhttps://idrac.lan. Ohnehttp://wird HTTPS verwendet. - Benutzername und Passwort des Controller-Kontos.
- Name (optional): wird im Gerätenamen, im Widget und in den Nachrichten angezeigt. Standardmäßig der Hostname, den der Controller meldet, sonst das Servermodell.
- Bis zu zwei weitere Controller in den nächsten Abschnitten.
- Aktualisierungsintervall: 30 Sekunden bis 5 Minuten (standardmäßig 1 Minute). Die Ereignisprotokolle werden alle 5 Minuten gelesen.
- Selbstsignierte Zertifikate akzeptieren: Die meisten Controller haben ein selbstsigniertes Zertifikat. Wenn auch dein Browser warnt, aktiviere diese Option. Die Verbindung bleibt verschlüsselt, aber die Identität des Controllers wird nicht mehr geprüft: nur in deinem lokalen Netzwerk.
- Stromsteuerung erlauben: siehe Stromsteuerung. Standardmäßig aus.
- Sprache der Namen: Sprache der Funktionsnamen (beim Hinzufügen des Servers festgelegt), der Zustandstexte und der Szenen-Ergebnisse.
Klicke dann auf Verbindung testen: eine Zeile pro Controller, mit den gefundenen Servern und der verwendeten Authentifizierung.
3. Den Server hinzufügen
Der Server erscheint im Tab Entdecken der Integration: Füge ihn hinzu. Nur die hinzugefügten Server erhalten Werte; das Widget und die Szenen-Auslöser funktionieren für alle Server, ob hinzugefügt oder nicht.
Das Gerät
Ein Gerät pro Server (meist eines pro Controller; ein Chassis mit mehreren Knoten ergibt eines pro Knoten). Nur die Funktionen, die der Controller liefert, werden angeboten:
| Funktion | Wert |
|---|---|
| Stromversorgung | An oder aus. Ein Schalter, wenn die Stromsteuerung erlaubt ist |
| Zustand | OK, Warnung oder Kritisch: der Gesamtzustand laut Controller |
| Leistungsaufnahme | Watt, die der Server aufnimmt |
| Zulufttemperatur | Luft, die in den Server strömt, in °C |
| Prozessortemperatur | Der heißeste Prozessor, in °C |
| Lüfter (U/min) / Lüfter (%) | Die mittlere Lüfterdrehzahl, in der Einheit des Controllers |
| Gestörte Netzteile | 0, wenn alles in Ordnung ist |
Das Gerät zeigt in seinen Parametern auch die Redfish-Id, die Seriennummer und die BIOS-Version. Antwortet der Controller nicht, trägt das Gerät das Abzeichen „nicht erreichbar“, und der Status unter dem Namen der Integration sagt, warum.
Dashboard
Das Widget Server (Redfish) hat zwei Modi:
- ohne gewählten Server: eine Zeile pro Server, an oder aus, Zustand und Leistungsaufnahme, orange oder rot, wenn etwas nicht stimmt;
- mit gewähltem Server: Leistungsaufnahme, Zuluft- und Prozessortemperatur als Kacheln, dann Stromversorgung, Zustand, Lüfter und Netzteile. Ist die Stromsteuerung erlaubt, erscheinen die Tasten Herunterfahren und Neu starten (Server an) oder Einschalten (Server aus), jede mit einer Bestätigung.
Aktualisieren liest die Controller erneut.
Szenen
Auslöser
- Serverzustand verschlechtert: Der Zustand wechselt von OK zu Warnung oder Kritisch oder von Warnung zu Kritisch. Variablen: Server, Zustand.
- Neuer kritischer Protokolleintrag: ein neuer kritischer Eintrag im Ereignisprotokoll (SEL auf einem iDRAC, IEL und IML auf einem iLO, EventLog auf OpenBMC). Alle 5 Minuten gelesen; höchstens drei pro Lesung. Variablen: Server, Meldung, Datum.
- Server eingeschaltet und Server ausgeschaltet: egal wodurch (Taste, Controller, Stromausfall). Variable: Server.
Jeder Auslöser lässt sich auf einen Server beschränken. Die erste Lesung nach der Installation zeichnet die Zustände nur auf: Für einen Eintrag oder einen Zustand, der schon da war, wird nichts gemeldet.
Aktionen
- Zustand eines Servers: liest einen Server und gibt den nächsten Aktionen seinen Namen, ob der Controller antwortet, Betrieb, Zustand, Leistungsaufnahme, Temperaturen, Lüfterdrehzahl, gestörte Netzteile und eine fertige Zusammenfassung („web483: an, Zustand OK, 344 W, Zuluft 25 °C …“).
- Strombefehl: Einschalten, sauberes Herunterfahren, Neustart oder erzwungener Neustart (Reset) eines Servers. Braucht Stromsteuerung erlauben.
Szenen-Ideen
- Wenn sich der Zustand des NAS-Servers verschlechtert, seinen Zustand mit Zustand eines Servers per Telegram senden.
- Um 1 Uhr nachts, wenn niemand zu Hause ist, Strombefehl „Sauber herunterfahren“ für den Testserver; um 7 Uhr „Einschalten“.
- Bei einem Neuer kritischer Protokolleintrag mit seiner Meldung benachrichtigen.
Stromsteuerung
Standardmäßig aus. Wenn Stromsteuerung erlauben aktiviert ist, klicke im Tab „Entdecken“ beim Server auf Aktualisieren: Die Funktion Stromversorgung wird zu einem Schalter.
- Einschalten sendet
On(oder einen kurzen Druck auf die Ein-Taste, wenn der Controller keinOnanbietet). - Ausschalten sendet ein sauberes Herunterfahren (
GracefulShutdownoder einen kurzen Tastendruck auf einem iLO 4: Das Betriebssystem fährt sauber herunter). Nie ein erzwungenes Ausschalten: Ein versehentlich betätigter Schalter, ein Sprachassistent oder eine Szene dürfen keinen Server abschalten. - Neu starten (Widget, Szene) ist ein sauberer Neustart, wenn der Controller ihn anbietet. Den erzwungenen Neustart (Reset) gibt es nur in der Szenen-Aktion Strombefehl, ausdrücklich gewählt.
Der Server braucht etwas, um den Zustand zu wechseln: Er wird 15 Sekunden nach dem Befehl erneut gelesen, dann im üblichen Intervall.
Fehlerbehebung
- „Zertifikat abgelehnt“: Aktiviere Selbstsignierte Zertifikate akzeptieren oder installiere auf dem Controller ein anerkanntes Zertifikat.
- „Benutzername oder Passwort abgelehnt“: Prüfe das Konto in der Weboberfläche des Controllers. Manche Controller sperren ein Konto nach einigen Fehlversuchen.
- „antwortet nicht“: Prüfe die Adresse und ob Port 443 des Controllers vom Gladys-Rechner aus erreichbar ist (anderes VLAN?).
- „kein Redfish-Dienst unter dieser Adresse“: Redfish ist aus, oder die Adresse ist nicht die des Controllers (iDRAC 7 und älter haben kein Redfish).
- Eine Funktion fehlt: Der Controller liefert sie nicht (manche Lüfter oder Netzteile sind nur bei eingeschaltetem Server sichtbar).
- Ein Befehl wird abgelehnt: Dem Konto fehlt das Recht, oder der Controller bietet ihn nicht an (ein iLO 4 hat keinen sauberen Neustart).
Grenzen
- Ohne die Hardware entwickelt: Die Unterschiede der Hersteller werden nach ihren Schemas und den offiziellen Mockups behandelt, noch nicht nach echten Servern.
- Ein Chassis pro Server: das erste, das mit dem System verknüpft ist. Blade-Gehäuse und Systeme mit mehreren Chassis zeigen nur dieses.
- Das Ereignisprotokoll wird seitenweise gelesen: Bei einem sehr langen Protokoll kann ein Eintrag zwischen der ersten und der letzten Seite fehlen.
- Der Controller ist ein kleiner Chip: Ein Intervall unter einer Minute belastet ihn, und manche Firmware protokolliert jede Sitzung.
- Reine IPMI-Controller (ohne Redfish) werden nicht unterstützt.
Danksagung
Die Test-Fixtures stammen aus den öffentlichen Mockups des DMTF Redfish Mockup Server (BSD 3-Clause). Redfish ist eine Marke der DMTF. Diese Integration ist weder mit Dell, HPE, Lenovo, Supermicro noch mit der DMTF verbunden.
Konfigurationseinstellungen
Diese Einstellungen fragt Redfish (iDRAC, iLO) in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Deine Server | section | Nein | Überwache deine Server über ihren Management-Controller (BMC) und die Standard-API Redfish: Dell iDRAC 8 und 9, HPE iLO 4 bis 6, Lenovo XClarity, Supermicro, OpenBMC. Gib die Controller-Adresse und ein Konto ein und füge den Server im Tab „Entdecken“ hinzu. |
| Controller-Adresse | string | Nein | Adresse der Weboberfläche von iDRAC, iLO, XClarity oder eines anderen BMC: 192.168.1.30, idrac.lan oder https://idrac.lan. Standardmäßig HTTPS. |
| Benutzername | string | Nein | Ein Konto des Controllers; ein Nur-Lese-Konto reicht, solange du die Stromsteuerung nicht erlaubst. |
| Passwort | secret | Nein | |
| Name (optional) | string | Nein | Wird im Gerätenamen, im Widget und in den Nachrichten angezeigt. Standardmäßig der Hostname oder das Modell, das der Controller meldet. |
| Zweiter Controller (optional) | section | Nein | Ein weiterer Server mit eigener Controller-Adresse und eigenem Konto. |
| Adresse des zweiten Controllers | string | Nein | |
| Zweiter Benutzername | string | Nein | |
| Zweites Passwort | secret | Nein | |
| Zweiter Name (optional) | string | Nein | |
| Dritter Controller (optional) | section | Nein | Ein weiterer Server mit eigener Controller-Adresse und eigenem Konto. |
| Adresse des dritten Controllers | string | Nein | |
| Dritter Benutzername | string | Nein | |
| Drittes Passwort | secret | Nein | |
| Dritter Name (optional) | string | Nein | |
| Optionen | section | Nein | Nur die zu Gladys hinzugefügten Server erhalten Werte; die Szenen-Auslöser und das Widget funktionieren für alle Server. |
| Aktualisierungsintervall | select | Nein | Wie oft jeder Controller gelesen wird. Die Ereignisprotokolle werden alle 5 Minuten gelesen. |
| Selbstsignierte Zertifikate akzeptieren | boolean | Nein | Die meisten Controller haben ein selbstsigniertes Zertifikat: Aktiviere dies, wenn auch dein Browser warnt. Die Verbindung bleibt verschlüsselt, aber der Controller wird nicht mehr authentifiziert. |
| Stromsteuerung erlauben | boolean | Nein | Einschalten, sauberes Herunterfahren und Neustart aus Gladys (Schalter, Widget, Szenen). Nie ein erzwungenes Ausschalten. Das Konto braucht das Recht dazu. Klicke danach im Tab „Entdecken“ beim Server auf „Aktualisieren“. |
| Sprache der Namen | select | Nein | Sprache der Funktionsnamen (beim Hinzufügen eines Servers festgelegt), der Zustandstexte, der Szenen-Ergebnisse und des Verbindungstests. |
So installierst du Redfish (iDRAC, iLO) in Gladys
- Öffne in Gladys Integrationen: Redfish (iDRAC, iLO) erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-redfish:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-redfish.
Redfish (iDRAC, iLO) benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Redfish (iDRAC, iLO) ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation