Lightweight service checker for microservices for amd64 platform.
1.2K
Der Service-Checker ist ein leichtgewichtiges Programm zum periodischen Überprüfen von Diensten über das HTTP-Protokoll.
Features:
Der Dienst wird über Umgebungsvariablen konfiguriert, die beim Starten des Dienstes ausgewertet werden. Nach dem Ändern der Konfiguration ist ein Neustart des Dienstes notwendig.
CHECK_STATUS_CHANGES_INTERVALZeitspanne, nach der der Status der einzelnen Dienste auf Statusänderungen überprüft werden soll. Gibt es Änderungen seit der letzten Überprüfung, dann wird eine E-Mail mit dem aktuellen Status aller Dienste verschickt.
Standardwert: 2m
CONFIG_FILEDer komplette Pfad zur Konfigurationsdatei der zu überprüfenden Dienste (siehe: Konfigurationsdatei).
CONNECTION_STRINGDer Connection-String für die Datenbank.
LOG_LEVELDas Level der Log-Ausgaben. Mögliche Werte: PANIC, FATAL, ERROR, WARN, INFO, DEBUG.
Default-Wert: INFO
HTTP_ADDRESSDie TCP Adresse, auf der die API erreichbar sein soll.
Standardwert: :7900
HTTP_CRT_FILEDer komplette Pfad zur CRT-Datei für die SSL-Verschlüsselung.
HTTP_KEY_FILEDer komplette Pfad zur KEY-Datei für die SSL-Verschlüsselung.
MAIL_FROMDie E-Mail-Adresse, die als Von-Adresse beim Versand von E-Mails verwendet wird.
MAIL_TODie E-Mail-Adresse(n), an die Statusmeldungen versendet werden. Es können mehrere E-Mail-Adressen angegeben werden. Diese müssen dann mit Komma getrennt werden.
MAIL_HOSTDie Adresse des E-Mail-Servers.
MAIL_PORTDer Port des E-Mail-Servers.
MAIL_USERNAMEDer Benutzername für den Zugriff auf den E-Mail-Server.
MAIL_PASSWORDDas Passwort für den Zugriff auf den E-Mail-Server.
MAIL_SERVICE_CHECKER_LABELDie Bezeichnung dieser Service-Checker-Instanz. Wird in E-Mails verwendet.
Standardwert: SERVICE_CHECKER
SPEC_DB_VACUUMGibt an, zu welchen Zeiten die Datenbank bereinigt werden soll.
Standardwert: 59 23 * * * *
SPEC_STATUS_MAILGibt an, zu welchen Zeiten eine regelmässige E-Mail mit dem aktuellen Status gesendet werden soll. Wird hier nichts angegeben, dann werden keine regelmäßige Statsmeldungen gesendet. Achtung: Die Statusmeldungen bei Änderungen sind hiervon nicht betroffen!
Standardwert: 30 7 * * * *
Die einzelnen zu überprüfenden Dienste werden in einer Konfigurationsdatei im YAML-Format definiert. Beim Start
des Dienstes wird hierfür die Umgebungsvariable CONFIG_FILE ausgewertet, die den Pfad zur Konfigurationsdatei
enthalten muss.
version: 1
services:
- id: API1
label: Meine tolle API
description: Diese API stellt verschiedene Funktionen zur Verfügung.
endpoint: https://api.example.com/api/status
schedule: "0 */1 * * * *"
validation:
response:
expectations:
- field: statusCode
operator: "=="
value: 200
content:
type: "application/json"
expectations:
- field: process.name
operator: "eq"
value: api-server
- field: process.version
operator: "semver"
value: ">=1.6.x"
- id: group-example
label: Gruppe von Diensten
description: Überprüft eine Gruppe von Diensten, von denen mindestens 2 erreichbar sein müssen
endpoints:
- https://localhost:7070/api/status
- https://localhost:7071/api/status
- https://localhost:7900/api/status
requiredAvailable: 2
schedule: "*/15 * * * * *"
recipients:
- [email protected]
- [email protected]
validation:
content:
type: "application/json"
expectations:
- field: "process.name"
operator: "=="
value: "time-server"
Es können Felder der folgenden Strukturen validiert werden:
Geben Sie hierfür in dem entsprechenden Bereich die erwarteten Werte (Expectations) an.
In diesem Bereich werden die Werte angegeben, die in der Antwort des Servers überprüft werden sollen. Es können die folgenden Felder überprüft werden:
status: Repräsentation der HTTP Status als Text, z.B. 200 OKstatusCode: Der HTTP Status als Zahlenwert, z.B. 200In diesem Bereich werden die Werte angegeben, die im Inhalt der Antwort des Servers überprüft werden sollen.
Die Angabe des Feldes type ist zwingend erforderlich. Geben Sie hier den MIME-Type des Inhalts an.
Als Feld wird hier der Pfad zu dem zu überprüfenden Feld angegeben, z.B. name, process.version.
Es stehen folgende Validatoren zur Verfügung:
| Operator | Alias | Gültigkeitsbereich | Bemerkungen |
|---|---|---|---|
| eq | == | Response, Content | Überprüft die Werte auf Gleichheit. |
| in | Response: statusCode | Überprüft, ob der StatusCode innerhalb eines Wertebereiches liegt, z.B. 200-201 | |
| <, <=, >, >= | JSON-Content | Überprüft, ob die genannte Kondition wahr ist | |
| length | JSON-Content | Überprüft die Länge des Elementes | |
| max-server-time-diff | JSON-Content | Überprüft die Serverzeit mit der lokalen Zeit. | |
| semver | Content | Überprüft eine Versionsnummer nach dem Semantic Versioning Schema. Die Syntax wird hier beschrieben. |
Content type
Image
Digest
Size
17 MB
Last updated
over 7 years ago
docker pull panitz/service-checker-amd64:v0.10.0