Migration von Elastic 7.17.x zu 9.1.x

Im Folgenden wird beschrieben, wie eine Windows-Installation mit einem einzelnen Knoten von 7.17.x auf 9.1.x aktualisiert wird. Da es sich um ein Upgrade über zwei Hauptversionen handelt, muss die Installation zuerst auf die Version 8.19.x zwischenaktualisiert werden. Daraus ergibt sich folgender Migrationspfad. Weitere Informationen sind unter Migrationspfad verfügbar.

Wenn Sie Elastic noch nicht mindestens in Version 7.17.x betreiben, so muss zuvor auf diese Version aktualisiert werden.

Entscheidungen vor dem Upgrade

Bevor Sie mit dem Upgrade beginnen, sollten Sie einige Entscheidungen vorbereiten:

  • Rolling Upgrade oder Full Upgrade - Dieses Dokument beschreibt ein Full Upgrade, welches eine Downtime des Clusters mit sich bringt. Ein Rolling Upgrade erfordert mehr Fachkenntnisse über den Betrieb von Elastic.

  • Die bestehenden Indizes der Version 7 können nur eingeschränkt in Version 9 genutzt werden. Diese müssen entweder in einen neuen Index re-indiziert werden oder der bestehende Index muss read-only gesetzt werden. Bei großen Datenmengen kann eine Reindizierung mehrere Stunden in Anspruch nehmen. Hier ist das Setzen des read-only-Status die bessere Wahl. In diesem Fall muss im Zuge der Migration ein neuer Rollover-Index erstellt werden, der dann für die weitere Arbeit genutzt wird.

  • Zusätzlicher Sicherheitslevel: Erstellung von Index-Snapshots vor dem Upgrade, um im Falle eines Fehlers auf die vorherige Version zurückkehren zu können.

Migrationspfad

  1. Migration zu 8.19.x

  2. Migration zu 9.1.x

Upgrade von Elasticsearch und Kibana von 7.17.x auf 8.19.x

Für detaillierte Anweisungen siehe: Upgrade-Leitfaden

Bereiten Sie 7.17.x für das Upgrade gemäß des Elastic-Leitfaden vor.

Elastic vorbereiten bedeutet insbesondere die Anwendung des Kibana Upgrade Assistenten, der in Kibana unter Management → Stack Management → Upgrade Assistant zu finden ist. Dieser Assistent zeigt an, welche Maßnahmen für ein erfolgreiches Upgrade erforderlich sind. Diese Maßnahmen müssen vor dem Upgrade auf 8.19.x durchgeführt werden.

Elasticsearch aktualisieren (8.19.x)

  • Windows-Dienste von Elasticsearch und Kibana stoppen

  • Windows Dienst Elasticsearch entfernen

    <altes ES-Verzeichnis>\bin\elasticsearch-service.bat remove
  • Laden Sie v. 8.19.x herunter

  • Entpacken Sie die heruntergeladene Datei nach <elasticsearch-installation-dir>/elasticsearch-8.19.x

  • Kopieren Sie das Verzeichnis config von Elasticsearch 7.17.x nach <elasticsearch-installation-dir>/elasticsearch-8.19.x

    • in <elasticsearch-installation-dir>/config/elasticsearch.yml:

      • prüfen Sie die Datei auf absolute Pfade und passen Sie diese an (zum Beispiel Referenzen auf SSL-Zertifikate)

      • prüfen Sie, ob die Elastic-Daten innerhalb oder des Elastic-Installationsverzeichnisses liegen

        • Wenn der Konfigurationswert path.data gesetzt ist → keine Aktion erforderlich

        • Wenn der Konfigurationswert nicht path.data gesetzt ist → das Verzeichnis data von Elasticsearch 7.17.x an einen Ort außerhalb des Installationsverzeichnisses verschieben, zum Beispiel nach <elasticsearch-installation-dir>/data und den Konfigurationswert path.data in <elasticsearch-installation-dir>/config/elasticsearch.yml entsprechend anpassen

  • (optional) Falls installiert, aktualisieren Sie Plugins (hier nicht dokumentiert)

  • Starten Sie Elasticsearch über die Windows-Dienste

  • Prüfen Sie den erfolgreichen Start von Elasticsearch, indem Sie eine HTTP-GET-Anfrage an https://elasticsearch-host.example.com:9200 senden. Die Antwort sollte Informationen über den Knoten enthalten, einschließlich der Version.

Kibana aktualisieren (8.19.x)

  • Laden Sie Kibana v. 8.19.x herunter

  • Entpacken Sie die heruntergeladene Datei nach <kibana-installation-dir>/kibana-8.19.x

  • Kopieren Sie die Verzeichnisse data und config von Kibana 7.17.x nach <kibana-installation-dir>/kibana-8.19.x

  • Editieren Sie den Windows-Dienst für Kibana

    • Aufruf der Dienstkonfiguration

      <NSSM-Verzeichnis>\nssm.exe edit elastic-kibana
    • Tab Application → Setzen Sie Path auf <kibana-installation-dir>\kibana-8.19.x\bin\kibana.bat

    • Tab Application → Setzen Sie Startup directory auf <kibana-installation-dir>\kibana-8.19.x\bin

    • Tab Details → Den Display-Namen aktualisieren, zum Beispiel auf Elastic Kibana 8.19.x (elastic-kibana)

    • Tab Details → Die Description aktualisieren, zum Beispiel auf Elastic Kibana 8.19.x (windows service)

    • Mit Edit service bestätigen

  • Starten Sie Kibana über die Windows-Dienste

  • Prüfen Sie den erfolgreichen Start von Kibana, indem Sie Kibana aufrufen

Upgrade von Elasticsearch und Kibana von 8.19.x auf 9.1.x

Für detaillierte Anweisungen siehe: Upgrade-Leitfaden

Bereiten Sie 8.19.x für das Upgrade gemäß des Elastic-Leitfadens vor.

Elastic vorbereiten bedeutet insbesondere die Anwendung des Kibana Upgrade Assistenten. Der Upgrade-Assistent wird mehrere Fehler für verschiedene Elemente anzeigen. Die vorgeschlagenen Maßnahmen müssen für jedes Element durchgeführt werden, damit das Upgrade auf 9.1.x fortgesetzt werden kann. Notieren Sie diejenigen Indizes, die afu read-only gesetzt wurden.

Elasticsearch aktualisieren (9.1.x)

  • Windows-Dienste von Elasticsearch und Kibana stoppen

  • Windows Dienst Elasticsearch entfernen

    <altes ES-Verzeichnis>\bin\elasticsearch-service.bat remove
  • Laden Sie v. 9.1.x herunter

  • Entpacken Sie die heruntergeladene Datei nach <elasticsearch-installation-dir>/elasticsearch-9.1.x

  • Kopieren Sie das Verzeichnis config von Elasticsearch 8.19.x nach <elasticsearch-installation-dir>/elasticsearch-9.1.x

    • in <elasticsearch-installation-dir>/config/elasticsearch.yml:

      • prüfen Sie die Datei auf absolute Pfade und passen Sie diese an (zum Beispiel Referenzen auf SSL-Zertifikate)

    • in <elasticsearch-installation-dir>/elasticsearch-9.1.x/config/jvm.options:

      • Aufgrund eines Fehlers in Elastic müssen die vorhandenen Werte für GC-Logging ersetzt werden: -Xlog:gc*,gc+age=trace,safepoint:file=gc.log:utctime,level,pid,tags:filecount=32,filesize=64m (~ Zeile 96)

  • (optional) Falls installiert, aktualisieren Sie Plugins (hier nicht dokumentiert)

  • Startup Typ des Dienstes auf Automatic (Delayed) setzen

  • Starten Sie Elasticsearch über die Windows-Dienste

  • Prüfen Sie den erfolgreichen Start von Elasticsearch, indem Sie eine HTTP-GET-Anfrage an https://elasticsearch-host.example.com:9200 senden. Die Antwort sollte Informationen über den Knoten enthalten, einschließlich der Version.

Kibana aktualisieren (9.1.x)

  • Laden Sie Kibana v. 9.1.x herunter

  • Entpacken Sie die heruntergeladene Datei nach <kibana-installation-dir>/kibana-9.1.x

  • Kopieren Sie die Verzeichnisse data und config von Kibana 8.19.x nach <kibana-installation-dir>/kibana-9.1.x

  • Editieren Sie den Windows-Dienst für Kibana

    • Aufruf der Dienstkonfiguration

      <NSSM-Verzeichnis>\nssm.exe edit elastic-kibana
    • Tab Application → Setzen Sie Path auf <kibana-installation-dir>\kibana-9.1.x\bin\kibana.bat

    • Tab Application → Setzen Sie Startup directory auf <kibana-installation-dir>\kibana-9.1.x\bin

    • Tab Details → Den Display-Namen aktualisieren, zum Beispiel auf Elastic Kibana 9.1.x (elastic-kibana)

    • Tab Details → Die Description aktualisieren, zum Beispiel auf Elastic Kibana 9.1.x (windows service)

    • Mit Edit service bestätigen

  • Starten Sie Kibana über die Windows-Dienste

  • Prüfen Sie den erfolgreichen Start von Kibana, indem Sie Kibana aufrufen

Neue Indizes erstellen

Sind einzelne Indizes bei der Bearbeitung mit dem Upgrade-Assistenten auf read-only gesetzt worden, so muss (für jede Datenquelle) ein neuer write-Index erstellt werden. In diese Indizes werden dann die neuen Daten geschrieben. Die alten Indizes können dann in Kibana nicht mehr bearbeitet werden, aber die Daten sind weiterhin verfügbar.

Im folgenden Beispiel wird beschrieben wie ein neuer Index ct-arcgis-logfile-000002 erstellt wird, der dem auf read-only gesetzten Index ct-arcgis-logfile-000001 folgt. Der neue Index wird als write-Index für das Alias ct-arcgis-logfile gesetzt, so dass alle neuen Daten in diesen Index geschrieben werden.

PUT ct-arcgis-logfile-000002
{"aliases": {"ct-arcgis-logfile": {"is_write_index" : false}}}

GET /_alias/ct-arcgis-logfile

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "ct-arcgis-logfile-000001",
        "alias": "ct-arcgis-logfile",
        "is_write_index" : false
      }
    },
    {
      "add": {
        "index": "ct-arcgis-logfile-000002",
        "alias": "ct-arcgis-logfile",
        "is_write_index" : true
      }
    }
  ]
}
Bitte passen Sie den Indexnamen an Ihre Gegebenheiten an.