Cockpit-Add-on
Eine Nachricht, wenn ein Add-on auf einem Server Aufmerksamkeit braucht
Was Cron Jobs, Image Update Monitor, Update Gaps, Security Monitor und andere Add-ons mit Status-Vertrag auf demselben Server melden, bewertet Host Settings wie das Status Board und schickt eine Nachricht per ntfy, E-Mail oder beidem, wenn ein Befund zur Warnung oder Gefahr wird und wenn er wieder in Ordnung ist.
- Stabil
- Version 0.1.0
- Apache-2.0
- Cockpit
- Debian & Ubuntu
- Fedora & RHEL

Das Problem
Eine Seite hilft nur, solange jemand hinsieht.
Jedes Add-on zeigt seine Befunde auf seiner eigenen Seite. Das Status Board bringt sie auf eine Seite, lädt aber nur, solange seine Seite offen ist, und benachrichtigt niemanden.
Eine Nachricht für jeden Zustand wäre nur Rauschen. Wichtig ist die Änderung: ein Befund, der zur Warnung oder Gefahr wird, und der Moment, in dem er wieder in Ordnung ist.
Ein ntfy-Topic, das ohne Anmeldung offen ist, lässt jeden, der seinen Namen kennt, mitlesen, was auf deinem Server nicht stimmt.
Funktionen
Was es kann
Änderungen, keine Zustände
Eine Nachricht, wenn ein Befund zur Warnung oder Gefahr wird, wenn aus einer Gefahr eine Warnung wird und wenn er wieder in Ordnung ist oder nicht mehr gemeldet wird. Auch ein zweiter Befund in einem Add-on, das schon eine Warnung zeigt, wird gemeldet.
Ruhe, wenn sich nichts ändert
Dieselbe Änderung desselben Befunds kommt höchstens einmal pro Stunde, und mehrere Änderungen eines Laufs kommen als eine Nachricht. Der erste Lauf nach dem Einrichten schickt eine Zusammenfassung dessen, was die Add-ons dann melden.
ntfy, E-Mail oder beides
Jeder ntfy-Server, mit Token oder ohne: Eine Gefahr kommt mit hoher Priorität, eine Warnung mit der normalen, „wieder in Ordnung“ mit niedriger. E-Mails gehen an den eigenen Mailserver des Servers auf localhost:25.
Verbindung prüfen
Die Seite prüft den Weg zu ntfy: Der Server antwortet, die Verbindung ist verschlüsselt, das Token darf senden, und das Topic ist für jeden ohne Anmeldung gesperrt, zum Lesen und auf Wunsch auch zum Senden.
Befehle für den ntfy-Server
Der Benutzer, sein Schreibrecht auf das Topic und das Token, das dieser Server braucht, fertig zum Kopieren. Den ntfy-Server selbst richtet Host Settings nicht ein.
Der eigene Zustand im Status Board
Ob Nachrichten eingerichtet sind, ob die letzte hinausging, ob das Topic gesperrt ist und wann der Notifier zuletzt lief: Das Status Board zeigt es, das Menü von Cockpit als Symbol.
Wann eine Nachricht kommt
Host Settings prüft selbst nichts: Es meldet nur, was die Add-ons auf seinem Server berichten, alle 5 Minuten. Als Problem zählen nur Warnungen und Gefahren.
| Was passiert | Nachricht |
|---|---|
| Ein Befund wird zur Warnung oder Gefahr | Ja; bei ntfy kommt eine Gefahr mit hoher Priorität |
| Aus einer Gefahr wird eine Warnung | Ja |
| Ein Befund ist wieder in Ordnung oder wird nicht mehr gemeldet | Ja, „wieder in Ordnung“, bei ntfy mit niedriger Priorität |
| Ein Eintrag ist älter, als sein Add-on erlaubt | Ja: Er zählt als Warnung |
| Der Status eines Add-ons lässt sich nicht lesen | Ja: Das Add-on selbst zählt als Warnung |
| Dieselbe Änderung desselben Befunds innerhalb einer Stunde | Nein, nicht vor Ablauf der Stunde |
| Der erste Lauf nach dem Einrichten | Eine Zusammenfassung dessen, was die Add-ons dann melden |
Bilder



Sicherheit
- Der Notifier läuft nie als root: Er läuft als eigener Systembenutzer, von systemd gehärtet, und darf nur seinen Zustand schreiben.
- Ein Status-Befehl läuft nur, wenn er unter /usr/lib/cockpit-NAME/ liegt und er und seine Ordner root gehören und niemand sonst sie ändern kann.
- Das ntfy-Token geht von der Seite über die Standardeingabe an das Hilfsprogramm, liegt in einer Datei, die nur root lesen kann, und erreicht den Notifier als systemd-Credential. Den Server verlässt es nur als Header einer Anfrage an den eingerichteten ntfy-Server; Weiterleitungen werden nicht verfolgt. Die Seite zeigt es nie.
- Eine Nachricht enthält nur, was die Add-ons melden, ihre Namen und den Namen des Servers. Was ein Add-on meldet, erreicht die Seite und die Nachrichten als Text, gekürzt und von Steuer- und Richtungszeichen bereinigt.
- Die Seite ändert nur über ihre Dialoge etwas, mit Administratorrechten. Senden ohne Anmeldung wird nur versucht, wenn du auf „Verbindung prüfen“ klickst; nimmt das Topic es an, ist genau diese Nachricht die Warnung.
- Die Seite lädt nichts aus dem Netz: Schriften und Symbole bringt sie selbst mit.
Installieren
Installation
Voraussetzungen
- Cockpit 264 oder neuer
- Python 3.8 oder neuer, systemd 247 oder neuer und ss (iproute2)
- Für E-Mail: ein Mailserver, der auf localhost:25 Mail annimmt, etwa postfix oder exim
- Für ntfy: ein ntfy-Server, den dieser Server erreicht
- Add-ons mit Status-Vertrag, etwa Cron Jobs, Image Update Monitor, Update Gaps und Security Monitor
Installiere es auf jedem Server, der Nachrichten schicken soll.
Aus der Azentrius-Paketquelle
Für Debian, Ubuntu, Fedora und RHEL. Richte die Paketquelle einmal ein:
# Debian und Ubuntu
curl -fsSLO https://packages.azentrius.com/azentrius-repository.deb
sudo apt install ./azentrius-repository.deb
sudo apt update
# Fedora und RHEL
sudo rpm --import https://packages.azentrius.com/azentrius.asc
sudo dnf install https://packages.azentrius.com/azentrius-repository.rpm
Installiere dann Host Settings in Cockpit unter Anwendungen oder auf der Konsole:
sudo apt install cockpit-host-settings # Debian, Ubuntu
sudo dnf install cockpit-host-settings # Fedora, RHEL
Die Updates deines Systems halten es aktuell. Die regelmäßige Prüfung bleibt aus, bis sie eingerichtet ist: Öffne die Seite mit Administratorrechten, richte ntfy, E-Mail oder beides ein, dann die regelmäßige Prüfung. Ihr erster Lauf schickt die Zusammenfassung.
Aus den Dateien eines Releases
Jedes Release enthält .deb, .rpm, SHA256SUMS und einen signierten Build-Nachweis. Prüfe beides vor der Installation:
sha256sum --ignore-missing -c SHA256SUMS
gh attestation verify cockpit-host-settings_X.Y.Z-1_all.deb --repo Azentrius/cockpit-host-settings
sudo apt install ./cockpit-host-settings_X.Y.Z-1_all.deb # oder: sudo dnf install ./cockpit-host-settings-X.Y.Z-1.noarch.rpm
ntfy Schritt für Schritt einrichten, Fehlersuche und Deinstallation: siehe README.
Fragen
Prüft es den Server selbst?
Nein. Es meldet nur, was die Add-ons auf seinem eigenen Server berichten, bewertet wie im Status Board. Einstellungen der anderen Add-ons hält es nicht; jedes behält seine eigenen.
Brauche ich es auf jedem Server?
Auf jedem Server, der Nachrichten schicken soll: Es liest nur die Add-ons seines eigenen Servers.
Richtet es den ntfy-Server ein?
Nein. Die Seite zeigt die Befehle, die der ntfy-Server für Benutzer, Topic und Token dieses Servers braucht; du führst sie dort aus. Mit auth-default-access: deny-all auf diesem Server und einem Token für den Benutzer dieses Servers kann niemand sonst sein Topic lesen oder dorthin senden.
Was, wenn der Server aus ist oder ntfy nicht erreicht?
Solange der Server aus ist, kommt nichts, und solange er den ntfy-Server oder seinen Mailserver nicht erreicht, nichts auf diesem Weg. Eine Nachricht, die über keinen Kanal hinausging, wird beim nächsten Lauf erneut geschickt, und das Status Board auf dem Host, der die anderen erreicht, zeigt einen Server, der nicht antwortet, als nicht erreichbar. Ging eine Nachricht nicht hinaus, sagt das der eigene Eintrag von Host Settings im Status Board.
Warum braucht E-Mail einen Mailserver auf localhost:25?
Der Notifier übergibt seine Mail an den eigenen Mailserver des Servers, etwa postfix oder exim, der sie zustellt oder weiterleitet. Ein sendmail-Befehl allein (nullmailer, msmtp, dma) wird nicht genutzt: Die Sandbox des Notifiers ignoriert das setgid-Bit, das postdrop von postfix braucht.
Wird jeder offene Port einzeln gemeldet?
In 0.1.0 nicht: Es vergleicht jeden Eintrag eines Add-ons als Ganzes, ein weiterer zum Internet offener Port gibt also keine neue Nachricht, solange dieser Eintrag schon eine Gefahr ist. Ab dem Release nach 0.1.0 wird jeder Befund, den ein Add-on hinter einem Eintrag auflistet, etwa jeder aus dem Internet erreichbare Port, einzeln gemeldet, und erneut, wenn er wiederkommt.
Was ist mit den Einstellungen von Cockpit selbst?
Host Settings hat bisher einen Reiter, Benachrichtigungen. Ein zweiter für die Einstellungen von Cockpit in /etc/cockpit/cockpit.conf ist geplant.
Was es unterscheidet
Das Status Board zeigt den Zustand aller Hosts, solange seine Seite offen ist, und benachrichtigt niemanden. Host Settings läuft auf jedem Server, auch wenn niemand hinsieht, und meldet die Änderungen über ntfy oder E-Mail. Es prüft selbst nichts: Was es meldet, kommt von Cron Jobs, Image Update Monitor, Update Gaps, Security Monitor und den anderen Add-ons mit Status-Vertrag.
Weiterführend
Ebenfalls von Azentrius
- Status Board – Der Zustand der Azentrius-Add-ons auf jedem Host des Host-Umschalters von Cockpit, eine Zeile je Host, eine Kachel je Add-on.
- Security Monitor – Je Port, von wo er erreichbar ist und welche Regel entscheidet, dazu SSH, Anmeldungen, Container-Härtung, CrowdSec und fail2ban.
- Update Gaps – Wo einem Server Updates fehlen, obwohl Software-Updates keine zeigt, und zu jedem Befund, warum und was du tun kannst.