Update

Sobald eine neue On-Premises-Version verfügbar ist, erhalten Sie von uns eine E-Mail. Aus der E-Mail können Sie auch die aktuellen Versionsnummern entnehmen. Sie finden die aktuellen Versionen auch stets bei Github

Achten Sie darauf, auch die installierten Softwarekomponenten Pulsar-Agent, Watchdog, Hacktor und Observer aktuell zu halten. Die Updates können Sie direkt in der Plattform durchführen. Hier erhalten Sie eine Anleitung.

Enginsight Applikation

Automatisches Update (empfohlen)

Wir empfehlen unser Update-Skript zu nutzen, um automatisch die aktuelle Version von Enginsight einzuspielen.

1. Stellen Sie sicher, dass Sie über root-Rechte verfügen. Sollte dies nicht der Fall sein, melden Sie sich als Superuser an.

su - root

2. Navigieren Sie in das Verzeichnis Ihrer Installation und führen das Update-Skript aus.

cd /opt/enginsight/enterprise
chmod +x update.sh && ./update.sh

Falls die Datei update.sh nicht vorhanden ist, kann diese über folgende Befehle heruntergeladen und ausgeführt werden.

cd /opt/enginsight/enterprise
wget -O update.sh https://raw.githubusercontent.com/enginsight/enterprise/master/update.sh
chmod +x update.sh
./update.sh

Anlegen eines Cronjob

Alternativ können Sie das Update auch automatisch über einen Cronjob ausführen lassen.

1. Führen Sie dazu folgenden Befehl aus, um einen Cronjob hinzuzufügen.

su - root
chmod +x /opt/enginsight/enterprise/update.sh
crontab -e

2. Kopieren Sie die folgende Zeile in das Dokument, editieren Sie die Ausführungszeit ihrem Bedarf entsprechend und speichern Sie das Dokument.

0 04 * * 0 cd /opt/enginsight/enterprise && ./update.sh

In diesem Beispiel wird das Update wöchentlich an jedem Sonntag 4:00 morgens ausgeführt.

Manuelles Update

Sollten Sie manuell Softwaremodule auf spezielle Versionen updaten wollen, gehen Sie folgendermaßen vor.

1. Stellen Sie sicher, dass Sie über root-Rechte verfügen. Sollte dies nicht der Fall sein, melden Sie sich als Superuser an.

su - root

2. Navigieren Sie zu /opt/enginsight/enterprise

cd /opt/enginsight/enterprise

3. Passen Sie die Image-Versionen der jeweiligen Docker-Services an.

nano docker-compose.yml

Beispiel für Services, ui-m1:

ui-m1:
    image: enginsightonpremise/ui-m1:<version>
    ...

Speichern Sie das docker-compose.yml

5. Führen Sie das Setup-Skript aus und bestätigen Sie alle Abfragen.

./setup.sh

Die Konfigurationen für Datenbank, Redis, APP und API sind gecacht und brauchen Sie daher nicht anpassen.

Loggernaut Update

Bei Loggernaut Installationen vor 2.0.0 ist ein einmaliges manuelles Update nötig, um das Updaten innerhalb des UIs zu ermöglichen. Führen Sie dafür den folgenden Code aus:

// sudo /opt/enginsight/loggernaut/ngs-loggernaut -update

Softwarekomponenten

Unsere vier Softwarekomponenten können Sie direkt in der Enginsight-Plattform aktualisieren.

Pulsar-Agent

Am besten aktualisieren Sie den Pulsar-Agent auf allen Hosts gleichzeitig.

  1. Gehen Sie auf Hosts → Übersicht.

  2. Klicken Sie auf den Button "Agents aktualisieren". Sie finden ihn oberhalb der Liste Ihrer Hosts.

  3. Klicken Sie auf Aktualisieren. Sollten alle Agents auf dem aktuellen Stand sein, erhalten Sie eine entsprechende Meldung.

Observer

  1. Gehen Sie auf Endpunkte → Observers und prüfen Sie, ob alle Versionsnummern aktuell sind.

  2. Sollte ein Observer nicht über die aktuelle Versionsnummer verfügen, klicken Sie in der rechten Spalte unter Aktionen auf das Update-Symbol.

Watchdog

  1. Gehen Sie auf Discoveries → Watchdogs und prüfen Sie, ob alle Versionsnummern aktuell sind.

  2. Sollte ein Watchdog nicht über die aktuelle Versionsnummer verfügen, klicken Sie in der rechten Spalte unter Aktionen auf das Update-Symbol.

Hacktor

  1. Gehen Sie auf Penetrationstests → Hacktors und prüfen Sie, ob alle Versionsnummern aktuell sind.

  2. Sollte ein Hacktor nicht über die aktuelle Versionsnummer verfügen, klicken Sie in der rechten Spalte unter Aktionen auf das Update-Symbol.

Teil Offline- und Pulsar Updates

Diese Anleitung beschreibt die Durchführung von Updates in einem Teil-Offline-Szenario, bei dem der App-Server vorübergehend eine Internetverbindung erhält, um Updates herunterzuladen. Anschließend können die heruntergeladenen Daten auf weitere Hosts ohne Internetverbindung übertragen werden. Der Fokus liegt dabei auf Updates der Enginsight-Komponenten, insbesondere der Pulsar-Komponente.

Update-Prozess bei eingeschränkter Konnektivität

  1. Internet aktivieren Aktivieren Sie die Internetverbindung auf dem App-Server, um die Updates herunterladen zu können.

  2. update.sh ausführen Führen Sie das Update-Skript update.sh auf dem App-Server aus. Folgen Sie hierfür den Schritten der oben stehenden Update-Anleitung.

  3. Überprüfen und Aktualisieren der Software-Komponenten

    Prüfen Sie nach Abschluss des Updates alle relevanten Komponenten, darunter Pulsar, Watchdog, Observer und Hacktor. Um sicherzustellen, dass die Updates korrekt zwischengespeichert (gecached) werden, aktualisieren Sie mindestens eine Installation jeder Komponente.

    Weitere Details dazu finden Sie in der Anleitung unter Softwarekomponenten.

  4. Internetverbindung deaktivieren Nach Abschluss der Aktualisierungen trennen Sie die Internetverbindung des App-Servers.

Pulsar-Download-Skript

Wenn ein Update für die Pulsar-Komponente erforderlich ist, gehen Sie wie folgt vor:

  1. Zum Enterprise-Verzeichnis wechseln Navigieren Sie in das Verzeichnis /opt/enginsight/enterprise:

    sudo cd /opt/enginsight/enterprise
  2. Neues Skript herunterladen

    Laden Sie das aktuelle Pulsar-Update-Skript aus dem offiziellen Repository herunter:

    sudo wget https://raw.githubusercontent.com/enginsight/enterprise/master/scripts/fixed/pulsar.sh
  3. Skript ausführbar machen Erteilen Sie dem heruntergeladenen Skript die nötigen Ausführungsrechte:

    sudo chmod +x pulsar.sh
  4. Skript ausführen Führen Sie das Skript aus, um die aktuelle Version des Pulsars in allen Varianten herunterzuladen:

    sudo ./pulsar.sh
  5. Setup abschließen

    Starten Sie das Setup-Skript, um die Änderungen zu finalisieren:

    sudo ./setup.sh

Anpassung in der docker-compose.yml

Passen Sie die Konfiguration der docker-compose.yml für den Service server-m2 an, um das Pulsar-Verzeichnis korrekt zu mounten:

server-m2:
    ...
    - "./pulsar:/opt/enginsight/server-m2/pulsar"

Nach der Anpassung starten Sie den betroffenen Service neu, um die Änderungen anzuwenden:

sudo docker-compose up -d server-m2

Nach Abschluss der oben beschriebenen Schritte sollten alle relevanten Komponenten auf die neueste Version aktualisiert sein. Vergewissern Sie sich, dass alle Dienste ordnungsgemäß laufen und das System stabil ist.

Externe Komponenten

Mongo DB Upgrade

Alle folgenden Ausführungen werden als root durchgeführt:

  1. Backup der MongoDB-Konfiguration Die Konfiguration in /etc/mongod.conf wird beim Upgrade gelöscht. Daher muss diese vorher gesichert werden.

Die OnPrem-Umgebung muss gestoppt sein, bevor im folgenden der Dump erstellt wird.

  1. Erstellung eines Datenbank-Dumps

    Grundlegender Befehl:

    mongodump --host "rs0/<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017" --db enginsight
    1. Mit RBAC (Nutzername/Passwort) Fügen Sie folgende Parameter hinzu:

      --username mongoDefaultUser --password $(</etc/enginsight/mongoDefaultUserPassword) --authenticationDatabase "enginsight"

    2. Mit TLS Fügen Sie folgende Parameter hinzu:

      --ssl --sslCAFile /etc/enginsight/ssl/mongodbCA.crt --sslPEMKeyFile /etc/enginsight/ssl/mongodb.pem

      Ein vollständiger Dump-Befehl mit einer beispielhaften IP für eine Datenbank ohne TLS und RBAC sieht so aus:

      mongodump --host "rs0/192.168.180.38:27017" --db enginsight

      Ein vollständiger Dump-Befehl mit einer beispielhaften IP für eine Datenbank mit TLS und RBAC sieht so aus:

      mongodump --host "rs0/192.168.180.38:27017" --username mongoDefaultUser --password $(</etc/enginsight/mongoDefaultUserPassword) --authenticationDatabase "enginsight" --ssl --sslCAFile /etc/enginsight/ssl/mongodbCA.crt --sslPEMKeyFile /etc/enginsight/ssl/mongodb.pem --db enginsight

Der Dump befindet sich im Unterordner dump des gegenwärtigen Arbeitsverzeichnisses. Zusätzliche externe Sicherung wird strengstens empfohlen.

  1. Deinstallation von MongoDB 5

    systemctl stop mongod
    apt remove mongodb-org
    apt autoremove

Beachten Sie zwingend, dass alle Daten ohne Dump verloren gehen bevor Sie den nächsten Schritt starten.

  1. Löschen von Datenbanküberresten

    rm -rf /var/lib/mongodb
  2. Upgrade des Debian-Systems Führen Sie das Upgrade mit dem hier aufgeführten Plugin durch. Dabei wird das MongoDB-Repository automatisch auf Version 8.0 aktualisiert. Ein Neustart des Systems ist zwingend erforderlich.

  3. MongoDB-Neuinstallation Nach erfolgtem Systemneustart:

    apt install mongodb-org
  4. MongoDB-Einrichtung

    1. Wiederherstellung der Konfiguration Spielen Sie das Backup der Datei /etc/mongod.conf jetzt wieder ein.

    2. Aktualisierung der Konfigurationssyntax Aufgrund einer Änderung in der Konfigurationssyntax ist eine Anpassung erforderlich. Der Abschnitt storage sah bisher so aus:

      # Where and how to store data.
      storage:
        dbPath: /var/lib/mongodb
        journal:
          enabled: true
      #  engine:
      #  mmapv1:
      #  wiredTiger:

      Der Schlüssel journal wird nicht mehr unterstützt und muss mitsamt Unteroptionen entfernt werden. Der Abschnitt sollte danach so aussehen:

      # Where and how to store data.
      storage:
        dbPath: /var/lib/mongodb
      #  engine:
      #  mmapv1:
      #  wiredTiger:
    3. Temporäres Deaktivieren der Authentifizierung Kommentieren Sie den Abschnitt security: in der Datei /etc/mongod.conf temporär aus, falls dieser vorhanden ist. Dies betrifft den gesamten Abschnitt inklusive Unterpunkte, also die eingerückten Optionen unter security:!

    4. Starten der Mongo DB

      systemctl enable --now mongod
    5. Einrichtung des Replica-Sets Grundlegender Befehl:

      mongosh --host "<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017" \
      		--eval "rs.initiate({
      	    _id: \"rs0\", 
      	    members: [{
      	      _id: 0,
      	      host: \"<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017\"
      	    }]
      	})"
      1. Mit TLS

        Nach dem --host-Parameter müssen folgende Parameter angefügt werden:

        --tls --tlsCAFile /etc/enginsight/ssl/mongodbCA.crt --tlsCertificateKeyFile /etc/enginsight/ssl/mongodb.pem

        Vollständiger Befehl mit beispielhafter IP ohne TLS:

        mongosh --host "192.168.180.38:27017" \
        		--eval "rs.initiate({
        	    _id: \"rs0\", 
        	    members: [{
        	      _id: 0,
        	      host: \"192.168.180.38:27017\"
        	    }]
        	})"

        mongosh --host "192.168.180.38:27017" --tls --tlsCAFile /etc/enginsight/ssl/mongodbCA.crt --tlsCertificateKeyFile /etc/enginsight/ssl/mongodb.pem \
        		--eval "rs.initiate({
        	    _id: \"rs0\", 
        	    members: [{
        	      _id: 0,
        	      host: \"192.168.180.38:27017\"
        	    }]
        	})"
    6. Nutzer wieder herstellen (falls bisher vorhanden) Grundlegende Befehle:

      mongosh --host "<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017" \
      		--eval "db.createUser({user:'mongoAdminUser',pwd:\"$(</etc/enginsight/mongoAdminUserPassword)\",roles:['userAdminAnyDatabase','clusterMonitor']})" admin
      mongosh --host "<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017" \
      		--eval "db.createUser({user:'mongoDefaultUser',pwd:\"$(</etc/enginsight/mongoDefaultUserPassword)\",roles:[{role:'readWrite',db:'enginsight'}]})" enginsight
      1. Mit TLS

        Nach dem --host-Parameter müssen folgende Parameter angefügt werden:

        --tls --tlsCAFile /etc/enginsight/ssl/mongodbCA.crt --tlsCertificateKeyFile /etc/enginsight/ssl/mongodb.pem

        Vollständige Befehle mit beispielhafter IP ohne TLS:

        mongosh --host "192.168.180.38:27017" \
        		--eval "db.createUser({user:'mongoAdminUser',pwd:\"$(</etc/enginsight/mongoAdminUserPassword)\",roles:['userAdminAnyDatabase','clusterMonitor']})" admin
        mongosh --host "192.168.180.38:27017" \
        		--eval "db.createUser({user:'mongoDefaultUser',pwd:\"$(</etc/enginsight/mongoDefaultUserPassword)\",roles:[{role:'readWrite',db:'enginsight'}]})" enginsight

        Vollständige Befehle mit beispielhafter IP mit TLS:

        mongosh --host "192.168.180.38:27017" --tls --tlsCAFile /etc/enginsight/ssl/mongodbCA.crt --tlsCertificateKeyFile /etc/enginsight/ssl/mongodb.pem \
        		--eval "db.createUser({user:'mongoAdminUser',pwd:\"$(</etc/enginsight/mongoAdminUserPassword)\",roles:['userAdminAnyDatabase','clusterMonitor']})" admin
        mongosh --host "192.168.180.38:27017" --tls --tlsCAFile /etc/enginsight/ssl/mongodbCA.crt --tlsCertificateKeyFile /etc/enginsight/ssl/mongodb.pem \
        		--eval "db.createUser({user:'mongoDefaultUser',pwd:\"$(</etc/enginsight/mongoDefaultUserPassword)\",roles:[{role:'readWrite',db:'enginsight'}]})" enginsight
    7. Reaktivierung der Authentifizierung Die in Schritt 7.3. auskommentierten Zeilen müssen jetzt wieder einkommentiert werden. Danach muss die MongoDB neu gestartet werden:

      systemctl restart mongod
  5. Einspielen des Dumps Grundlegender Befehl:

    mongorestore --host "rs0/<ipDerDBsoWieSieVonDerApiVerwendetWird>:27017"
    1. Mit RBAC (Nutzername/Passwort)

      Fügen Sie diese Parameter hinzu:

      --username mongoDefaultUser --password $(</etc/enginsight/mongoDefaultUserPassword) --authenticationDatabase "enginsight"
    2. Mit TLS

      Fügen Sie diese Parameter hinzu:

      --ssl --sslCAFile /etc/enginsight/ssl/mongodbCA.crt --sslPEMKeyFile /etc/enginsight/ssl/mongodb.pem

      Ein vollständiger Dump-Befehl mit einer beispielhaften IP für eine Datenbank ohne TLS und RBAC sieht so aus:

      mongorestore --host "rs0/192.168.180.38:27017"

      Ein vollständiger Dump-Befehl mit einer beispielhaften IP für eine Datenbank mit TLS und RBAC sieht so aus:

      mongorestore --host "rs0/192.168.180.38:27017" --username mongoDefaultUser --password $(</etc/enginsight/mongoDefaultUserPassword) --authenticationDatabase "enginsight" --ssl --sslCAFile /etc/enginsight/ssl/mongodbCA.crt --sslPEMKeyFile /etc/enginsight/ssl/mongodb.pem

Last updated