Zum Hauptinhalt springen

Zabbix Smart-Home-Integration, kostenlos und Open Source

Zabbix-Integration für Gladys Assistant

Deine Zabbix-Hosts und -Probleme in Gladys, mit Szenen, wenn ein Problem beginnt oder endet.

Deine Zabbix-Überwachung in Gladys: Jeder Host wird ein Gerät (erreichbar, aktive Probleme, höchster Schweregrad, Wartung), ein Gerät „Zabbix-Server“ zählt die Probleme nach Schweregrad, und deine Szenen reagieren, wenn ein Problem beginnt oder behoben ist: rotes Licht bei einer Katastrophe, eine Nachricht bei einer ausfallenden Festplatte. Eine Szene kann außerdem die Probleme eines Hosts bestätigen, und ein Widget im Dashboard listet die aktuellen Probleme.

Die Integration liest die Zabbix-API in deinem lokalen Netzwerk, mit einem API-Token. Nichts läuft über eine Cloud.

Getestet mit einem echten Zabbix 7.0 LTS und 6.0 LTS (offizielle Docker-Images, Agent 2 und Trapper-Items); Zabbix 5.4 und 6.4 nur anhand der dokumentierten Unterschiede ihrer API. Rückmeldungen sind willkommen: github.com/guim31/gladys-zabbix/issues.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Zabbix 5.4 oder neuer (API-Token), 6.0 LTS und 7.0 LTS eingeschlossen, erreichbar vom Gladys-Rechner aus (die Adresse seiner Weboberfläche).
  • Einen Zabbix-Benutzer für Gladys. Eine Rolle mit Lesezugriff auf die Hostgruppen genügt; für die Szenen-Aktion kommt das Recht dazu, Probleme zu bestätigen.

Erste Schritte​

1. Ein API-Token erstellen​

Öffne in Zabbix Benutzer → API-Token (ab 6.4; Administration → Allgemein → API-Token von 5.4 bis 6.2), klicke auf API-Token erstellen, wähle den Benutzer, deaktiviere „Ablaufdatum festlegen“ oder wähle ein fernes Datum, und kopiere das Token: Zabbix zeigt es nur einmal an.

2. Die Integration konfigurieren​

Öffne in Gladys die Konfiguration der Integration:

  • Adresse von Zabbix: die Adresse, mit der du die Oberfläche von Zabbix öffnest, z. B. http://192.168.1.2/zabbix oder https://zabbix.example.com. Die aus dem Browser kopierte Adresse einer Seite geht auch.
  • API-Token: das Token aus Schritt 1.
  • Hostgruppen (optional): Namen durch Kommas getrennt, genau wie in Zabbix geschrieben (mit Groß- und Kleinschreibung). Leer: alle überwachten Hosts, die das Token sieht.
  • Item-Schlüssel (optional): bis zu 5 numerische Item-Schlüssel, z. B. system.cpu.util, vm.memory.utilization, vfs.fs.size[/,pused]. Jeder Host, der eines dieser Items hat, bekommt eine Funktion mit dem letzten Wert.
  • Aktualisierungsintervall: 15 Sekunden bis 5 Minuten (standardmäßig 30 Sekunden).
  • Bestätigen aus Szenen erlauben: deaktiviere es, um die Bestätigungs- Aktion auszuschalten.
  • Selbstsignierte Zertifikate akzeptieren: für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
  • Sprache der Namen: Sprache der Funktionsnamen und der Szenen-Ergebnisse.

Speichere und klicke auf Verbindung testen: Die Zabbix-Version, die Zahl der Hosts und der aktiven Probleme werden angezeigt.

3. Die Geräte hinzufügen​

Öffne den Tab Entdecken der Integration und lege die Hosts an, denen du folgen willst, dazu das Gerät „Zabbix-Server“, wenn du die Zahlen nach Schweregrad möchtest. Die Szenen-Auslöser gelten für alle Hosts, ob in Gladys angelegt oder nicht.

Die Geräte​

Jeder Host (nur überwachte Hosts; deaktivierte werden ausgelassen):

FunktionWert
Erreichbar1 erreichbar, 0 nicht erreichbar (eine Schnittstelle oder der aktive Agent ab 7.0)
Aktive ProblemeZahl der aktiven Probleme (ohne unterdrückte)
Höchster Schweregrad0 Nicht klassifiziert, 1 Information, 2 Warnung, 3 Durchschnittlich, 4 Hoch, 5 Katastrophe, -1 kein Problem
In Wartung1 während einer Zabbix-Wartung des Hosts
Itemseine Funktion pro konfiguriertem Item-Schlüssel des Hosts, nach ihm benannt

„Erreichbar“ bleibt leer für einen Host ohne Schnittstelle (nur Trapper-Items), dessen Erreichbarkeit Zabbix nicht kennt.

Das Gerät Zabbix-Server:

  • Aktive Probleme
  • Probleme nicht klassifiziert
  • Probleme Information
  • Probleme Warnung
  • Probleme Durchschnittlich
  • Probleme Hoch
  • Probleme Katastrophe

Werte gehen nur an Gladys, wenn sie sich ändern, sonst alle 6 Stunden.

Dashboard​

Das Widget Zabbix-Probleme zeigt drei Kacheln (die aktiven Probleme, die noch unbestätigten, die nicht erreichbaren Hosts) und dann die Probleme, die schwersten zuerst: das Problem, sein Host (✓ nach der Bestätigung), und ein Symbol und eine Farbe für den Schweregrad. Höchstens zehn Zeilen. Aktualisieren liest Zabbix neu. In den Einstellungen wählst du Hosts, um nur deren Probleme zu zeigen (leer: alle Hosts).

Szenen​

Auslöser​

  • Ein Problem beginnt: ein neues Problem auf einem Host. Filter: Hosts (leer: beliebig), Schweregrade (leer: beliebig; für „Hoch oder mehr“ wähle Hoch und Katastrophe). Variablen: Hostname, Problem, Schweregrad, Schweregrad-Stufe (0 bis 5), Zabbix-Ereignis-ID.
  • Ein Problem ist behoben: ein Problem ist behoben oder geschlossen, mit denselben Filtern und Variablen, dazu seine Dauer in Minuten.
  • Zabbix antwortet nicht mehr: Die API antwortet zweimal hintereinander nicht (Variablen: Adresse von Zabbix, Fehler).

Die beim Start der Integration schon vorhandenen Probleme werden nicht gemeldet. Ein Problem, das während eines Neustarts von Gladys oder der Integration beginnt oder endet, wird beim nächsten Lesen einmal gemeldet. Durch eine Wartung unterdrückte Probleme werden ausgelassen, wie in den Dashboards von Zabbix: weder gezählt noch gemeldet, solange sie unterdrückt sind, und nicht als behoben gewertet; ein während der Wartung entstandenes Problem wird an ihrem Ende gemeldet.

Aktionen​

  • Probleme eines Hosts bestätigen: bestätigt die aktiven Probleme des Hosts in Zabbix, mit einer Nachricht in ihrem Verlauf (leer: „In Gladys bestätigt“). Gibt die Zahl der bestätigten Probleme zurück. Abschaltbar mit „Bestätigen aus Szenen erlauben“.
  • Probleme lesen: zählt und listet die aktiven Probleme eines Hosts oder aller für die nächsten Aktionen: Anzahl, unbestätigt, höchster Schweregrad (in Worten und als Stufe) und die Liste „Host: Problem“.

Szenen-Ideen​

  • Rotes Licht bei ernsten Problemen: Auslöser „Ein Problem beginnt“, Schweregrade Hoch und Katastrophe → die Wohnzimmerlampe wird rot, und eine Nachricht schickt {{triggerEvent.data.host}}: {{triggerEvent.data.problem}}.
  • Zurück zur Normalität: Auslöser „Ein Problem ist behoben“, dieselben Filter → Nachricht „Behoben nach {{triggerEvent.data.duration_minutes}} Min.“.
  • Morgenbericht: jeden Tag um 8:00 „Probleme lesen“ → Anzahl und Liste schicken, wenn die Anzahl über 0 liegt.
  • Vom Sofa aus gesehen: ein Dashboard-Knopf oder eine Zigbee-Fernbedienung startet „Probleme eines Hosts bestätigen“ für das NAS.

Fehlerbehebung​

  • „API-Token abgelehnt oder abgelaufen“: prüfe das Token unter Benutzer → API-Token (aktiviert, nicht abgelaufen) und ob sein Benutzer aktiviert ist.
  • „Zabbix antwortet nicht“: prüfe die Adresse vom Gladys-Rechner aus. localhost ist der Container der Integration selbst: Nimm die IP-Adresse des Zabbix-Rechners.
  • „Keine Zabbix-API unter dieser Adresse“: Die Adresse führt nicht zur Weboberfläche; api_jsonrpc.php muss neben ihren Seiten liegen.
  • „Zertifikat abgelehnt“: Aktiviere „Selbstsignierte Zertifikate akzeptieren“ oder nimm die http://-Adresse im lokalen Netzwerk.
  • „Keine Hostgruppe mit diesen Namen“: Die Namen müssen genau denen in Zabbix entsprechen. Der Bericht von „Verbindung testen“ listet die unbekannten.
  • Ein Host fehlt: Er ist deaktiviert, außerhalb der Hostgruppen, oder der Benutzer des Tokens darf ihn nicht lesen.
  • Das Bestätigen wird abgelehnt: Die Rolle des Benutzers braucht „Probleme bestätigen“ und Lese- oder Schreibrecht auf die Hostgruppe.

Grenzen​

  • Ein Zabbix-Server pro Integration.
  • Nur Probleme von Triggern (keine internen Ereignisse, keine Dienste). Unterdrückte Probleme werden ausgelassen.
  • „Ein Problem ist behoben“ löst auch aus, wenn ein Problem den Bereich verlässt: ein Host aus den Hostgruppen entfernt, ein Trigger deaktiviert.
  • Höchstens 30 Problem-Ereignisse pro Lesen: Ein Netzwerkausfall kann Dutzende auf einmal auslösen; der Rest folgt beim nächsten Lesen.
  • Item-Funktionen enthalten nur Zahlen; ein Prozentwert erscheint als Stand von 0 bis 100, andere Einheiten ohne Einheit.
  • Kein Kontingent auf der Zabbix-API: Jedes Lesen schickt zwei bis sechs Anfragen.

Nicht mit Zabbix SIA verbunden. Zabbix ist eine Marke von Zabbix SIA.

Konfigurationseinstellungen​

Diese Einstellungen fragt Zabbix in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein Zabbix-ServersectionNeinÖffne in Zabbix (5.4+) Benutzer → API-Token (vor 6.4: Administration → Allgemein), erstelle ein Token und füge es unten mit der Adresse von Zabbix ein. Lege dann die Hosts, denen du folgen willst, im Tab „Entdecken“ an: Die Szenen-Auslöser gelten für alle Hosts, angelegt oder nicht.
Adresse von ZabbixstringJaDie Adresse, mit der du die Oberfläche von Zabbix öffnest; die API liegt daneben.
API-TokensecretJaEin Benutzer mit Lesezugriff genügt, dazu das Recht, Probleme zu bestätigen, für die Szenen-Aktion.
Hostgruppen (optional)stringNeinNamen durch Kommas getrennt. Leer: alle überwachten Hosts, die das Token sieht.
Item-Schlüssel (optional)stringNeinBis zu 5 numerische Item-Schlüssel, durch Kommas getrennt, bei jedem Host, der sie hat.
OptionensectionNein
AktualisierungsintervallselectNeinWie oft Zabbix gelesen wird: jedes Mal eine Handvoll API-Anfragen.
Bestätigen aus Szenen erlaubenbooleanNeinDeaktiviere es, um die Szenen-Aktion „Probleme eines Hosts bestätigen“ auszuschalten.
Selbstsignierte Zertifikate akzeptierenbooleanNeinNur für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
Sprache der NamenselectNeinSprache der Funktionsnamen (beim Hinzufügen eines Geräts festgelegt) und der Szenen-Ergebnisse.

So installierst du Zabbix in Gladys​

  1. Öffne in Gladys Integrationen: Zabbix erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-zabbix:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-zabbix.

Zabbix 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​

Zabbix 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.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂