Einführung
Deployment Varianten
Die Komponenten des IIoT Building Block Stacks sind sehr modular und an eine Microservice-Architektur angelehnt. Daher ist das Deployment so flexibel wie Möglich und fügt sich sehr gut in bestehende Infrastrukturen.
Ein Server Installation
Der gesamte Stack wird auf einem Maschinen Rechner/Server installiert:
- Collector
- Collector App
- Datenbank
Der Collector sammelt die Daten von verschiedenen Maschinen und Anlagen über eine Netzwerkschnittstelle und speichert sie auf der zentralen Datenbank die neben dem Collector auf dem gleichen Rechner installiert ist. Über die Collector App, ebenfalls auf dem gleichen Server muss noch ein Collector konfiguriert werden.
Ist das Netzwerk gestört können auch keine Daten übertragen werden. Daten können unter Umständen verloren gehen.
Verteiltes System
Es können mehrere Collector Instanzen im Netzwerk installiert werden. Auf PC basierten Steuerungen kann der Collector sogar direkt mit laufen. Die Collector App sowie die Datenbank befinden sich auf einem Zentralen Maschinen Rechner/Server.
In der Collector App können alle Collectoren im Netzwerk über eine Benutzeroberfläche konfiguriert werden. Die Collectoren können im Falle einer Netzwerksstörung die Daten puffern und nach Behebung der Störung suggestive übers Netzwerk an die Datenbank senden.
Getting Started
Für einen schnellen Einstig empfiehlt es sich zunächst den gesamten Stack auf einer Maschine zu installieren.
Schnellstart mit docker-compose
Der einfachste und zuverlässigste Weg den Stack zu deployen ist über Docker, da die Applikationen in definierten Container-Umgebungen laufen und somit keine Abhängigkeiten zum Host-System haben. Zudem können die Container nach dem Beenden restlos vom System wieder entfernt werden.
Installation von Docker (Linux, Mac und Windows): Get-Docker
Für die Windows- und Mac-Docker-Installation wird eine Lizenz benötigt. Als Alternative kann auch Rancher-Desktop als Container-Runtime installiert werden. Falls Rancher-Desktop mit containerd verwendet wird muss im folgenden die docker cli durch nerdctl ersetzt werden.
Um mit einem Befehl direkt mehrere Container starten zu können wird Docker Compose verwendet. In einer docker-compose Datei können mehrere Container mit Konfiguration und Verknüpfung definiert werde. In diesem Fall sind es folgende Container:
- Collector
- Collector App
- OPC UA Browser
- InfluxDB
- Umati OPC UA Server
- Grafana
Stellen Sie daher sicher, dass Sie die Images für Collector, Collector-App und OPC UA Browser gemäß der Installationsanleitung geladen haben.
Das InfluxDB und Grafana Image wird automatisch aus dem offiziellen online Repository geladen. Dabei dient die InfluxDB als demo Datensenke und Grafana zum darstellen von vom Data Collector gespeicherten Daten.
1. Erstellen eines Ordners
mkdir iiot-bb-stack
cd iiot-bb-stack
2. Erstellen des Shard Volume Ordner
Da Container keinen persistenten Speicher besitzen, müssen sämtliche persistente Dateien und Datenbanken auf dem Host-System gespeichert werden, damit nach dem Container neustart der Zustand nicht verloren geht.
mkdir docker
Der Ordner wird in den Container-Volumes verwendet.
3. Erstellen der compose Datei
Linux
touch docker-compose.yaml
Windows
New-Item -Path . -Name "docker-compose.yaml" -ItemType "file"
Die Datei mit einem beliebigen Editor öffnen und folgenden Inhalt einfügen:
docker-compose.yaml
version: "3.4"
services:
collector:
image: ite-si/collector:vx.x.x
volumes:
- ./docker/collector:/opt/ite-si/collector/tmp
links:
- influxdb
environment:
- COLLECTOR_WORK_DIR=/opt/ite-si/collector
- COLLECTOR_CONFIG_DIR=/opt/ite-si/collector/tmp
- COLLECTOR_LOG_DIR=/opt/ite-si/collector/tmp/logs
- COLLECTOR_CONSOLE_LEVEL=warn
opcua-browser:
image: ite-si/opcua-browser:vx.x.x
volumes:
- ./docker/collector/certificates:/opt/ite-si/opcua-browser/certificates
collector-app:
image: ite-si/collector-app:vx.x.x
ports:
- "4000:4000"
environment:
- COLLECTOR_APP_HOST=0.0.0.0
- COLLECTOR_APP_PORT=4000
- COLLECTOR_APP_TOKEN_SECRET=asdfasdfjklasdcpwerasdfvuewardciadioweroqwer
- COLLECTOR_APP_ENCRYPTION_KEY=e44c966f21b9e1577802464f8924e6a37e3e9751fa01304213b2f845d8841d61
- COLLECTOR_APP_CORS_ORIGIN=http://localhost:4000
- COLLECTOR_APP_PUBLIC_GRAPHQL_URL=http://localhost:4000/api/graphql
- COLLECTOR_APP_PUBLIC_WS_URL=ws://localhost:4000/api/subscriptions
volumes:
- ./docker/collector-app:/var/lib/collector-app
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
links:
- influxdb
volumes:
- ./docker/grafana:/var/lib/grafana
opcua-server:
image: ghcr.io/umati/sample-server:main
links:
- collector
- opcua-browser
influxdb:
image: influxdb:1.8
volumes:
- ./docker/influxdb:/var/lib/influxdb
4. Starten des Stacks
docker-compose up
oder
nerdctl compose -f docker-compose.yaml up
Zum starten im Hintergrund:
docker-compose up -d
oder
nerdctl compose -f docker-compose.yaml up -d
5. Collector App aufrufen
Nach dem Start ist die App im Browser unter http://localhost:4000/collector-app erreichbar.
Standard Login:
Benutzername | Passwort |
---|---|
admin | admin |
Einen Einstieg in die Collector App finden Sie hier.
6. Stoppen/Entfernen des Stacks
docker-compose down
docker-compose rm
oder
nerdctl compose -f docker-compose.yaml down
nerdctl compose -f docker-compose.yaml rm
Schnellstart unter Windows (nativ)
1. Installer
Zunächst müssen die Komponenten:
nach der Windows Installationsanleitungen über den Installer installiert werden.
Als Demo Output kann die InfluxDB installiert werden.
Als Demo Input wird der OPC UA Sample Server von Unified Automation empfohlen.
2. Starten der Komponenten
Die Komponenten lassen sich über das Windews Startmenü starten:
Nachdem alle drei Komponenten gestartet wurden, erscheint ein Windows Tray Icon in der Taskleiste. Hier kann jeweils der Log angezeigt werden und die Applikation wieder beendet werden.
3. Collector App aufrufen
Nach dem Start ist die App im Browser unter http://localhost:4000/collector-app erreichbar.
Standard Login:
Benutzername | Passwort |
---|---|
admin | admin |
Einen Einstieg in die Collector App finden Sie hier.