DevOps & Monitoring

Montray bringt systemd-Health-Checks in die Desktop-Tray

Ein neues Open-Source-Tool nutzt ein System-Tray-Symbol, um Linux-Nutzer zu warnen, wenn systemd-Dienste oder benutzerdefinierte Health-Checks fehlschlagen, und verhindert so stille Ausfälle.

Ein System-Tray-Symbol, das einen gesunden Serverstatus anzeigt
Für diesen Artikel erstellte Illustration

Automatisch aus dem englischen Original übersetzt.

Der Entwickler dimonomid hat Montray veröffentlicht, ein leichtgewichtiges Monitoring-Utility, das sofortige Sichtbarkeit für Fehler bei systemd-Diensten und benutzerdefinierten Health-Checks bietet. Das Tool wurde im Oktober 2026 auf GitHub veröffentlicht und adressiert das häufige Problem stiller Abstürze von Hintergrunddiensten, indem es Statusindikatoren direkt im Desktop-System-Tray anzeigt. Es ermöglicht Linux-Nutzern, sowohl lokale Maschinen als auch Remote-Server zu überwachen, ohne komplexe Enterprise-Monitoring-Stacks bereitzustellen.

Was passiert ist

Das Projekt entstand aus der persönlichen Frustration über stille Fehler in selbst gehosteten Umgebungen. Im Jahr 2021 stellte der Entwickler fest, dass sein Syncthing-Dienst seit Wochen defekt war, was zu erheblichen Daten-Synchronisationsproblemen führte, die nur schwer zu beheben waren. Ähnliche Vorfälle traten mit Certbot auf, wo Fehler bei der Zertifikatsverlängerung unbemerkt blieben, bis die Dienste abliefen. Das Kernproblem bestand darin, dass systemd diese Fehler zwar intern protokollierte, dem Nutzer aber keine proaktive, sichtbare Warnung bot.

Montray löst dieses Problem durch die Aufteilung der Funktionalität in zwei Komponenten: einen Backend-Server und eine Frontend-Benutzeroberfläche. Der montray-server, geschrieben in Go, läuft als Hintergrunddienst auf der Zielmaschine. Er führt Health-Checks durch und stellt den aktuellen Status über eine schreibgeschützte WebSocket-API bereit. Die montray-ui, entwickelt mit Rust und Slint, läuft auf dem Desktop des Nutzers. Sie verbindet sich mit einer oder mehreren Serverinstanzen, aggregiert deren Status und zeigt ein farbcodiertes Symbol im System-Tray an. Diese Architektur ermöglicht es einem einzelnen Laptop, mehrere Remote-Server gleichzeitig zu überwachen.

Die Oberfläche ist für minimale kognitive Belastung konzipiert. Ein grünes Symbol zeigt an, dass alle Systeme betriebsbereit sind. Ein blinkendes gelbes Symbol signalisiert eine Warnung, wie etwa einen nicht-kritischen Dienstfehler, während ein blinkendes rotes Symbol einen Fehlerzustand anzeigt. Wenn die UI selbst die Verbindung zu einem Server verliert, blinkt das Symbol magenta. Benutzer können bestimmte Vorfälle „snoozen“ (aufschoben), wenn sie diese vorübergehend bestätigen möchten, ohne das zugrunde liegende Problem sofort zu beheben.

Wichtige Details

  • Zwei-Komponenten-Architektur: Das System trennt die Monitoring-Logik (montray-server in Go) von der Anzeigelogik (montray-ui in Rust/Slint).
  • Remote-Monitoring via SSH: Die UI unterstützt sichere SSH-Tunnel zur Verbindung mit Remote-Servern, wodurch vermieden wird, dass Monitoring-Ports öffentlich exponiert werden müssen.
  • Anpassbare Checks: Neben systemd-Diensten können Benutzer beliebige Befehlszeilen-Checks konfigurieren, z. B. zur Überprüfung des Speicherplatzes oder des RAID-Zustands.
  • Statusindikatoren: Das Tray-Symbol spiegelt den schlechtesten nicht-snoozten Zustand über alle überwachten Server hinweg wider und verwendet blinkende Muster in Grün, Gelb, Rot oder Magenta.
  • Linux-fokussiert: Während die UI möglicherweise auf Windows oder macOS laufen kann, ist die systemd-Integration des Servers spezifisch für Linux, was die lokalen Überwachungsfunktionen auf anderen Betriebssystemen einschränkt.
  • Open Source: Das Projekt wird auf GitHub gehostet, mit vorgefertigten Binärdateien für eine einfache Installation auf Linux-Distributionen.

Hintergrund

Systemd ist das Init-System, das von den meisten modernen Linux-Distributionen zur Verwaltung von Systemprozessen und Diensten verwendet wird. Wenn ein Dienst fehlschlägt, zeichnet systemd das Ereignis in seinem Journal auf, bietet aber nicht inhärent eine Desktop-Benachrichtigung oder einen visuellen Hinweis für den Nutzer. Für Self-Hoster, die kritische Anwendungen wie Dateisynchronisationstools oder Webserver betreiben, kann dieser Mangel an sofortigem Feedback zu verlängerten Ausfallzeiten führen. Traditionelle Monitoring-Lösungen wie Prometheus oder Nagios sind leistungsstark, erfordern jedoch oft erheblichen Setup- und Wartungsaufwand, der für Einzelnutzer- oder kleine Deployment-Szenarien unverhältnismäßig ist.

Montray schließt diese Lücke durch einen „Local-first“-Monitoring-Ansatz. Es nutzt die vorhandene systemd-Infrastruktur zur Erkennung von Fehlern, präsentiert sie aber so, dass sie für einen Desktop-Nutzer unmöglich zu ignorieren sind. Durch die Verwendung standardisierter Technologien wie WebSockets für die Datenübertragung und SSH für sicheren Remote-Zugriff integriert es sich nahtlos in bestehende Linux-Workflows, ohne neue Netzwerkprotokolle oder schwere Abhängigkeiten zu erfordern.

Warum es wichtig ist

Für Teams und Einzelpersonen, die ihre eigene Software-Infrastruktur verwalten, sind stille Fehler ein großes Risiko. Ein Backup-Job, der nicht mehr ausgeführt wird, oder ein TLS-Zertifikat, das nicht erneuert werden kann, kann schwerwiegende Folgen haben, wenn nicht schnell darauf reagiert wird. Enterprise-Monitoring-Tools sind für solche Szenarien oft überdimensioniert und erfordern dedizierte Server und komplexe Konfigurationen. Montray bietet einen Mittelweg: Es ist leichtgewichtig genug, um auf derselben Maschine zu laufen, die es überwacht, aber robust genug, um mehrere Remote-Hosts zu handhaben.

Das Design des Tools respektiert die Datenschutz- und Sicherheitsaspekte des Self-Hostings. Durch die Nutzung von SSH-Tunnels für Remote-Verbindungen vermeidet es das Öffnen zusätzlicher Ports in Firewalls oder die Verwaltung komplexer Authentifizierungstoken für externe Dienste. Dies macht es besonders geeignet für Entwickler, die persönliche Server oder kleine Unternehmensinfrastrukturen verwalten, bei denen Sicherheitseinfachheit Priorität hat. Die Möglichkeit, benutzerdefinierte Checks zu definieren, bedeutet zudem, dass es anwendungsspezifische Gesundheitsmetriken überwachen kann, nicht nur systemweite Dienstzustände.

Was Sie tun können

  • Lokal installieren: Laden Sie die vorgefertigten Binärdateien für montray-server und montray-ui von GitHub herunter und folgen Sie den Einrichtungsanweisungen, um Ihren lokalen Linux-Rechner zu überwachen.
  • systemd-Checks konfigurieren: Bearbeiten Sie die Datei /etc/montray-server.yml, um festzulegen, welche systemd-Dienste Warnungen oder Fehler auslösen sollen, z. B. indem Sie Syncthing-Fehler als hochprioritäre Fehler markieren.
  • Remote-Server hinzufügen: Richten Sie montray-server auf Remote-Hosts ein und konfigurieren Sie Ihre lokale montray-ui, um sich über SSH-Tunnel zu verbinden, indem Sie die Datei ~/.config/montray-ui/montray-ui.yml bearbeiten.
  • Benutzerdefinierte Health-Checks definieren: Fügen Sie ausführbare Befehle zur Serverkonfiguration hinzu, um Speicherplatz, Datenbankverbindungen oder andere anwendungsspezifische Metriken zu überwachen.
  • Benachrichtigungen testen: Lösen Sie einen Testfehler in einem nicht-kritischen Dienst aus, um zu überprüfen, ob sich die Farbe des Tray-Symbols ändert und ob Desktop-Benachrichtigungen wie erwartet erscheinen.
  • Dokumentation prüfen: Konsultieren Sie das GitHub-Repository des Projekts für detaillierte Leitfäden zur Sicherheitskonfiguration, einschließlich Optionen für TLS- und Bearer-Token-Authentifizierung für Nicht-SSH-Setups.

Weitere News

Alle News