Uptime-Monitor¶
Der Uptime-Monitor überwacht die Erreichbarkeit von Websites von außen (vom Controller aus) und alarmiert bei Ausfall und Wiederherstellung. Er wird als Extension über den Marktplatz installiert.
Zwei-Stufen-Freigabe¶
- Paket-Permission — im Paket legt der Admin mit Uptime-Monitor erlauben (
perm_uptime_monitor) fest, ob ein Kunde die Funktion nutzen darf, plus ein Limit Monitore (max_uptime_monitors). - Pro-Website-Aktivierung — der Kunde muss den Monitor je Website selbst anlegen und aktivieren. Nur erlaubte und aktivierte Monitore werden geprüft.
Monitor anlegen¶
- Ziel: Kunden wählen eine ihrer eigenen Domains, Subdomains oder Aliase aus einer Liste aus — externe Hosts sind nicht möglich (Missbrauchs-/SSRF-Schutz). Der Server prüft die Zugehörigkeit bei jeder Speicherung erneut. Admins dürfen ein beliebiges Ziel frei eingeben (volle URL für HTTP/HTTPS, Host für TCP).
- Typ: HTTP, HTTPS oder TCP (Port).
- Schlüsselwort (optional): muss im Antwort-Body vorkommen, sonst gilt die Seite als DOWN.
- Prüfintervall: 1 bis 60 Minuten.
Statistik & Dashboard¶
Statt einer Liste einzelner Checks zeigt der Monitor einen sauberen Graphen:
- Status-Streifen — ein Segment je Check (grün = erreichbar, rot = Ausfall) für den 24-Stunden-Verlauf auf einen Blick.
- Antwortzeit-Diagramm — Response-Zeit über die Zeit, plus Kennzahlen: Uptime %, Anzahl Checks, Ø und Max. Antwortzeit.
Ist die Funktion im Paket freigegeben, erscheint die Uptime-Statistik zusätzlich direkt auf dem Kunden-Dashboard — mit Umschalter, wenn mehrere Monitore laufen.
Flapping-Schutz (Schwellen)¶
Damit kurze Aussetzer keinen Alarm-Sturm auslösen:
- Fehler bis DOWN — erst nach N aufeinanderfolgenden Fehl-Checks gilt der Monitor als ausgefallen (Standard 3).
- Erfolge bis UP — erst nach N erfolgreichen Checks gilt er wieder als erreichbar (Standard 2).
Ein Alarm wird nur beim bestätigten Statuswechsel verschickt, nie wiederholt während eines laufenden Ausfalls. Die gerade aktive Prüf-Session bleibt unberührt.
Benachrichtigung¶
- E-Mail — an Admin und/oder Website-Besitzer (in dessen Sprache).
- Webhook — POST an eine frei wählbare URL im Slack/Discord-kompatiblen JSON-Format.
Grenzen (ehrlich)¶
Läuft der Controller auf demselben Server wie die Website (Single-Server), erkennt der Monitor App-Level-Ausfälle (nginx/PHP/HTTP-Fehler, abgelaufenes Zertifikat, langsame Antwort). Ein Totalausfall des Servers lässt sich nur von einem anderen Server aus erkennen — das ist eine spätere Ausbaustufe.