Skip to main content
Skip table of contents

Installation unter Linux (Ubuntu)


Voraussetzungen

  • Docker (Version >= 20.10.5) und Docker-Compose (Version >= 1.28.5) müssen installiert sein.

  • Der zur Installation benutze Linux User muss der Gruppe docker angehören. Dies kann überprüft werden mit dem Kommando id -Gn userName. Ersetzen Sie hierbei userName durch den entsprechenden User Namen.

  • Der Linux User muss ebenfalls zur sudo Gruppe gehören, da root-Rechte notwendig sind.

  • Der Rechner benötigt Internetzugang für die Installation.

  • Die TCP Ports 80 und 443 des Rechners dürfen nicht belegt sein (Falls sie belegt sind müssen die Ports in der smartWARE Evaluation vor dem Start geändert werden).

Vorüberlegungen

Anfallende Datenmenge

Welche Datenmengen fallen beim Betrieb der smartWARE Evaluation Software an? Die anfallende Datenmenge wird durch 3 Hauptfaktoren bestimmt:

  • Aufzeichnungsrate (wie oft wird ein Messwertwert ermittelt)

  • Anzahl der Kanäle

  • Aufzeichnungszeitraum

Datenmenge [MByte] = Anzahl Kanäle * Anzahl der Tage * 0,725MB * Aufzeichnungsrate (in Anzahl pro Sekunde)

Beispiel Tabelle für 240 Kanäle/sec:

Performance

Da je nach Datenmenge die Anwendung mit sehr vielen Daten und Dateien arbeitet, ist es sinnvoll, nur Rechner mit SSD und schneller Netzwerkwerkanbindung zu verwenden. Außerdem sind diese Systemvoraussetzungen zu erfüllen. Ein performanter virtueller Rechner kann ebenfalls verwendet werden.

Backup Datastore

Im Datastore werden alle von Varitron-Systemen gesendete Aufzeichnungsdaten gespeichert. Eine regelmäßige Datensicherung im Datastore soll diese Daten vor Datenverlust (z.B. bei einem Plattencrash auf
dem Datastore-System) schützen. Bei aktivierter Datensicherung werden die Daten beim Zeitpunkt der Datenaufnahme in das Datastore-System zusätzlich in einem Backup-Verzeichnis abgelegt. Es besteht die Möglichkeit zwei verschiedene Datensicherungskonzepte zu verwenden:

  • Backup mit Zwischenverzeichnis

  • Backup mit Netzlaufwerk

Backup mit Zwischenverzeichnis

Das Backup-Verzeichnis wird als Zwischenverzeichnis verwendet, das auf die gleiche Linux Partition wie das Datastore-System gemappt ist. Die Dateien werden durch das Datastore-System im Backup-Verzeichnis zwischengespeichert.
Dabei verschiebt die Backupsoftware des Betreibers die Dateien aus dem Backup-Verzeichnis in ein Backup-Zielverzeichnis. Nach diesem Vorgang ist das Zwischenverzeichnis leer. Das Backup-Zielverzeichnis sollte sich auf einem anderen Datenträger als das Datastore-Systembefinden. Es kann sich hier um ein langsames Medium, Netzlaufwerk, NAS, Online Speicher, externe HD handeln. Den Zeitpunkt und die Häufigkeit des Sicherns aus dem Backup-Zwischenverzeichnis kann der Betreiber selbst bestimmen. Die Daten in dem Zwischenverzeichnis sind datentechnisch von der Applikation entkoppelt. Somit ist das Verschieben von Dateien aus diesem Verzeichnis jederzeit möglich. Kurze Abstände reduzieren die Gefahr eines Datenverlustes. Wir empfehlen, diese Variante zu verwenden.

Backup mit Netzlaufwerk

Das Backup-Verzeichnis wird auf ein Laufwerk, das sich auf einem anderen Datenträger als das Datastore-System (Netzlaufwerk) befindet, gemappt. Der Betreiber hat für die Sicherheit der Daten auf das Backup-Verzeichnis zu sorgen. Da die Zugriffe auf diese Netzlaufwerke sehr langsam sind, raten wir von dieser Lösung ab.

Backup JUMO smartWARE Evaluation

Alle Konfigurationen in der smartWARE Evaluation können mit einer Datensicherung gesichert werden. Diese enthält u.a. die Anlagen-/Geräteübersicht, definierte Auswertezeitbereiche, Dashboards, Einstellungen der
Auswertung, Chargenfilter. Eine regelmäßige Datensicherung soll diese Daten vor Datenverlust (z.B. bei einem Plattencrash auf dem Datastore-System) vermeiden. Bei aktivierter Datensicherung werden die Daten z.B. täglich zu einem definierten Zeitpunkt in einem Backup-Verzeichnis abgelegt. Mit dem Backup-Verzeichnis kann wie mit der Datensicherung des Datastores verfahren werden.

Cold oder Warm Data sind in dieser Datensicherung NICHT enthalten.

Archive

Im Datastore werden alle von Varitron-Systemen gesendete Aufzeichnungsdaten gespeichert. Um den Speicherplatz auf dem Datastore-System zu sparen können Daten, die nicht mehr für aktuelle
Auswertungen benötigt werden, archiviert werden. Bei der Archivierung werden die Daten in ein definiertes Verzeichnis kopiert und im Datastore gelöscht. Das Archivierungsverzeichnis sollte sich auf einem anderen Datenträger befinden als das Datastore-System. Werden die archivierten Daten für eine Auswertung benötigt, können diese im Datastore als Cold Data wieder zur Verfügung gestellt werden. Hier müssen sich die Daten im definierten Archivierungsverzeichnis befinden.

Wiederherstellung

Alle Konfigurationen in der smartWARE Evaluation können mit einer Datensicherung gesichert werden. Diese
enthält u.a. die Anlagen-/Geräteübersicht, definierte Auswertezeitbereiche, Dashboards, Einstellungen der
Auswertung, Chargenfilter. Weiterhin werden Dateien, die im persistenten Verzeichnissen abgelegt werden, gesichert (außer log-Dateien). Cold data oder warm data sind in dieser Datensicherung NICHT enthalten. Eine regelmäßige Datensicherung soll diese Daten vor Datenverlust (z.B. bei einem Plattencrash auf dem Datastore-
System) vermeiden. Bei aktivierter Datensicherung werden die Daten z.B. täglich zu einem definierten Zeitpunkt in einem Backup-Verzeichnis abgelegt. Mit dem Backup-Verzeichnis kann wie mit der Datensicherung des Datastores verfahren werden.


Erstinstallation

Kopieren Sie das Installationsskript smartWARE_452.3.0.0.7.run in das Linux Home Verzeichnis.

chmod +x ./smartWARE_452.3.0.0.7.run
./smartWARE_452.3.0.0.7.run

Jetzt startet das Installationsskript und Sie werden folgende Ausgaben im Terminal sehen.

Da für die Installation root (sudo) Rechte notwendig sind, werden Sie nach dem Passwort gefragt. Geben Sie das Passwort ein, damit die Installation abgeschlossen werden kann. Um mit dem Internet-Browser per HTTPS auf die Anwendung zugreifen zu können, erzeugt das Installationsskript ein sogenanntes selbst signiertes Zertifikat. Dieses Zertifikat kann später durch ein offizielles Zertifikat (falls vorhanden) ersetzt werden (siehe Basiskonfiguration).

Folgende Verzeichnisse wurden durch das Skript jetzt neu erstellt:


Das Verzeichnis ~/smartWAREData/ enthält alle persistenten Daten der Anwendung. Hier werden also alle Daten gespeichert, die auch nach einem Software-Update weiter erhalten bleiben müssen, wie zum Beispiel die von den Jupiter Geräten übertragenen Messwerte, Benutzereinstellungen, wie Dashboards oder Geräteplatzinformationen. Für den Zugriff benötigt man als User sudo Rechte.
Das Verzeichnis ~/smartWARE_452.3.0.0.7/ enthält alle Skripte, die zum Betrieb der Anwendung nötig sind. Z.B.: Start- und Stop-Skript zum Starten bzw. Stoppen der Docker Services. In diesem Verzeichnis können auch individuelle Einstellungen in einer .env Datei konfiguriert und gespeichert werden. Mehr dazu unter dem Kapitel Basiskonfiguration.


Basiskonfiguration

Nach dem Ausführen des Installationsskripts können die Services prinzipiell gestartet werden. Die Services werden dann mit folgenden Standardeinstellungen gestartet.

Jede dieser Standardeinstellungen kann überschrieben und angepasst werden. Dazu muss im Installationsverzeichnis der Software (~/smartWARE_452.2.0.0.12) eine Datei mit dem Namen .env angelegt werden. Wechseln Sie in das Verzeichnis der Installation in der Linux Konsole:

CODE
cd ~/smartWARE_452.3.0.0.7
touch .env

starten Sie den nano Editor mit folgendem Befehl:

CODE
nano .env

Und tragen Sie nun die Parameter, die Sie überschreiben möchten, in die Datei .env ein und speichern die Datei mit Ctrl-O und 'Enter'. Verlassen Sie den nano Editor mit CTRL-X. Hier ein Beispiel für den Inhalt, wenn Sie die Proxy Ports ändern müssen, da diese vielleicht schon durch eine andere Anwendung genutzt werden.

Zeitzone einstellen

Die Standardeinstellung der Zeitzone ist DC_TIMEZONE=Europe/Berlin

Wenn die Software in einer anderen Zeitzone betrieben wird, muss diese Einstellung überschrieben werden.

Hier finden Sie eine Liste möglicher Zeitzonen https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Ports einstellen

Die Standardeinstellung der Proxy Ports ist:

Das bedeutet, die Software GUI ist über folgende URLs per Browser zu erreichen:
http://ip
https://ip
Den Port braucht man in diesem Fall nicht mit angeben, da die Browser den Port 80 bzw. bei HTTPS den Port 443 automatisch ergänzen, ohne dass es angezeigt wird. Falls die Standard-Ports auf dem zu installierenden Rechner schon belegt sind, besteht die Möglichkeit, die smartWARE Evaluation auf beliebige anderen freien Ports laufen zu lassen. Dazu muss man in der .env Datei die Ports überschreiben. Hier ein Beispiel:

Dadurch muss dann aber im Browser beim Zugriff auf die GUI der Port mit angegeben werden. Das wäre in diesem Fall:
http://ip:8080
https://ip:8443

Dieser geänderte Port muss dann auch im Datastore Gateway der Jupiter Geräte korrekt eingestellt werden! In diesem Fall wäre der Port für das HTTP Protocol anzugeben. (Hinweis: Das HTTPS Protokoll im Jupiter Gerät wird erst mit Firmware Version 7.x unterstützt! Eine Installation der smartWARE Evaluation Software im Internet auf einem Cloudrechner sollte also erst mit der HTTPS Unterstützung der Firmware 7.x erwogen werden.)
ip:8080/store

Selbstsigniertes Zertifikat ersetzen

Während der Installation wird ein selbst signiertes Zertifikat erzeugt und in das Verzeichnis ~/smartWAREData/reverse_proxy/certs kopiert. Wenn Sie die Software GUI im Browser über das HTTPS Protocol öffnen, werden Sie vom Browser eine Warnung bekommen, da das Zertifikat selbst signiert ist. Hier ein Beispiel des Chrome Browsers:

Diese Warnung können Sie aber ignorieren, da das selbst signierte Zertifikat dem Browser nicht bekannt ist. Klicken Sie dazu auf den Link "weiter zu... (unsicher)". Die Warnung der Browser kann man aber auch dadurch verhindern, indem man ein offiziell signiertes Zertifikat benutzt bzw. diese der Software zur Verfügung stellt.
Im Verzeichnis ~/smartWAREData/reverse_proxy/certs liegen 2 Dateien:

  • smartware.crt

  • smartware.key

Der Austausch dieser Dateien kann nur als root User erfolgen (sudo). Diese Zertifikat und Key Dateien können durch firmeneigene offiziell signierte Dateien ersetzt werden. Dazu die smartWARE Services stoppen (siehe 5.2). Die beiden vorhandenen Dateien umbenennen (z.B. in smartware.ctr_original , smartware.key_original). Dann die offiziell signierten Dateien kopieren und gegebenenfalls umbenennen. Wichtig, die Dateien müssen die Namen smartware.crt und smartware.key haben und müssen ein PEM/X509 Format sein.
Bitte nach dem Austausch der Dateien und dem Starten der smartWARE Services (siehe 5.1) die Log Datei kontrollieren, um zu überprüfen, dass die ersetzten Dateien keine Probleme erzeugen:

CODE
$ cat ~/smartWAREData/reverse_proxy/error.log | more

Backup Datastore

Standardmäßig ist die Datensicherung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:

Parameter

mögliche Werte

Bemerkung

DC_STORE_BACKUP_FOLDER

Backup-Verzeichnis, in die die zu sichernden Dateien abgelegt werden

DC_STORE_RESTORE_FOLDER

Restore-Verzeichnis, auf dem die Dateien zur Wiederherstellung gelesen werden

DC_BACKUP_USER_ID

Benutzer-Id im Linux-System, die für die Dateien im Backup-Verzeichnis verwendet wird

DC_BACKUP_GROUP_ID

Gruppen-Id im Linux-System, die für die Dateien im Backup-Verzeichnis verwendet wird

Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.
Nach der Konfiguration ist die Datensicherung einmalig über die smartWARE Evaluation zu aktivieren.

Backup JUMO smartWARE Evaluation

Standardmäßig ist die Datensicherung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:

Parameter

mögliche Werte

Bemerkung

DC_VIEW_BACKUP_FOLDER

backup-Verzeichnis, in die die zu sichernden Dateien abgelegt werden

DC_BACKUP_USER_ID

Benutzer-Id im Linux-System, die für die Dateien im backup-Verzeichnis verwendet wird

DC_BACKUP_GROUP_ID

Gruppen-Id im Linux-System, die für die Dateien im backup-Verzeichnis verwendet wird

DC_VIEW_BACKUP_ACTIVE

true

false

mit true wird die Datensicherung aktiviert

DC_VIEW_BACKUP_EVERY_DAY_AT

cron-Eintrag zur Definition, wann die Datensicherung gestartet werden soll, z.B.
"004 * * *"

Beispiel einer .env-Datei:

CODE
DC_VIEW_BACKUP_FOLDER="~/smartWAREBackup/dataview"

// verwende den ersten definierten Benutzer im Linux-System
DC_BACKUP_USER_ID="1000"
DC_BACKUP_GROUP_ID="1000"

DC_VIEW_BACKUP_ACTIVE="true"

// starte Datensicherung jeden Tag um 04:00 UTC
DC_VIEW_BACKUP_EVERY_DAY_AT="0 04 * * *"

Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.

Archivierung

Standardmäßig ist die Archivierung nicht aktiviert, da sie zuerst konfiguriert werden muss. Hierzu ist die Konfigurationsdatei .env anzupassen:

Parameter

mögliche Werte

Bemerkung

DC_STORE_ARCHIVE_FOLDER

 

Archivierungsverzeichnis

DC_STORE_ARCHIVE_EVERY_DAY_AT

 

cron-Eintrag zur Definition, wann die
Archivierung gestartet werden soll, z.B. "0 04*"

DC_STORE_ARCHIVE_TYPE

YEARS, MONTHS, WEEKS, DAYS

Definiert, welche Daten bei einem Archivierungslauf archiviert werden sollen:
Alle Daten, die älter sind als
<DC_STORE_ARCHIVE_QUANTITY>
<DC_STORE_ARCHIVE_TYPE>

DC_STORE_ARCHIVE_QUANTITY

ganze Zahl >0

s.o.

DC_STORE_ARCHIVE_UNLOCK_HOURS

ganze Zahl >0

definiert Zeitraum in Anzahl Stunden, wann die wiederhergestellten cold data wieder automatisch gelöscht werden.

Beispieldatei:

CODE
DC_STORE_ARCHIVE_FOLDER="~/smartWAREArchive/datastore"

// starte Archivierung jeden Tag um 04:00 UTC
DC_STORE_ARCHIVE_EVERY_DAY_AT="0 04 * * *"

// alle Daten älter als 6 Wochen archivieren
DC_STORE_ARCHIVE_TYPE=WEEKS

DC_STORE_ARCHIVE_QUANTITY=6

// nach 48 Stunden werden wiederhergestellte cold data automatisch gelöscht
DC_STORE_ARCHIVE_UNLOCK_HOURS=48

Nach Anpassung der .env-Datei ist das System neu zu starten, damit die Einträge verwendet werden.

Änderung der .env Datei aktivieren

Änderungen an der .env Datei werden erst aktiv, wenn die Services gestoppt und dann erneut gestartet werden. Starten Sie dazu erst das Skript ./stop_smartware.sh und danach das Skript ./start_smartware.sh. Danach bitte mit Hilfe des Skripts ./status_smartware.sh überprüfen, ob alle Services ordnungsgemäß gestartet wurden. Falls ein Service nicht gestartet wurde, kann ein Blick in die Log- bzw. Error-Dateien des jeweiligen Services helfen.

Service Name

Pfad für Log/Error Dateien

datastore

~/smartWAREData/datastore/logs

dataview

~/smartWAREData/dataview/logs

reverse-proxy

~/smartWAREData/reverse_proxy

Die Log- und Error-Dateien können z.B. mit dem nano Editor geöffnet werden.

Updateinstallation

In der folgenden Beschreiben sei als Beispiel, die Release Version 452.2.0.0.12 installiert/aktiv und es soll ein Update auf die Version 452.3.0.0.7 durchgeführt werden.

Folgende Schritte sind notwendig für eine Updateinstallation:

  1. Stoppen der alten installierten Version

  2. Kopieren des neuen Installationsskripts

  3. Das neue Installationsskript ausführbar machen

  4. Starten des neuen Installationsskript

  5. Kopieren der alten .env Datei, falls vorhanden

  6. Starten der neuen Version.

  7. Löschen der alten Version.

Stoppen der alten installierten Version

Wechseln in das Verzeichnis der alten Version

CODE
cd ~ /smartWARE_452 .2.0.0.12/

Stoppen der alten Version, durch Aufruf des ./stop_smartware.sh Scripts

CODE
. /stop_smartware .sh

Kopieren des neuen Installationsskript

Wechseln Sie zurück in das Home Verzeichnis des Users

CODE
cd ~

Kopieren des neuen Installationsskript smartWARE_452.3.0.0.7.run in das Home Verzeichnis des Users.

Starten des neuen Installationsskript

Bevor das Installationsskript gestartet werden kann muss die Datei ausführbar gemacht machen.

CODE
chmod +x . /smartWARE_452 .3.0.0.7.run

Starten des neuen Installationsskripts

CODE
. /smartWARE_452 .3.0.0.7.run

Jetzt startet das Installationsskript und Sie werden folgende Ausgaben im Terminal sehen.

folgendes Verzeichnis wurde durch das Skript jetzt neu erstellt:

CODE
~ /smartWARE_452 .3.0.0.7/

Das Verzeichnis ~/smartWARE_452.3.0.0.7/ enthält alle Skripte, die zum Betrieb der Anwendung nötig sind. Z.B.: Start- und Stop-Skript zum Starten bzw. Stoppen der Docker Services. In diesem Verzeichnis können auch individuelle Einstellungen in einer .env Datei konfiguriert und gespeichert werden. Mehr dazu unter dem Kapitel Basiskonfiguration.

Kopieren der alten .env Datei, falls vorhanden

Falls für die alte Installation eine .env Datei erstellt wurde, muss diese Datei nun in das neu erstellete Verzeichnis kopiert werden.
Dies ist wichtig, damit individuelle Anpassungen für die neue Installation übernommen werden.

CODE
cp ~ /smarWARE_452 .2.0.0.12/. env ~ /smartWARE_452 .3.0.0.7/. env

Starten der neuen Version

Wechseln Sie in das neu erstellte Verzeichnis ~/smartWARE_452.3.0.0.5/ und starten Sie das Skript ./
start_smartware.sh.

CODE
cd ~ /smartWARE_452 .3.0.0.7/
. /start_smartware .sh

Löschen der alten Version

Das alte Installationsverzeichnis ~/smartWARE_452.2.0.0.12/ und das alte Installationsskript ~/
smartWARE_452.2.0.0.12.run kann nun gelöscht werden.

CODE
rm -r ~ /smartWARE_452 .2.0.0.12/
rm ~ /smartWARE_452 .2.0.0.12.run

Betrieb

Die smartWARE Evaluation Software besteht aus mehreren einzelnen Programmen (auch als Microservices bezeichnet). Diese Programme werden als Docker Container gestartet. Zum einfachen Starten und Stoppen der Services befinden sich im Verzeichnis:
~/smartWARE_452.3.0.0.7
zwei Linux shell Dateien
start_smartware.sh
stop_smartware.sh

Starten des Services

Wechseln Sie in der Linux Console in das Verzeichnis ~/smartWARE_452.2.0.0.12 und starten Sie das Skript ./ start_smartware.sh.

CODE
$ ./start_smartware.sh

Die Eingabe der Zeichenkombination ./ (also ein Punkt gefolgt von einem Schrägstrich) ist notwendig, da Linux die Datei sonst nicht findet. Es zeigt Linux, dass sich die Datei im aktuellen Verzeichnis befindet.

Wenn Sie dieses Skript nach der Installation das erste Mal aufrufen, werden zuerst die Softwarepakete (Images) vom JUMO Server geladen. Danach werden die einzelnen Services als Docker Container gestartet. Sie können den aktuellen Status der Services sehen durch das Starten eines weiteren Shell Scripts:

CODE
$ ./status_smartware.sh

Jetzt sollten Sie eine Liste angezeigt bekommen, die Ihnen den Status der einzelnen Services anzeigt:

Wenn alle Services den State Up zeigen, laufen die Services. Nun kann man im Browser die Startseite öffnen mit http://IP oder https://IP. Wobei IP für die IPv4 Adresse des W10 PC steht, auf dem die Services gestartet wurden. Sie können aber auch statt der IP Adresse den Hostnamen des Rechners benutzen oder http://localhost, wenn der Browser auf dem selben Rechner gestartet wurde.

Falls die Ports 80/433 schon durch ein anderes Programm benutzt werden und Sie Ausweich-Ports durch Einträge in der .env Datei konfiguriert haben, so hängen Sie bitte diesen Port an die URL an, z.B. http://localhost:8080 oder https://localhost:8433.

Stoppen der Services

Um Änderungen der .env Dateien zu übernehmen, ist es notwendig, die einzelnen Services geordnet zu beenden, bevor man sie erneut starten kann. Dazu rufen Sie auf der Linux Console das Skript ./stop_smartware.sh auf.

CODE
$ ./stop_smartware.sh

Es dauert einige Sekunden, bis alle Services beendet sind. Sie sehen folgende Ausgabe am Bildschirm:

Hintergrundinformation

Begriffserklärungen

  • Docker: Legt Programme samt ihrer Abhängigkeiten in Images ab. Diese bilden die Basis für virtualisierte Container, die auf nahezu jedem Betriebssystem lauffähig sind. So werden Anwendungen portabel und unkompliziert.

  • Docker Desktop: Docker Desktop ist eine einfach zu installierende Anwendung für eine Windows- Umgebung, mit der containerisierte Anwendungen und Microservices erstellt und verteilt werden können. Docker Desktop umfasst Docker Engine, Docker CLI-Client, Docker Compose, Docker Content Trust, Kubernetes und Credential Helper.

  • Docker Compose: Ist ein Tool, das zum Definieren und Freigeben von Multicontaineranwendungen entwickelt wurde. Mit Compose können Services definieren werden, die dann mit einem einzigen Befehl gestartet bzw. beenden werden können.

  • Docker Image: Der Begriff „Image“ ist Ihnen im Zusammenhang mit Virtualisierung möglicherweise von virtuellen Maschinen (VMs) bekannt. Für gewöhnlich handelt es sich bei einem VM-Image um eine Kopie eines Betriebssystems. Ggf. enthält ein VM-Image weitere installierte Komponenten wie Datenbank und Webserver. Der Begriff entstammt einer Zeit, in der Software auf optischen Datenträgern wie CD-ROMs und DVDs verteilt wurde. Wollte man eine lokale Kopie des Datenträgers anlegen, erstellte man mit einer speziellen Software ein Abbild, auf Englisch „Image“. Bei der Container-Virtualisierung handelt es sich um die konsequente Weiterentwicklung der VMVirtualisierung. Anstatt einen virtuellen Computer (Maschine) mit eigenem Betriebssystem zu virtualisieren, umfasst ein Docker-Image in der Regel lediglich eine Anwendung. Dabei kann es sich um eine einzelne Binärdatei handeln oder um einen Verbund mehrerer Software-Komponenten.

  • Docker Container: Die Virtualisierungs-Lösung Docker hat im Verlauf des letzten Jahrzehnts grundlegend verändert, wie Software gebaut, verteilt und betrieben wird. Anders als bei den zuvor etablierten virtuellen Maschinen (VM) werden mit Docker einzelne Anwendungen virtualisiert. Bei einem Docker-Container handelt es sich also um einen Anwendungs- oder Software-Container. Der Begriff des Software-Containers ist angelehnt an physische Container, wie sie auf Schiffen eingesetzt werden. In der Logistik haben Container als standardisierte Einheit die modernen Handelsketten erst ermöglicht. So lässt sich ein Container auf jedem dafür ausgelegten Schiff, Lkw oder Zug befördern. Dies funktioniert weitgehend unabhängig vom Inhalt des Containers. Nach außen hin ist der Container mit standardisierten Schnittstellen versehen. Ganz ähnlich ist dies auch bei Docker-Containern der Fall.

  • VHDx Datei: In einer VHDx-Datei lässt sich der Inhalt einer kompletten Festplatte virtuell in Form einer einzigen Datei speichern. Das Dateiformat ist eine Erweiterung des VHD-Formats und wurde erstmals mit Windows 8 und Windows Server 2012 veröffentlicht. Es bietet gegenüber dem VHD-Format zahlreiche Verbesserungen und Funktionserweiterungen.

Software Struktur

  • Die smartWARE Evaluation Software besteht im wesentlichen aus 4 funktionalen Einheiten (Services):

  • Datastore
    Speichert die Originaldaten (Cold Data), die von den Jupiter Geräten in Intervallen gesendet werden.

  • Dataview
    Bereitet Teile der der Daten (Cold Data) auf und speichert diese in der Postgres Datenbank (Warm Data). Nimmt Benutzereingaben der Browser Anwendung entgegen und liefert die Daten zur Darstellung der Dashboard Grafiken/Tabellen.

  • Postgres Datenbank
    Hier werden die sogenannten Warm Data gespeichert, also der Anteil der Daten, die zur schnellen Anzeige in den Dashboards dienen.

  • Nginx (Reverse Proxy)
    Die http(s) Schnittstelle der Services.

Diese Services sind als Linux Docker Container entwickelt und werden mit Hilfe von Docker-Compose konfiguriert und gestartet/gestoppt. Die Darstellung der Daten für den Benutzer erfolgt dabei über einen Web-Browser auf einem beliebigen Rechner des Netzwerks.

Persistente Daten

Alle aufgezeichneten Daten der Geräte werden durch den Datastore Service persistent im Home Verzeichnis des Linux Users gespeichert:

~/smartWAREData/datastore

Die Daten sind in gepackten Dateien gespeichert und durch zusätzliche signierte Dateien vor Manipulation geschützt. Dieser gesamte Datenbestand wird auch als Cold Data bezeichnet.

Das Löschen dieses Verzeichnisses oder einzelner Dateien aus diesem Verzeichnis führt zum Verlust der aufgezeichneten Daten, falls keine Kopie der Daten erstellt wurde!

Backup

Erst ab Version 3.0.0.7 ist die Backup Funktion unterstützt.

Wenn datastore Backup aktiviert ist, werden die Daten des datastore zusätzlich beim Empfang im Verzeichnis gespeichert.

~/smartWAREBackup/

Um die Wahrscheinlichkeit eines Datenverlust durch einen Festplattencrash zu minimieren, empfiehlt es sich die Daten aus diesem Verzeichnis regelmäßig auf ein NAS im Netzwerk zu verschieben. Ein Cron-Job in Verbindung mit dem Programm rsync und einen Shell Skript, kann für diesen Zweck erstellt werden.

  • Erstellen einer Shell Script Datei z.Bsp. backup_to_nas.sh

  • Diese Datei ausführbar machen mit chmod +x backup_to_nas.sh

  • Überprüfen, dass das Shell Script die Aufgabe erledigt, die es soll.

  • Überprüfen ob der Cron Service aktiv ist sudo systemctl status cron

  • Falls nicht aktiv, mit sudo systemctl start cron den Service aktivieren.

Hier ein Beispiel für ein Skript das die Daten auf ein NAS Laufwerk verschiebt, es kopiert also die Daten aus dem Verzeichnis ~/smartWAREBackup/ auf das NAS Laufwerk und löscht dann die kopierten Daten aus dem original ~/ smartWAREBackup/ Verzeichnis. Das original ~/smartWAREBackup/ Verzeichnis dient also nur als temporärer Zwischenspeicher!

CODE
#!/bin/sh
# This script move the files from the smatWAREBackup folder to a NAS folder
# to get an external backup of the recorded files
# this script will be called via cron every 1h
rsync -avL -progress --remove- source -files /home/ <youruser> /
smartWAREBackup /mnt/nas/smartWAREBackup/

Dieses Script kann man nun z.Bsp. jede Stunde durch einen Cron Job starten. Dazu öffnet man die Konfigurationsdatei in einem editor

CODE
crontab -e

und trägt z. Bsp. folgende Zeile ein

CODE
# start backup job every hour to move the smartWAREBackup files to the NAS
0 * * * * /home/ <youruser> /backup_to_nas .sh

Die Datei wird gespeichert mit Ctrl-o und "Eingabe Taste". Mit Ctrl-x wird der Editor verlassen.

Ob der Job nun jede Stunde gestartet wird, kann folgendermaßen geprüft werden:

CODE
grep CRON /var/log/syslog
Apr 12 00:00:01 yourlinuxpc CRON[3787445]: (ewks) CMD ( /home/ <youruser> /
backup_to_nas .sh)
Apr 12 01:00:01 yourlinuxpc CRON[3802213]: (ewks) CMD ( /home/ <youruser> /
backup_to_nas .sh)
Apr 12 02:00:01 yourlinuxpc CRON[3817019]: (ewks) CMD ( /home/ <youruser> /
backup_to_nas .sh)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.