LANaxy: Als ein hängender Thread-Dongle zur eigenen Netzwerküberwachung führte

Eigentlich wollte ich nur ein kleines System, das mir sagt, wenn irgendwo in meinem Netzwerk etwas nicht mehr funktioniert. Inzwischen ist daraus mit Guardians of the LANaxy eine ziemlich umfangreiche und frei kombinierbare Netzwerküberwachung für Homelab, Proxmox, Linux und Smart Home geworden.

Kurz zusammengefasst

LANaxy ist eine kostenlose, selbst gehostete Netzwerküberwachung. Das System kann unter anderem Server, Proxmox-Hosts, LXC-Container, virtuelle Maschinen, Dienste, Websites, SSL-Zertifikate, Backups, Datenträger und entfernte USB-Geräte überwachen.

Das Besondere ist die freie Verknüpfung aus Guardians, Rules und Beacons. Dadurch kann beispielsweise bei einer Warnung eine Lampe eingeschaltet, bei einem kritischen Fehler eine E-Mail verschickt und nach der Behebung eine Telegram-Nachricht gesendet werden.

Direkt installieren:

curl -fsSL https://lanaxy.de/install.sh | sudo bash

Projektseite: lanaxy.de
Quellcode und Dokumentation: GitHub

Schnellnavigation

Warum LANaxy entstanden ist

Angefangen hat alles mit meinen Matter-Geräten.

Eines Tages ließen sich mehrere Geräte plötzlich nicht mehr steuern. Also begann die übliche Fehlersuche: zuerst auf dem zuständigen LXC-Container, anschließend in Home Assistant, dann bei Matter, im Netzwerk und irgendwann vermutlich auch noch in Bereichen, die mit dem Problem überhaupt nichts zu tun hatten.

Nach einiger Zeit stellte sich heraus, dass sich schlicht der Thread-Dongle aufgehängt hatte.

Das war einer dieser Fehler, bei denen man sich hinterher denkt: Schön, dass ich jetzt zwanzig verschiedene Dinge geprüft habe, obwohl ein einfacher Hinweis wie „Der USB-Stick antwortet nicht mehr“ völlig ausgereicht hätte.

Genau dafür wollte ich ein kleines Testsystem bauen. Es sollte regelmäßig prüfen, ob wichtige Komponenten noch erreichbar sind, und mir bei einem Fehler Bescheid geben.

Der ursprüngliche Plan war also ungefähr:

  • System testen
  • Fehler melden
  • fertig

Wie das bei eigenen Softwareprojekten so üblich ist, blieb es natürlich nicht dabei.

Aus einem simplen Erreichbarkeitstest wurden unterschiedliche Überwachungsmethoden. Dann kamen Regeln hinzu. Danach verschiedene Benachrichtigungswege. Anschließend Proxmox, PBS, USB-Geräte, Backups, Websites, SSL-Zertifikate, MiniGuards, MQTT und immer mehr Möglichkeiten, die einzelnen Bestandteile miteinander zu kombinieren.

Irgendwann war aus dem kleinen Testskript Guardians of the LANaxy geworden.


Was ist LANaxy?

LANaxy ist eine selbst gehostete Verwaltungs-, Überwachungs- und Diagnoseoberfläche für Systeme und Dienste im lokalen Netzwerk.

Das System richtet sich vor allem an Nutzer mit einem Homelab, Proxmox, Linux-Servern, LXC-Containern, virtuellen Maschinen oder einem umfangreicheren Smart Home.

Dabei soll LANaxy nicht einfach nur rote und grüne Punkte anzeigen. Eine rote Anzeige mit der Beschriftung „Irgendetwas ist kaputt“ ist technisch zwar eine Information, hilft bei der Fehlersuche aber ungefähr so viel wie eine Motorkontrollleuchte ohne Fehlerspeicher.

LANaxy versucht deshalb, technische Zustände verständlich aufzubereiten und möglichst direkt zu zeigen:

  • welches System betroffen ist,
  • welche Prüfung fehlgeschlagen ist,
  • wann der Fehler erstmals auftrat,
  • ob der Fehler weiterhin besteht,
  • welche Abhängigkeiten betroffen sein könnten,
  • welche Benachrichtigungen ausgelöst wurden,
  • und ob sich das System inzwischen wieder erholt hat.

LANaxy läuft vollständig auf dem eigenen System. Die zentrale Instanz kann beispielsweise in einem LXC-Container oder einer virtuellen Maschine betrieben werden.


Guardians, Rules und Beacons

Das Grundprinzip von LANaxy besteht aus drei Bausteinen:

Guardians überwachen

Ein Guardian prüft einen bestimmten Zustand. Das kann beispielsweise die Erreichbarkeit eines Servers, der Status eines Dienstes, der freie Speicherplatz, ein USB-Gerät oder die Gültigkeit eines SSL-Zertifikats sein.

Der Guardian liefert anschließend einen Zustand wie:

  • OK
  • Warning
  • Critical
  • oder einen nicht eindeutig prüfbaren Zustand

Rules entscheiden

Rules bestimmen, was mit einem Ergebnis passiert. Sie können für einzelne Guardians, bestimmte Gruppen oder mehrere Systeme gleichzeitig gelten.

Eine Rule kann beispielsweise festlegen:

  • Bei Warning sofort melden
  • Bei Critical einen anderen Meldeweg verwenden
  • Erst nach mehreren Fehlern reagieren
  • Während eines Wartungsfensters nichts versenden
  • Nach der Behebung eine Recovery- beziehungsweise OK-Meldung senden
  • Bei länger anhaltenden Fehlern weitere Eskalationsstufen auslösen

Beacons reagieren

Beacons sind die ausführenden Komponenten. Sie verschicken Nachrichten oder lösen Aktionen aus.

Ein Beacon kann beispielsweise:

  • eine E-Mail verschicken,
  • eine Telegram-Nachricht senden,
  • einen MQTT-Befehl veröffentlichen,
  • einen HTTP-Endpunkt aufrufen,
  • eine Lampe schalten,
  • eine Sirene aktivieren,
  • einen Eintrag an ein anderes System übertragen,
  • oder eine beliebige andere Aktion auslösen.

Der Begriff Beacon passt dabei ganz gut: Ein Guardian beobachtet, eine Rule entscheidet und ein Beacon macht anschließend auf das Ergebnis aufmerksam.


Fast beliebige Reaktionen kombinieren

Die eigentliche Stärke von LANaxy liegt nicht in einer einzelnen Überwachungsmethode oder einem bestimmten Benachrichtigungsdienst. Sie liegt in der nahezu freien Kombination der einzelnen Bausteine.

Ein mögliches Beispiel:

  • Bei einer Warning wird über MQTT eine gelbe Lampe eingeschaltet.
  • Bei einem Critical-Zustand wird zusätzlich eine E-Mail verschickt.
  • Besteht der Fehler nach 15 Minuten weiterhin, folgt eine Telegram-Nachricht.
  • Wechselt der Guardian später wieder auf OK, wird die Lampe ausgeschaltet und über Telegram Entwarnung gegeben.

Das ist nur eine mögliche Variante.

Ebenso denkbar wäre:

  • Warning nur im Protokoll speichern
  • Critical über Telegram und E-Mail melden
  • Critical nachts zusätzlich durch eine rote Lampe anzeigen
  • OK ausschließlich an Home Assistant übertragen
  • unterschiedliche Empfänger abhängig vom betroffenen Gerät verwenden
  • bei einem ausgefallenen Internetzugang nur lokale MQTT-Aktionen auslösen
  • bei einem Fehler am Backup-System eine andere Eskalation verwenden als bei einer ausgefallenen Lampe

Ein Guardian kann mit mehreren Rules verbunden sein. Eine Rule kann wiederum mehrere Beacons ansprechen. Zusätzlich können zeitversetzte Eskalationen eingerichtet werden.

Dadurch entsteht kein starrer Benachrichtigungsweg, sondern eine frei konfigurierbare Reaktionskette.

Oder etwas weniger technisch formuliert: LANaxy kann bei einem Problem eine E-Mail schicken, eine Lampe blinken lassen, Telegram nerven, MQTT informieren und nach der Reparatur wieder höflich Entwarnung geben. Gleichzeitig oder nacheinander. Je nachdem, wie viel Aufmerksamkeit das jeweilige Problem verdient.


Home Assistant, ioBroker und MQTT integrieren

LANaxy soll kein Ersatz für Home Assistant oder ioBroker sein. Beide Systeme haben ganz andere Aufgaben und sind deutlich besser darin, Geräte zu automatisieren, Dashboards zu bauen oder das tägliche Smart Home zu steuern.

LANaxy kann diese Systeme aber ergänzen.

Über MQTT und HTTP lassen sich Zustände und Aktionen zwischen LANaxy, Home Assistant, ioBroker und Node-RED austauschen.

Dadurch kann LANaxy beispielsweise:

  • eine Lampe über Home Assistant einschalten,
  • einen Datenpunkt in ioBroker setzen,
  • eine Node-RED-Automation starten,
  • einen Alarmzustand an das Smart Home melden,
  • oder umgekehrt von einem dieser Systeme gesteuert werden.

Angenommen, der Speicherplatz eines Servers wird knapp. Dann kann LANaxy eine Warning erkennen und über MQTT einen Datenpunkt setzen. Home Assistant könnte daraufhin eine gelbe Leuchte aktivieren.

Wird der Zustand kritisch, kann eine zweite Rule zusätzlich eine E-Mail oder Telegram-Nachricht auslösen.

Sobald wieder ausreichend Speicher verfügbar ist, meldet LANaxy den OK-Zustand und Home Assistant schaltet die Warnleuchte wieder aus.

Welche Plattform dabei den eigentlichen Schaltvorgang übernimmt, ist nicht fest vorgegeben. Genau das ist der Punkt: Die Systeme können zusammenarbeiten, ohne dass LANaxy versucht, selbst das gesamte Smart Home zu ersetzen.


Proxmox, Linux und entfernte USB-Geräte überwachen

Ein Schwerpunkt von LANaxy liegt auf Homelab- und Proxmox-Umgebungen.

Je nach eingerichtetem Guardian kann LANaxy unter anderem prüfen:

  • ob ein Proxmox-Host erreichbar ist,
  • ob LXC-Container und virtuelle Maschinen laufen,
  • ob Dienste aktiv sind,
  • ob Backups vorhanden und aktuell sind,
  • ob Datenspeicher genügend freien Platz haben,
  • ob PBS-Jobs erfolgreich waren,
  • ob SMART-Werte auf Probleme hinweisen,
  • ob ZFS-Pools gesund sind,
  • und ob bestimmte Hardware noch vorhanden ist.

Besonders wichtig war mir die Überwachung entfernter USB-Geräte.

Gerade im Smart Home hängen wichtige Komponenten häufig an einem USB-Port eines Servers oder Containers:

  • Zigbee-Koordinatoren
  • Z-Wave-Sticks
  • Thread-Dongles
  • Bluetooth-Adapter
  • EnOcean-Gateways
  • serielle Adapter
  • USV-Verbindungen

Wenn sich ein solcher Stick aufhängt oder vollständig verschwindet, läuft der zugehörige Dienst unter Umständen trotzdem noch. Auf den ersten Blick sieht dann alles normal aus, während im Hintergrund kein einziges Funkgerät mehr erreichbar ist.

Genau das war schließlich der Ausgangspunkt des gesamten Projekts.


Zwei Fehler, die tatsächlich echt waren

Beim Entwickeln eines Überwachungssystems gibt es einen etwas merkwürdigen Effekt: Wenn das eigene System einen Fehler meldet, verdächtigt man zuerst das eigene System.

Schließlich befindet sich die Software noch in Entwicklung. Also ist die naheliegende Erklärung zunächst: Da wird vermutlich irgendeine Prüfung falsch sein.

Die angeblich fehlerhafte NAS-Festplatte

Während der Tests meldete LANaxy Probleme mit einer Festplatte in meinem NAS.

Meine erste Reaktion war nicht etwa: Gut, dass das System den Fehler gefunden hat.

Meine erste Reaktion war eher: Na toll, jetzt erkennt das Ding schon wieder irgendetwas falsch.

Also begann ich, die SMART-Werte, Meldungen und Laufwerksdaten unabhängig von LANaxy zu überprüfen.

Dabei stellte sich heraus: LANaxy hatte recht. Die Festplatte war tatsächlich hinüber.

Das war einerseits schlecht für die Festplatte, andererseits ein ziemlich guter Test für die Überwachung. Das System hatte nicht nur theoretisch funktioniert, sondern ein reales Problem erkannt, bevor ich es selbst bemerkt hatte.

Das SSL-Zertifikat von pro-stoff.de

Ähnlich lief es bei pro-stoff.de.

LANaxy meldete dort ein Problem mit dem SSL-Zertifikat. Auch hier dachte ich zunächst wieder an einen Fehler in der Prüfung.

Schließlich war die Website erreichbar und im Alltag war mir nichts Besonderes aufgefallen.

Nach genauerer Kontrolle zeigte sich aber erneut: Die Meldung war berechtigt. Es gab tatsächlich ein Problem mit dem Zertifikat.

Spätestens an diesem Punkt wurde aus dem Gedanken „Ich teste gerade meine Software“ langsam der Gedanke „Vielleicht sollte ich besser auf sie hören“.

Genau darin liegt der praktische Nutzen einer zentralen Netzwerküberwachung: Sie prüft Dinge regelmäßig, die man selbst nur dann kontrolliert, wenn bereits etwas offensichtlich nicht funktioniert.


MiniGuards für entfernte Systeme

Nicht jede Information lässt sich sinnvoll von der zentralen LANaxy-Instanz abrufen.

Ein Server kann beispielsweise über das Netzwerk erreichbar sein, während ein lokaler Dienst, ein USB-Gerät oder ein bestimmter Prozess ausgefallen ist.

Für solche Fälle gibt es MiniGuards.

Ein MiniGuard ist ein schlanker Agent, der direkt auf einem entfernten Linux-System installiert wird. Er sammelt dort lokale Informationen und meldet sie an die zentrale LANaxy-Instanz.

Damit lassen sich beispielsweise prüfen:

  • lokale Dienste,
  • Prozesse,
  • USB-Geräte,
  • Systeminformationen,
  • benötigte Programme,
  • Abhängigkeiten,
  • Agentenversionen,
  • und Kommunikationsprobleme.

Beim Anlegen eines MiniGuards erzeugt LANaxy direkt einen passenden Installationsbefehl. Der Agent kann anschließend diagnostiziert und aktualisiert werden.

Die Idee dahinter ist einfach: Wenn der Thread-Dongle auf einem entfernten System erneut beschließt, eine spontane Pause einzulegen, soll LANaxy nicht erst nach einer Stunde Fehlersuche sagen: Übrigens, der USB-Stick ist weg.


Portale: LANaxy von außen steuern

Während Guardians Zustände überwachen, dienen Portale dazu, LANaxy von außen zu steuern.

LANaxy unterstützt unter anderem Steuerungsmöglichkeiten über:

  • HTTP,
  • Webhook,
  • MQTT,
  • CLI,
  • Telegram-Bot,
  • und Discord-Bot.

Darüber kann beispielsweise ein bestimmter Guardian sofort getestet, ein Wartungsmodus gesetzt oder ein Status abgefragt werden.

Ein externes Skript kann also einen Guardian prüfen lassen. Home Assistant kann über MQTT eine Aktion auslösen. Ein Telegram-Bot kann den aktuellen Zustand anzeigen. Und über die CLI lassen sich wiederkehrende Verwaltungsaufgaben automatisieren.

Die erlaubten Befehle können pro Portal eingeschränkt werden. Ein Zugang muss also nicht automatisch die vollständige Kontrolle über LANaxy erhalten.


Wofür LANaxy gedacht ist

LANaxy richtet sich nicht an große Rechenzentren mit hunderten Mitarbeitern und einem eigenen Network Operations Center.

Es richtet sich eher an Menschen, deren „kleines Heimnetz“ irgendwann aus Folgendem besteht:

  • einem Proxmox-Host,
  • mehreren LXC-Containern,
  • einem NAS,
  • Home Assistant,
  • ioBroker,
  • MQTT,
  • Zigbee,
  • Z-Wave,
  • Thread,
  • einigen Kameras,
  • Backups,
  • einer USV,
  • und mindestens einem USB-Gerät, dessen Ausfall erstaunlich viele andere Dinge lahmlegt.

Also ein ganz normales Heimnetz. Zumindest nach Homelab-Maßstäben.

LANaxy soll dabei helfen, die Zusammenhänge sichtbar zu machen. In der Guardian-Detailansicht lässt sich beispielsweise erkennen, welche Rules zu einem Guardian gehören und über welche Beacons ein Fehler oder eine Entwarnung gemeldet werden kann.

Zusätzlich kann LANaxy darauf hinweisen, wenn ein Guardian zwar Fehler melden kann, aber keine OK-Nachricht versendet wird. Oder umgekehrt: wenn nur eine Entwarnung konfiguriert wurde, aber niemand erfährt, dass zuvor überhaupt etwas kaputtgegangen ist.

Das klingt zunächst nach einem kleinen Detail. In der Praxis ist es aber erstaunlich hilfreich zu wissen, ob ein Meldeweg vollständig ist.


Keine starre Monitoring-Lösung

Viele Monitoring-Systeme arbeiten nach einem festen Muster:

  • Prüfung schlägt fehl
  • E-Mail wird versendet
  • fertig

Das ist für viele Anwendungsfälle völlig ausreichend.

Im Smart Home und Homelab sind die Anforderungen jedoch oft deutlich individueller.

Ein ausgefallener Testcontainer muss vielleicht gar nicht sofort gemeldet werden. Ein verschwundener Zigbee-Koordinator hingegen schon. Eine ablaufende Domain darf per E-Mail kommen, während ein nicht erreichbares NAS zusätzlich eine Lampe aktivieren sollte.

Bei einem nächtlichen Fehler möchte man vielleicht nur eine stille Telegram-Nachricht. Bei einem kritischen Problem mit der USV darf es dagegen etwas auffälliger werden.

LANaxy schreibt diese Kombinationen nicht vor. Die vorhandenen Bausteine werden passend zum eigenen Netzwerk verbunden.


Diagnose statt bloßer Fehlermeldung

Ein weiterer Schwerpunkt ist die Diagnose.

Ein Fehler soll nicht nur als „fehlgeschlagen“ angezeigt werden. Soweit technisch möglich, zeigt LANaxy zusätzliche Informationen wie:

  • technische Ursache,
  • Zeitpunkt des Fehlers,
  • betroffenes System,
  • letzten erfolgreichen Test,
  • Antwortzeit,
  • API-Fehler,
  • fehlende Abhängigkeiten,
  • Service-Status,
  • oder konkrete nächste Schritte.

Bei Fehlern einer Proxmox- oder PBS-API kann beispielsweise direkt zum betroffenen Guardian gewechselt werden, um Zugangsdaten oder Einstellungen zu korrigieren.

MiniGuards können zusätzlich lokale Selbsttests durchführen und melden, ob Programme fehlen, der Agent veraltet ist oder die Kommunikation mit LANaxy gestört wird.


Selbst gehostet und frei verfügbar

LANaxy ist vollständig selbst gehostet und wird als freie Software veröffentlicht.

Die Anwendung steht unter der GNU Affero General Public License v3.0 oder neuer. Der Quellcode ist öffentlich auf GitHub verfügbar.

LANaxy bleibt kostenlos. Es gibt keine kostenpflichtige Cloud, kein Abonnement und keine künstlich eingeschränkte Basisversion.

Die zentrale Instanz und die überwachten Systeme bleiben im eigenen Netzwerk. Externe Dienste wie Telegram oder E-Mail werden nur verwendet, wenn entsprechende Beacons eingerichtet werden.


LANaxy installieren

LANaxy kann auf einem unterstützten Debian- oder Ubuntu-System mit einem einzelnen Befehl installiert werden:

curl -fsSL https://lanaxy.de/install.sh | sudo bash

Der Installer lädt das aktuelle Release von GitHub, prüft die SHA-256-Prüfsumme und richtet die benötigten Dienste ein.

Weitere Informationen, Quellcode und Dokumentation befinden sich im GitHub-Repository:

Guardians of the LANaxy auf GitHub

Die Projektseite mit dem Installationsbefehl ist unter lanaxy.de erreichbar.


Fazit: Aus einem USB-Problem wurde LANaxy

LANaxy entstand nicht aus dem Plan, eine große Monitoring-Plattform zu entwickeln.

Ich wollte lediglich schneller erkennen, wenn sich ein wichtiger USB-Dongle aufgehängt hat.

Das System sollte mir ersparen, mich erst durch LXC, Home Assistant, Matter und mehrere Logdateien zu arbeiten, bevor ich am Ende feststelle, dass ein USB-Gerät nicht mehr antwortet.

Aus dieser einfachen Idee wurde nach und nach eine flexible Netzwerküberwachung, die Server, Dienste, Websites, Zertifikate, Backups, Datenträger, Smart-Home-Komponenten und entfernte Geräte miteinander verknüpfen kann.

Besonders wichtig ist mir dabei die freie Kombination der Reaktionen.

Ein Warning kann eine Lampe schalten. Ein Critical kann eine E-Mail verschicken. Eine anhaltende Störung kann Telegram alarmieren. Und wenn alles wieder funktioniert, kann LANaxy die Lampe ausschalten und Entwarnung geben.

Oder alles gleichzeitig. Oder ganz anders.

Das Netzwerk gibt schließlich schon genug vor. Die Überwachung muss es nicht auch noch tun.


LANaxy – Dein Netzwerk. Bewacht.

Schreibe einen Kommentar