Relution-Monitoring mit Grafana (Optional)
Einleitung
Relution bietet eine Vielzahl von Metriken, die mittels Grafana visualisiert werden können. Im Folgenden haben wir eine Basiskonfiguration für ein Docker-Setup sowie zwei Dashboards bereitgestellt. Diese Konfigurationen können nach eigenen Bedürfnissen angepasst werden.
Prometheus, Grafana und die einzelnen Dashboards werden nicht vom Relution-Support betreut.
Konfiguration lokaler Service
Diese Konfiguration implementiert Prometheus und Grafana in ein on Premises betriebes Relution Setup in einer Docker Umgebung. Soll ein Server überwacht werden, auf den beispielsweise kein direkter Zugriff besteht, finden Sie die Konfiguration weiter unten.
Notwendige Dateien und Verzeichnisse
Wie erwähnt, sind die Konfigurationen verfügbar und können hier → heruntergeladen und verwendet werden.
Dateien
- docker-compose.yml
- Beinhaltet die Konfigurationen der Docker Container
PrometheusundGrafana.
- Beinhaltet die Konfigurationen der Docker Container
- prometheus.yml
- Beinhaltet die Konfiguration von
Prometheus.
- Beinhaltet die Konfiguration von
- .env
- Hier sind die Variablen
GF_SECURITY_ADMIN_USERundGF_SECURITY_ADMIN_PASSWORDenthalten. Für den Produktivbetrieb ist es empfehlenswert, das Passwort zu ändern.
- Hier sind die Variablen
Subfolder
Dashboards Beispieldashboards: Die Konfigurationsdateien für zwei Beispieldashboards sind enthalten. Diese Dashboards werden automatisch in den Grafana Docker Container importiert.
Provisioning Basiskonfigurationen: Die Konfigurationsdateien für die Datenquelle Prometheus und die beiden Beispieldashboards sind enthalten. Diese Konfigurationen können nach Bedarf angepasst werden.
Einbindung der docker-compose.yml
Die hier beschriebene docker-compose.yml kann auf zwei Arten verwendet werden:
Standalone Die Datei kann als eigenständige Datei benutzt werden.
Inhaltlich Der Inhalt der kann in eine bestehende docker-compose.yml eingebunden werden.
In unserem Beispiel wird der Inhalt der Datei in die bestehende docker-compose.yml eingebunden.
In diesem Fall ist es wichtig, dass die Dateien und Verzeichnisse der Volumes an der entsprechenden Stelle liegen und die korrekten Berechtigungen haben.
In unserer verwendeten docker-compose.yml sind die Container mariadb, relution und nginx vorhanden, deshlab sind die Zeilen zwei bis vier sind lediglich zur Orientierung eingefügt worden.
services: # bereits vorhanden
# mariadb: bereits vorhanden
# relution: bereits vorhanden
# nginx: bereits vorhanden
prometheus:
image: prom/prometheus:${DOCKER_PROMETHEUS:-latest}
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
networks:
relution-network:
ports:
- "${PORT_PROMETHEUS:-9090}:9090"
expose:
- "9090"
logging:
driver: "json-file"
options:
max-size: "${DOCKER_PROMETHEUS_LOGSIZE:-8m}"
max-file: "4"
compress: "true"
grafana:
image: grafana/grafana:${DOCKER_GRAFANA:-latest}
volumes:
- ./provisioning:/etc/grafana/provisioning
- ./dashboards:/var/lib/grafana/dashboards
depends_on:
- prometheus
environment:
# set the placeholder in dashboard, to the actual name of datasource
DS_PROMETHEUS: "Prometheus"
# set grafana default admin user
GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}"
# set grafana default admin password
GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}"
networks:
relution-network:
ports:
- "${PORT_GRAFANA:-3000}:3000"
expose:
- "3000"
logging:
driver: "json-file"
options:
max-size: "${DOCKER_GRAFANA_LOGSIZE:-8m}"
max-file: "4"
compress: "true"
In der docker-compose.yml sind die Ports für Prometheus und Grafana auf 9090 bzw. 3000 festgelegt.
Dieser Abschnitt kann für das Beispiel in die vorhandene docker-compose.yml eingefügt werden.
Anpassung der .env Datei
Für die Sicherheit ist es empfehlenswert, den Parameter für das Kennwort anzupassen.
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=password
Anpassungen der prometheus.yml Datei
global:
# Default scrape interval
scrape_interval: 15s
scrape_configs:
# Job to scrape Prometheus metrics
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9090"]
- job_name: "relution"
# Job to scrape application metrics
metrics_path: "/actuator/prometheus"
scrape_interval: 5s
static_configs:
# Call the docker host inside container
- targets: ["relution:8099"]
In unserem konkreten Setup muss in der letzten Zeile der Name des Containers, in diesem Fall relution:8099, stehen.
Mit dem Befehl docker ps kann der Name und der Port des genutzen Container geprüft und anschließend bei Bedarf angepasst werden.
Wenn die Container mit docker compose down bzw. docker compose up -d heruntergeladen und gestartet werden, ist die Grafana UI unter der IP des Servers und Port 3000 erreichbar.
Es steht nun ein Relution Dashboard zur Verfügung.
Dashboards
Relution Server Dashboard:

Konfiguration für Remote-Server
Grafana wird in diesem Szenario ebenfalls in einem Docker-Container betrieben. Um Metriken korrekt auslesen zu können, sind spezifische Anpassungen notwendig. Der wesentliche Unterschied zur lokalen Konfiguration besteht darin, dass dieses Setup über https mit der Relution-Instanz kommuniziert.
Vorbereitung in Relution
Bevor die Container gestartet werden, muss ein entsprechender Benutzer in Relution existieren:
- Organisation: Der User muss zwingend in der Global Organisation angelegt werden.
- Berechtigung: Weisen Sie dem User die Berechtigung Health Check (bzw. Systemzustand) zu.
- Authentifizierung: Der Zugriff muss über Basic Authentication erfolgen.
- Benutzerkonten mit OIDC (Single Sign-On) funktionieren für diesen Zweck nicht.
- Multi-Faktor-Authentifizierung (MFA) muss für diesen Account deaktiviert sein.
Download und Entpacken
Laden Sie die vorbereiteten Konfigurationsdateien herunter:
Grafana Setup herunterladen →
Entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl auf dem Zielserver.
Anpassung der Konfigurationsdateien
Datei: compose.yml
Passen Sie die Umgebungsvariablen für den administrativen Zugriff auf die Grafana-Oberfläche an:
GF_SECURITY_ADMIN_USER: Ihr gewünschter Administrator-Benutzername.GF_SECURITY_ADMIN_PASSWORD: Ein sicheres Passwort für den Grafana-Login.
Datei: prometheus.yml
In dieser Datei wird die Verbindung zur Relution-Schnittstelle definiert. Ersetzen Sie die Platzhalter durch Ihre spezifischen Daten:
| Parameter | Beschreibung |
|---|---|
$SERVER_URL | Die externe URL Ihres Relution-Servers (wichtig: ohne das Präfix https://). |
username | Der Benutzername des in Schritt 1 erstellten Relution-Users. |
password | Das zugehörige Passwort des Users. |
Deployment
Sobald die Konfiguration abgeschlossen ist, können die Container gestartet werden. Führen Sie dazu folgenden Befehl im Verzeichnis aus:
docker compose up -d
Hinweise zum Zugriff:
- Grafana ist standardmäßig über den Port 3000 erreichbar.
- Der Zugriff kann je nach Server-Härtung direkt über die IP/Domain oder gesichert über einen SSH-Tunnel erfolgen.
Um den Zugriff auf Grafana sicher über einen SSH-Tunnel zu realisieren, können Sie die Port-Weiterleitung nutzen. Dies ist besonders sinnvoll, wenn Port 3000 in der Firewall des Servers nach außen hin geschlossen ist.
SSH-Tunnel aufbauen
Führen Sie den folgenden Befehl in Ihrem lokalen Terminal (Windows PowerShell, macOS oder Linux) aus:
ssh -L 3000:localhost:3000 benutzername@ihr-server-ip
Erläuterung der Parameter:
-L 3000:localhost:3000: Dies leitet den Port 3000 Ihres lokalen Rechners an den Port 3000 des Remote-Servers weiter.benutzername: Ihr SSH-User auf dem Server.ihr-server-ip: Die IP-Adresse oder der Hostname Ihres Remote-Servers.
Zugriff auf die Oberfläche
- Lassen Sie das Terminalfenster mit der aktiven SSH-Verbindung geöffnet.
- Öffnen Sie Ihren Webbrowser.
- Geben Sie in die Adresszeile ein:
http://localhost:3000 - Melden Sie sich mit den Zugangsdaten an, die Sie in der
compose.ymlunterGF_SECURITY_ADMIN_USERundGF_SECURITY_ADMIN_PASSWORDdefiniert haben.