Bereiche
Bereich Docker
Allgemein
Parameter
Anwendungen
- Mattermost
- Unifi-Video
Dies ist eine alte Version des Dokuments!
Healthchecks ist eine Anwendung zum Monitoren von periodisch ausgeführten Tasks. Auf den zu überwachenden Instanzen laufen periodisch ausgeführte Task (z.B. reine „Ping“-Jobs, BackUp-Jobs), die den Call eines speziellen Webhooks der Healthchecks-Instanz beinhaltet. Sofern diese Call nicht im erwarteten Zeitrahmen erfolgt oder einen Fehlercode übermittelt, wird eine Meldung ausgelöst, die über diverse Kanäle erfolgen kann.
Healthchecks kann selbst gehostet oder als vom Entwickler betriebener Cloud-Service genutzt werden.
Das Selbst-Hosting kann leicht mit Docker erfolgen. Neben der von den Entwickler bereitgestellten Docker-Konfiguration gibt es auch ein sehr gut gepflegtes Image von Linuxserver, das ich bevorzuge.
Image | |
---|---|
Docker Hub | linuxserver/healthchecks |
GitHub | linuxserver/docker-healthchecks |
Architektur | x86-64, armhf, arm64 |
Software | |
Projekt | Healthchecks |
GitHub | healthchecks/healthchecks |
Der Container wird wie folgt mit docker run
eingerichtet und gestartet:
docker run -d \ --name=healthchecks \ -e PUID=1000 \ -e PGID=1000 \ -e SITE_ROOT=<SITE_ROOT> \ -e SITE_NAME=<SITE_NAME> \ -e DEFAULT_FROM_EMAIL=<DEFAULT_FROM_EMAIL> \ -e EMAIL_HOST=<EMAIL_HOST> \ -e EMAIL_PORT=<EMAIL_PORT> \ -e EMAIL_HOST_USER=<EMAIL_HOST_USER> \ -e EMAIL_HOST_PASSWORD=<EMAIL_HOST_PASSWORD> \ -e EMAIL_USE_TLS=<True or False> \ -e ALLOWED_HOSTS=<ALLOWED_HOSTS> \ -e SUPERUSER_EMAIL=<SUPERUSER_EMAIL> \ -e SUPERUSER_PASSWORD=<SUPERUSER_PASSWORD> \ -e REGENERATE_SETTINGS=True/False \ -p 8000:8000 \ -v /path/to/appdata/config:/config \ --restart unless-stopped \ ghcr.io/linuxserver/healthchecks
Dies sind die wichtigsten Parameter. Sofern sie mit einem „*“ markiert sind, sollte eine Anpassung erfolgen:
Parameter | Funktion |
---|---|
-e PUID= * | Vorgabe des Users, mit dem die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden. |
-e PGID= * | Vorgabe des Gruppe, mit der die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden. |
-p | Port |
-v * | Volumes, siehe Unterabschnitt Volumes |
Bei den weiteren -e
-Parametern handelt es sich um die Übergabe von Werten für den automatisierten Aufbau der Konfigurationsdatei local_settings.py
(innerhalb des Containers /app/healthchecks/hc/local_settings.py
).
Die Bedeutung der wichtigsten Einträge ist hier dokumentiert.
REGENERATE_SETTINGS=True
gesetzt wird, erfolgt ein einmaliger Aufbau der Datei und Änderungen die später an der Datei vorgenommen werden, bleiben erhalten.True
gesetzt, wird die Konfigurationsdatei bei jedem Start mit den vorgegebenen Werten neu aufgebaut.
Persönlich bevorzuge ich die Vorgehensweise, den Container zunächst mit minimalen Vorgaben aufzubauen, zu stoppen und die persistierte local_settings.py
dann manuell anzupassen.
DEBUG
, REGISTRATION_OPEN
und SECRET_KEY
.In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben:
<Pfad auf dem Host>:<Pfad im Container>[:<Optionen>]
Die Volumes haben die folgenden Funktionen (maßgeblich ist der Pfad im Container):
Pfad im Container | Funktion |
---|---|
/config | In diesem Verzeichnis finden sich die Konfigurationsdatei local_settings.py , die SQLite-Datenbank sowie ein Ordner mit Icons. |
Der Container wird wie folgt in der docker-compose.yml
konfiguriert:
version: "2.1" services: healthchecks: image: ghcr.io/linuxserver/healthchecks container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT=<SITE_ROOT> - SITE_NAME=<SITE_NAME> - DEFAULT_FROM_EMAIL=<DEFAULT_FROM_EMAIL> - EMAIL_HOST=<EMAIL_HOST> - EMAIL_PORT=<EMAIL_PORT> - EMAIL_HOST_USER=<EMAIL_HOST_USER> - EMAIL_HOST_PASSWORD=<EMAIL_HOST_PASSWORD> - EMAIL_USE_TLS=<True or False> - ALLOWED_HOSTS=<ALLOWED_HOSTS> - SUPERUSER_EMAIL=<SUPERUSER_EMAIL> - SUPERUSER_PASSWORD=<SUPERUSER_PASSWORD> - REGENERATE_SETTINGS=True/False volumes: - /path/to/appdata/config:/config ports: - 8000:8000 restart: unless-stopped
DEBUG
, REGISTRATION_OPEN
und SECRET_KEY
.
Der Container kann mit den folgenden Eintragungen in der docker-compose.yml
in Træfik integriert werden:
... version: "2.1" services: healthchecks: image: ghcr.io/linuxserver/healthchecks container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT=<SITE_ROOT> - SITE_NAME=<SITE_NAME> - DEFAULT_FROM_EMAIL=<DEFAULT_FROM_EMAIL> - EMAIL_HOST=<EMAIL_HOST> - EMAIL_PORT=<EMAIL_PORT> - EMAIL_HOST_USER=<EMAIL_HOST_USER> - EMAIL_HOST_PASSWORD=<EMAIL_HOST_PASSWORD> - EMAIL_USE_TLS=<True or False> - ALLOWED_HOSTS=<ALLOWED_HOSTS> - SUPERUSER_EMAIL=<SUPERUSER_EMAIL> - SUPERUSER_PASSWORD=<SUPERUSER_PASSWORD> - REGENERATE_SETTINGS=True/False volumes: - /path/to/appdata/config:/config restart: unless-stopped labels: - traefik.http.routers.healthchecks.rule=Host(`healthchecks.example.com`) - "traefik.http.routers.healthchecks.tls.certResolver=default" - "traefik.http.routers.healthchecks.tls=true"
Damit die Anwendung und die Webhooks nicht über den Port 8000, sondern die üblichen Ports für http und https erreichbar ist, erfolgt kein Export des Ports 8000 aus dem Container, sondern in der Træfik-Konfiguration (z.B. /etc/traefik/traefik.yml
oder static.yml
) wird ein entsprechender Entrypount definiert:
web-healthchecks: address: ":8000"
DEBUG
, REGISTRATION_OPEN
und SECRET_KEY
.Siehe Beschreibung der Anwendung.