INFOnline Measurement: Serviceplattform self-hosting¶
Voraussetzungen und Systemanforderungen¶
Für den Betrieb der Serviceplattform in Ihrer Infrastruktur müssen folgende Voraussetzungen erfüllt sein:
- Linux (Unix) basierte Infrastruktur
- entsprechende Berechtigungen auf den Systemen
- entsprechende Umgebung um Container (z.B. Docker) Images auszuführen
- Proxy für das SSL-Offloading1
- CORS Konfiguration via SSL-Offloader2 oder via Serviceplattform3
1 Ein SSL Offloader ist eine Software, welche sich um die SSL/TLS Verbindungen kümmert. Diese braucht ein passend zur Domain ausgestelltes Zertifikat. Die Serviceplattform benötigt einen SSL-Offloader da diese keine SSL/TLS Verbindungen verwalten kann. Bekannte Software in diesem Bereich sind z.B. nginx oder Apache HTTP Server.
2 Um die fehlerfreie Funktion der Zensusmessung zu gewährleisten, muss CORS korrekt konfiguriert werden. Dies kann im verwendeten SSL-Offloader entsprechend vorgenommen werden.
3 CORS kann in der Serviceplattform konfiguriert werden, siehe Konfiguration Container.
Wir empfehlen Ihnen bei einem PI Aufkommen von bis zu 2.000 PI pro Minute folgende minimalen Systemanforderungen:
- CPU: 4core
- RAM: 16GB
- HDD: 80GB
Gibt es auf Ihrem Digital-Angebot Peakzeiten mit mehr als 2.000 PI pro Minute, dimensionieren Sie das System bitte entsprechend größer.
Bereitstellung der Serviceplattform¶
Um die Serviceplattform in Ihrer Infrastruktur zu betreiben, stellen wir Ihnen nach der Beauftragung folgendes zur Verfügung:
- Container-Image für die Serviceplattform
- AccessToken für den Betrieb der Serviceplattform
Das Container-Image stellen wir Ihnen nach der Anmeldung via quay.io Repo zur Verfügung.
Die Zugangsdaten für das Repo erhalten Sie mit Ihrer Auftragsbestätigung - den AccessToken
stellen wir Ihnen nach der Einrichtung Ihrer self-hosted Serviceplattform in unserem System mit einer weiteren Einrichtungsmail zur Verfügung.
Einrichtung der Serviceplattform im INFOnline System¶
Um eine manipulationsfreie Messung via INFOnline Measurement sicherzustellen, werden die Digital-Angebote und die dazu gehörigen Serviceplattformen zentral bei der INFOnline verwaltet. Die Serviceplattform erhält die benötigten Informationen über entsprechende Konfigurationen aus dem zentralen INFOnline System. Für die Kommunikation zwischen dem INFOnline System und der self-hosted Serviceplattform ist ein AccessToken
notwendig. Diesen erhalten Sie von unserem Customer Service Team auf Anfrage. Bitte übermitteln Sie uns im Gegenzug den entsprechenden Hosteintrag, unter dem die self-hosted Serviceplattform erreichbar sein wird.
Betrieb der Serviceplattform¶
- Installation
- Anlegen einer environment Datei mit den Parametern zum Starten des Containers.
relay_key=<relay-client-namen>
token=<AccessToken>
1 - Login im Repo:
docker login --username quay.io
2 - Beziehen des Containers:
docker pull quay.io/infonline/relay-client:[VERSION]
3
- Start
- Startet einen Container, der auf Port 8101 lauscht:
docker run --name relay-client --env-file [PFAD_ZUR_ENVIRONMENT_DATEI] --publish 127.0.0.1:8101:53119/tcp -d quay.io/infonline/relay-client:[VERSION]
1 Erhalten Sie mit der Einrichtung der Serviceplattform im INFOnline System Bereitstellung der Serviceplattform.
2 Den username
erhalten Sie mit der Einrichtungsbestätigung.
3 Die aktuelle Version
erhalten Sie mit Ihrer Einrichtungsmail. Bei Änderungen erhalten Sie eine gesonderte Mail.
Konfiguration Container¶
Die folgenden Parameter können genutzt werden um den Container zu konfigurieren:
Abkürzung | Typ | Standard | Länge | Muster | Obligatorisch | Beschreibung |
---|---|---|---|---|---|---|
TOKEN | String | - | 20 | ^[a-zA-Z0-9_]*$ | ja | Token für die Authentifizierung bei IO |
RELAY_KEY | String | - | - | ^[a-zA-Z0-9_]*$ | ja | Der Hostname der Serviceplattform, den Sie bei der Einrichtung an die INFOnline übermittelt haben |
cors | Bool | False | - | - | nein | Gibt an, ob der CORS Header bei https vom Relay Client gesetzt werden soll (erst ab Version 0.9.1) |
Empfehlungen für den Betrieb¶
Um einen reibungslosen Betrieb sicherzustellen, empfehlen wir Ihnen Ihre Infrastruktur, bzw. den Betrieb der Serviceplattform dynamisch zu gestalten.
Spooling¶
Sollte das INFOnline System nicht erreichbar sein, speichert die Serviceplattform im Container unter /var/spool/rsyslog temporär die Daten zwischen, bis das INFOnline System wieder erreichbar ist. Wenn der Ordner nicht auf dem Host-System gespeichert wird, können diese Daten bei einem Container-Neustart verloren gehen. Deswegen empfehlen wir diesen Ordner mit folgenden Befehlen auf dem Host-System zwischenzuspeichern:
docker volume create io-service
docker run --name relay-client --env-file [PFAD_ZUR_ENVIRONMENT_DATEI] -v io-service:/var/spool/rsyslog --publish 127.0.0.1:8101:53119/tcp -d quay.io/infonline/relay-client:[VERSION]
Monitoring¶
Die Serviceplattform bietet eine API zum Monitoring der Funktion des Containers.
1 Der Container bietet unter der Adresse localhost:8101/hc.io
die Möglichkeit an, einen Healthcheck abzurufen, der die Funktionsweise der PHP Seite und damit die Kette der Software prüft. Bei einem erfolgreichen Check, wird eine 200
Meldung zurückgegeben.
2 Innerhalb des Containers werden auf Port 53120 mehrere Prometheus Exporter Endpunkte zur Verfügung gestellt: localhost:53120/nginx_status
, localhost:53120/rsyslog_status
und localhost:53120/php_status
. Diese Adressen sind erst mal nur innerhalb des Container Daemon Netzwerks erreichbar. Möchte man diese vom Host aus erreichen, muss zusätzlich eine Weiterleitung zu Port 53120 eingerichtet werden.
docker run --name relay-client --env-file [PFAD_ZUR_ENVIRONMENT_DATEI] --publish 127.0.0.1:8101:53119/tcp --publish 127.0.0.1:53120:53120/tcp -d quay.io/infonline/relay-client:[VERSION]
Auswirkungen bei Störungen¶
Die Serviceplattform ist das zentrale Module des INFOnline Measurements. Kommt es zu einer Störung im Betrieb der Serviceplattform, wirkt sich diese direkt auf die Messresultate aus. Ein Ausfall und/oder gestörte Erreichbarkeit der Serviceplattform führt unmittelbar zu einer Mindermessung, bzw. zu einem Messausfall. Die Messaufrufe, die ggf. während der Störung eingelaufen wären, können nicht wiederhergestellt werden. Wir empfehlen Ihnen zwingend die Möglichkeiten des Monitoring zu nutzen.
Updates der Serviceplattform¶
Über Updates der Serviceplattform werden Sie von uns frühzeitig informiert und wir stellen Ihnen neue Versionen der Container-Images, wie unter Bereitstellung der Serviceplattform beschrieben, bereit.