Skip to Content
Neue Version 12 verfügbar 🎉

Zustandsprüfung

Die Zustandsprüfung des Babel Licensing Service bietet einen umfassenden Mechanismus, um den Zustand und den Betriebsstatus des Dienstes und seiner Komponenten zu überwachen. Diese Funktion ist wesentlich, um die Zuverlässigkeit des Systems sicherzustellen, die Fehlerbehebung zu erleichtern und die Integration mit Tools zur Infrastrukturüberwachung zu ermöglichen.

Konfiguration

Das Verhalten der Zustandsprüfung wird im Abschnitt Application der Datei appsettings.json konfiguriert:

"Application": { "HealthCheckEndPoint": "/health", "HealthCheckResponseType": "JSON" }

HealthCheckEndPoint

Diese Einstellung legt den URL-Pfad fest, unter dem der Endpunkt der Zustandsprüfung erreichbar ist. Der Standardwert ist /health.

Beispiel: Läuft Ihr Dienst unter https://licensing.example.com und ist HealthCheckEndPoint auf /health gesetzt, lautet die vollständige URL der Zustandsprüfung https://licensing.example.com/health.

HealthCheckResponseType

Diese Einstellung bestimmt das Format der Antwort der Zustandsprüfung. Zwei Formate werden unterstützt:

  • JSON: Gibt eine strukturierte JSON-Antwort zurück (Standard)
  • TEXT: Gibt eine für Menschen lesbare Antwort als reinen Text zurück

JSON-Antwortformat

Wenn HealthCheckResponseType auf "JSON" gesetzt ist, liefert der Endpunkt der Zustandsprüfung eine strukturierte JSON-Antwort wie diese:

{ "status": "Healthy", "duration": "00:00:00.2514204", "timestamp": "2025-03-20T07:26:07.1085160Z", "checks": [ { "name": "babel_service_health", "status": "Healthy", "duration": "00:00:00.0010617", "data": { "serverTimeUtc": "2025-03-20T07:26:06.8604190Z", "activeTokens": 0 } }, { "name": "database_health", "status": "Healthy", "duration": "00:00:00.1003761" }, { "name": "webhook_processor_health", "status": "Healthy", "duration": "00:00:00.0605641", "data": { "hasFailedEvents": false } }, { "name": "geo_location_health", "status": "Healthy", "duration": "00:00:00.2456515" } ] }

Dieses Format eignet sich besonders für:

  • Automatisierte Überwachungssysteme
  • Die Integration mit Orchestrierungsplattformen wie Kubernetes
  • Die programmgesteuerte Auswertung des Zustands
  • Überwachungstools von Drittanbietern, die JSON-Daten verarbeiten können

TEXT-Antwortformat

Wenn HealthCheckResponseType auf "TEXT" gesetzt ist, liefert der Endpunkt der Zustandsprüfung ein für Menschen lesbares Format:

Babel Licensing Service v. 11.0.0.0 Status: Healthy Duration: 00:00:00.2586788 Timestamp: 2025-03-20T07:23:14.0761680Z Version: 11.0.0.0 Checks: - Babel Licensing Service: Healthy (00:00:00.0024254) * Server Time Utc: 2025-03-20T07:23:13.8180050Z * Active Tokens: 0 - Database: Healthy (00:00:00.0901153) - Webhook Processor: Healthy (00:00:00.0687397) * Has Failed Events: False - Geo Location: Healthy (00:00:00.2550240)

Dieses Format eignet sich besser für:

  • Die manuelle Prüfung durch Systemadministratoren
  • Befehlszeilentools und einfache Statusabfragen
  • Fälle, in denen die Antwort ohne weitere Verarbeitung gut lesbar sein muss
  • Einträge in Protokolldateien und die Konsolenausgabe

Komponenten der Zustandsprüfung

Die Zustandsprüfung des Babel Licensing Service überwacht mehrere kritische Komponenten:

  1. Zustand des Dienstes: Liefert Informationen zum Hauptdienst, darunter die Serverzeit, die Edition der Lizenz, die aktiven Token und die maximal zulässige Anzahl von Token.
  2. Zustand der Datenbank: Prüft die Verbindung zur Datenbank und ihren Betriebsstatus.
  3. Webhook-Verarbeitung: Prüft, ob die Verarbeitung der Webhooks ordnungsgemäß arbeitet.
  4. Geolokalisierungsdienst: Bestätigt, dass der konfigurierte Geolokalisierungsdienst (etwa IpApiIs) in Betrieb ist.

Statuswerte

Zustandsprüfungen melden einen der folgenden Status:

  • Healthy: Die Komponente arbeitet normal
  • Degraded: Die Komponente ist in Betrieb, aber mit eingeschränkter Funktionalität oder Leistung
  • Unhealthy: Die Komponente arbeitet nicht ordnungsgemäß

Integration mit Überwachungssystemen

Der Endpunkt der Zustandsprüfung lässt sich in verschiedene Überwachungssysteme einbinden:

  • Load Balancer: Können anhand der Zustandsprüfung entscheiden, ob der Dienst Datenverkehr erhalten soll
  • Container-Orchestrierung: Plattformen wie Kubernetes können den Endpunkt für Readiness- und Liveness-Probes verwenden
  • Überwachungstools: Systeme wie Prometheus, Nagios oder Zabbix können den Endpunkt in regelmäßigen Abständen abfragen
  • Benutzerdefinierte Dashboards: Das JSON-Format kann von benutzerdefinierten Überwachungs-Dashboards verarbeitet werden

Bewährte Vorgehensweisen

  1. Regelmäßige Überwachung: Konfigurieren Sie Ihr Überwachungssystem so, dass es den Endpunkt der Zustandsprüfung in regelmäßigen Abständen abfragt.
  2. Alarmierung: Richten Sie Alarme für den Fall ein, dass der Dienst von Healthy zu Degraded oder Unhealthy wechselt.
  3. Wahl des Antwortformats: Wählen Sie JSON für automatisierte Systeme und TEXT für menschliche Bediener.
  4. Eigener Endpunkt: Erwägen Sie, in Produktionsumgebungen den Standardendpunkt aus Sicherheitsgründen zu ändern.
  5. Firewall-Konfiguration: Stellen Sie sicher, dass Ihre Firewall den Zugriff Ihrer Überwachungssysteme auf den Endpunkt der Zustandsprüfung zulässt.

Die Zustandsprüfung ist ein wesentliches Mittel, um die Zuverlässigkeit und Stabilität Ihrer Bereitstellung des Babel Licensing Service zu erhalten: Sie gibt in Echtzeit Aufschluss über den Betriebsstatus des Systems und seiner Komponenten.

Last updated on