Zurück zur Projektübersicht Webentwicklung / Monitoring

Statuspage.

Öffentliche Statusseite, die zeigt, ob meine Dienste laufen und erreichbar sind. Ein Cron-Job prüft sie alle 5 Minuten und speichert die Ergebnisse.

PHP 8 MariaDB Cron cURL TLS Apache2
Projektart Eigene Webanwendung
Projektstatus Live im Einsatz
Meine Rolle Konzeption & Entwicklung
Schwerpunkt Monitoring & Betrieb
Projektbeschreibung

Verfügbarkeit auf einen Blick.

Die Statuspage zeigt den Zustand aller öffentlichen Dienste von michaelhamann.dev und michaelhamann.org. Webseiten werden per HTTPS geprüft, Mailserver über ihre Ports.

Aus den gespeicherten Prüfungen entstehen die Verfügbarkeit der letzten 30 Tage, Antwortzeiten und eine Liste vergangener Ausfälle.

Funktionen

Was die Seite zeigt.

ÜBERSICHT

Gesamtstatus und Dienste

Ein Banner fasst den Zustand zusammen. Jeder Dienst zeigt, ob er betriebsbereit, eingeschränkt oder nicht erreichbar ist.

Statusbanner Gruppierung
VERLAUF

30-Tage-Verfügbarkeit

Je Dienst ein Tagesbalken und die Verfügbarkeit in Prozent. Daten werden 90 Tage aufbewahrt.

Uptime Historie
MESSWERTE

Antwortzeit und Zertifikat

Antwortzeit, Durchschnitt der letzten 24 Stunden und die Restlaufzeit des TLS-Zertifikats. Eine Warnung erscheint bei langsamer Antwort oder bald ablaufendem Zertifikat.

Latenz TLS
AUSFÄLLE

Ausfallliste

Aufeinanderfolgende Fehlschläge werden zu einem Ausfall mit Zeitpunkt und Dauer zusammengefasst. Ein einzelner Fehlschlag wird einmal wiederholt, bevor er zählt.

Incidents Retry
SCHNITTSTELLE

JSON-Ausgabe

Dieselben Daten gibt es maschinenlesbar unter /api.json, zum Beispiel für andere Werkzeuge.

JSON API
Architektur

Technische Umsetzung

PRÜFUNG

Cron und PHP-CLI

Ein Skript läuft alle 5 Minuten per Cron. Es prüft Webseiten mit cURL und TCP-Ports mit Streams und liest das Zertifikat aus.

Cron cURL OpenSSL
DATEN

MariaDB

Die Ergebnisse liegen in einer eigenen Datenbank. Der Datenbankbenutzer darf nur lesen, einfügen, ändern und löschen.

MariaDB Least Privilege
SICHERHEIT

Reine Anzeige

Die Seite hat keine Eingaben und kein JavaScript. Eine strikte Content-Security-Policy ist gesetzt, die Prüfung läuft nur über die Kommandozeile.

CSP CLI-only