Von Elastic Cloud on Kubernetes in Elastic Cloud in Google Cloud bereitstellen und migrieren

Last reviewed 2021-01-15 UTC

In dieser Anleitung erfahren Sie, wie Sie die Elastic Stack-Plattform in verschiedenen Umgebungen einrichten und eine einfache Datenmigration aus Elastic Cloud on Kubernetes (ECK) nach Elastic Cloud in Google Cloud durchführen.

Wenn Organisationen zu Google Cloud wechseln, sind Migrationsstrategien wichtig. Unabhängig davon, ob Sie von einer anderen Cloud-Umgebung oder einer lokalen Umgebung aus wechseln, müssen Geschäftsprozesse mit minimaler Unterbrechung fortgesetzt werden. Die Datenplattform, die Analysedaten verarbeitet, speichert und bereitstellt, kann oft wichtige Einblicke in den Betrieb Ihrer Unternehmens- und Anwendungsinfrastruktur bieten. In vielen Organisationen ist Elastic Stack eine wichtige Komponente, die entsprechende Informationen liefert.

Diese Anleitung richtet sich an Daten- und Unternehmensarchitekten sowie Systemadministratoren, die an der Migration von Systemen und Anwendungen zu Google Cloud beteiligt sind. In dieser Anleitung lernen Sie, wie Sie den Elastic Stack in verschiedenen Umgebungen in Google Cloud instanziieren.

Diese Anleitung wurde mit ECK Version 1.0.1 entwickelt und getestet.

Schlüsselkomponenten

Diese Anleitung interagiert mit den folgenden Technologien:

  • Der Elastic Stack ist eine Plattform, die aus den folgenden Hauptkomponenten besteht:
    • Elasticsearch ist eine verteilte, JSON-basierte Such- und Analyse-Engine, die für horizontale Skalierbarkeit, maximale Zuverlässigkeit und eine einfachere Verwaltung entwickelt wurde.
    • Kibana bringt Ihre Daten in Form und ist die erweiterbare Benutzeroberfläche zum Konfigurieren und Verwalten aller Aspekte des Elastic Stack.
    • Beats sind einfache Shipper, die Daten von Edge-Maschinen an Logstash und Elasticsearch senden.
    • Logstash ist eine dynamische Datenerfassungspipeline mit einem erweiterbaren Plug-in-System und starker Elasticsearch-Synergie.
  • Elastic Cloud ist ein gehosteter und verwalteter Elasticsearch- und Kibana-Dienst, der in Google Cloud ausgeführt werden kann.
  • ECK erweitert die grundlegenden Kubernetes-Orchestrierungsfunktionen für die Einrichtung und Verwaltung von Elasticsearch, Kibana und APM Server in Kubernetes.
  • Google Kubernetes Engine (GKE) ist eine verwaltete Umgebung für das Deployment, die Verwaltung und die Skalierung von containerisierten Anwendungen in der Google-Infrastruktur. Die GKE-Umgebung besteht aus mehreren Maschinen (Compute Engine-Instanzen), die zusammen einen Cluster bilden.

Ziele

  • Deployment von ECK auf GKE
  • Beispieldaten in den ECK-Cluster laden
  • Elastic Cloud bereitstellen
  • Einen Snapshot erstellen und die Daten in Cloud Storage laden
  • ECK-Instanz mit dem gespeicherten Snapshot wiederherstellen

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  4. Aktivieren Sie in Cloud Shell die Compute Engine und GKE APIs:

    gcloud services enable compute.googleapis.com \
        container.googleapis.com
    

    Mit diesen APIs werden die Rechenressourcen bereitgestellt, die zum Bereitstellen der für diese Anleitung erforderlichen GKE-Ressourcen erforderlich sind. Der Vorgang kann einige Minuten dauern. Wenn er abgeschlossen wurde, können Sie fortfahren.

  5. Legen Sie die standardmäßige Compute-Zone für die Bereitstellung der Datenbank und der Rechenressourcen fest:

    gcloud config set compute/zone us-central1-a
    export COMPUTE_ZONE=us-central1-a
    

    In der Anleitung wird us-central1-a für die Zone verwendet. Sie können die Funktion auch in einer Zone Ihrer Wahl bereitstellen. Weitere Informationen finden Sie unter Geografie und Regionen.

ECK in einem GKE-Cluster bereitstellen

In den folgenden Abschnitten richten Sie die erforderliche Infrastruktur und Software ein, um Elastic Cloud in Google Cloud auszuführen.

Dienstkonto zum Erstellen und Verwalten von GKE-Clustern bereitstellen

In diesem Abschnitt erstellen Sie ein Dienstkonto, mit dem Sie den GKE-Cluster im Rahmen dieser Anleitung erstellen und verwalten. Der Cluster ist eine VM-Instanz in Compute Engine, die das Compute Engine-Standarddienstkonto standardmäßig übernimmt. Dieses Dienstkonto hat mehr Berechtigungen als in der Anleitung erforderlich. Als Best Practice wird das Prinzip der geringsten Berechtigung beim Erstellen des Dienstkontos empfohlen.

In den folgenden Schritten erteilen Sie dem Dienstkonto die IAM-Rollen Monitoring-Betrachter (roles/monitoring.viewer), Monitoring-Messwert-Autor (roles/monitoring.metricWriter) und Logautor (roles/logging.logWriter). Sie erteilen ihm außerdem die Rolle „Compute-Administrator“ (roles/compute.admin). Diese Rolle ermöglicht eine vollständige Kontrolle aller Compute Engine-Ressourcen. In dieser Anleitung ist diese Rolle nicht erforderlich. Wenn Sie jedoch dieses Dienstkonto weiterhin mit dem Cluster verwenden und Rechenknoten hinzufügen müssen, können Sie mit der Compute Admin-Rolle die zusätzlichen Rechenressourcen bereitstellen.

  1. Legen Sie in Cloud Shell die Google Cloud-Projekt-ID als Variable fest und geben Sie den Namen des Dienstkontos an:

    export PROJECT_ID=$(gcloud config get-value project 2> /dev/null)
    export SA_ID=eck-sa
    
  2. Erstellen Sie das Dienstkonto und eine neue Variable mit der E-Mail-Adresse des Dienstkontos:

    gcloud iam service-accounts create $SA_ID --display-name=$SA_ID
    export GKE_SA_EMAIL=$(gcloud iam service-accounts list \
        --filter=displayName:"$SA_ID" --format='value(email)')
    

    Es kann einen Moment dauern, bis die Metadaten synchronisiert werden. Bei der Synchronisierung wird die E-Mail-Adresse in der Variablen angezeigt. Bis dahin ist die Variable leer.

  3. Prüfen Sie, ob für die lokale Umgebungsvariable die ID des Dienstkontos festgelegt wurde:

    echo $GKE_SA_EMAIL
    

    Wenn die Ausgabe leer ist, führen Sie den vorherigen export-Befehl noch einmal aus, bis die Variable angegeben wird. Wenn die Umgebungsvariable festgelegt ist, wird die Dienstkonto-ID angezeigt, die wie eine E-Mail-Adresse aussieht.

  4. Nachdem die Metadaten synchronisiert wurden, hängen Sie die Richtlinienbindungen an das Dienstkonto an:

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/logging.logWriter
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/monitoring.metricWriter
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/monitoring.viewer
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/storage.admin
    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$GKE_SA_EMAIL --role roles/compute.admin
    

GKE-Cluster erstellen

Im nächsten Schritt stellen Sie Ihren Cluster bereit. Mit dem folgenden Befehl erstellen Sie einen Cluster mit drei Knoten, wobei der Maschinentyp n1-standard-4 mit 256 GB nichtflüchtigem SSD-Speicher verwendet wird. Sie können diese Ressourcen ändern.

  1. Stellen Sie den Cluster in Cloud Shell bereit:

    gcloud container clusters create "eck-tutorial" \
        --project $PROJECT_ID --zone $COMPUTE_ZONE \
        --service-account $GKE_SA_EMAIL \
        --no-enable-basic-auth --machine-type "n1-standard-4" \
        --image-type "COS" --disk-type "pd-standard" \
        --disk-size "256" --metadata disable-legacy-endpoints=true \
        --num-nodes "3" \
        --enable-ip-alias --no-issue-client-certificate
    
  2. Rufen Sie die Anmeldedaten zur Authentifizierung ab, damit kubectl mit Ihrem neuen Cluster interagieren kann:

    gcloud container clusters get-credentials eck-tutorial
    

Erste Schritte mit ECK

Im nächsten Schritt richten Sie ECK ein, damit es in der bereitgestellten Infrastruktur ausgeführt wird.

Elasticsearch-Operator bereitstellen

Das Muster des Kubernetes Operator ermöglicht benutzerdefinierte Ressourcen in Kubernetes. Der Elasticsearch-Operator verwendet dieses Muster, um Komponenten des Elastic Stack auf Kubernetes bereitzustellen.

  1. Installieren Sie in Cloud Shell die benutzerdefinierten Ressourcendefinitionen (CRD):

    kubectl apply -f https://download.elastic.co/downloads/eck/1.0.1/all-in-one.yaml
    
  2. Optional: Überwachen Sie die Operatorlogs:

    watch kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
    

    In der Regel ist ECK weniger als eine Minute nach der Installation der CRD bereit.

Secret für den Zugriff auf Cloud Storage generieren

Als Nächstes aktivieren Sie den neuen Elasticsearch-Cluster, um Snapshots in einem Cloud Storage-Bucket zu lesen und zu schreiben.

  1. Generieren Sie in Cloud Shell einen Dienstkontoschlüssel und ein Kubernetes Secret:

    gcloud iam service-accounts keys create ~/gcs.client.default.credentials_file \
        --iam-account=$GKE_SA_EMAIL
    
    kubectl create secret generic gcs-credentials \
        --from-file=gcs.client.default.credentials_file
    
  2. Erstellen Sie einen Cloud Storage-Bucket für die Snapshots und rufen Sie den Namen des Buckets auf:

    export GCSBUCKET=$RANDOM-eck-gcs-snapshot && gsutil mb gs://$GCSBUCKET
    

    Kopieren Sie den Namen des Buckets, da Sie ihn später benötigen.

Elastic Stack bereitstellen

  1. Wenden Sie in Cloud Shell eine Beispiel-Clusterspezifikation an, die Server für Elasticsearch, Kibana und APM Server in Ihrem Cluster bereitstellt:

    cat << 'EOF' > ~/eck.yaml
    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: quickstart
    spec:
      version: 7.6.1
      secureSettings:
      - secretName: gcs-credentials
      nodeSets:
      - name: default
        count: 3
        config:
          node.master: true
          node.data: true
          node.ingest: true
          node.store.allow_mmap: false
        podTemplate:
          spec:
            initContainers:
            - name: install-plugins
              command:
              - sh
              - -c
              - |
                bin/elasticsearch-plugin install --batch repository-gcs
    ---
    apiVersion: kibana.k8s.elastic.co/v1
    kind: Kibana
    metadata:
      name: kibana-sample
    spec:
      version: 7.6.1
      count: 1
      elasticsearchRef:
        name: quickstart
    ---
    apiVersion: apm.k8s.elastic.co/v1
    kind: ApmServer
    metadata:
      name: apm-server-sample
    spec:
      version: 7.6.1
      count: 1
      elasticsearchRef:
        name: quickstart
    EOF
    
    kubectl apply -f eck.yaml
    
  2. (Optional) Überwachen Sie den Status der Bereitstellung:

    watch kubectl get elasticsearch,kibana,apmserver
    

    Wenn die Statusanzeigen für die drei Dienste grün sind, wird der Cluster ausgeführt.

Load-Balancer erstellen und bei Kibana anmelden

Standardmäßig haben die Dienste im Cluster nur interne IP-Adressen und können nicht über das öffentliche Internet aufgerufen werden. Wenn Sie den Befehl kubectl get services ausführen, sehen Sie, dass alle Dienste eine interne IP-Adresse und keine externe IP-Adresse haben. Wenn Sie eine Verbindung zu Kibana über Ihren Webbrowser herstellen möchten, müssen Sie die Anwendung verfügbar machen. Dafür gibt es mehrere Möglichkeiten, die jeweils ihre eigenen Vor- und Nachteile haben. In dieser Anleitung erstellen Sie einen Load-Balancer.

  1. Erstellen Sie den Load-Balancer in Cloud Shell:

    kubectl expose deployment kibana-sample-kb \
        --type=LoadBalancer \
        --port 5601 \
        --target-port 5601
    

    Dieser Load-Balancer nimmt Anfragen an Port 5601 an. Dies ist der Standardport für den Kibana-Dienst.

  2. Suchen Sie nach einem neuen Load-Balancer-Dienst mit dem Namen kibana-sample-kb:

    watch kubectl get services
    

    Warten Sie, bis die externe IP-Adresse bereitgestellt wurde.

  3. Wenn die Adresse angezeigt wird, kopieren Sie die URL in die Variable EXTERNAL_IP und fügen dann die gesamte URL in den Browser ein, um das Kibana-Portal zu laden:

    https://EXTERNAL_IP:5601

    Wenn Sie Google Chrome verwenden, klicken Sie auf Erweitert und dann auf Trotzdem fortfahren.

  4. Melden Sie sich mit dem elastic-Nutzernamen im Portal an. Führen Sie in Cloud Shell den folgenden Befehl aus, um das Passwort zu ermitteln und eine Variable festzulegen:

    PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode) && echo $PASSWORD
    

    Wenn Sie dieses Passwort später ändern möchten, sollten Sie es an einem sicheren Ort speichern.

Beispieldaten laden und vorbereiten

Wenn Sie sich zum ersten Mal in Kibana anmelden, werden Sie aufgefordert, mit Beispieldaten zu starten.

  1. Klicken Sie im Kibana-Portal auf Try our sample data:

    Grafik: Das Kibana-Anmeldefenster zeigt eine Nachricht und eine Schaltfläche zum Testen von Beispieldaten.

  2. Klicken Sie auf der Karte Sample Flight Data auf Add Data, um die Beispielflugdaten hinzuzufügen.

    Sehen Sie sich das Dashboard und die Karte an, damit Sie sich mit den Beispielen vertraut machen.

Elasticsearch-Daten abfragen

Als Nächstes prüfen Sie, ob Sie die Elasticsearch-Daten abfragen können. Dazu leiten Sie zuerst Port 9200 (den Port, der vom Elasticsearch-Dienst überwacht wird) vom ECK-Cluster an Ihren lokalen Rechner weiter. Dann nehmen Sie Testabfragen für die Daten vor.

  1. Aktivieren Sie in Cloud Shell die Portweiterleitung:

    kubectl port-forward service/quickstart-es-http 9200
    
  2. Klicken Sie in der Menüleiste von Cloud Shell auf Neuen Tab öffnen. Eine zweite Cloud Shell-Sitzung wird gestartet.

  3. Speichern Sie das Passwort des Elastic-Nutzers als lokale Variable:

    PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode)
    
  4. Testen Sie die Verbindung:

    curl -u "elastic:$PASSWORD" -k "https://localhost:9200"
    

    Die Ausgabe sieht etwa so aus:

    {
      "name" : "quickstart-es-default-0",
      "cluster_name" : "quickstart",
      "cluster_uuid" : "ifdFjTixQ9q7sVc7uUpSnA",
      "version" : {
        "number" : "7.6.1",
        "build_flavor" : "default",
        "build_type" : "docker",
        "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
        "build_date" : "2020-02-29T00:15:25.529771Z",
        "build_snapshot" : false,
        "lucene_version" : "8.4.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
  5. Zählen Sie die Anzahl der Dokumente in Ihrem Beispiel-Dataset:

    curl -u "elastic:$PASSWORD" -k
    "https://localhost:9200/kibana_sample_data_flights/_count"
    

    Die Ausgabe sieht dann ungefähr so aus:

    {"count":13059,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}
    

    Die Ausgabe gibt an, dass der Index 13.059 Dokumente enthält.

  6. Schließen Sie die zweite Cloud Shell-Terminalsitzung, behalten Sie jedoch Ihre ursprüngliche Sitzung bei.

  7. Drücken Sie in der ursprünglichen Cloud Shell-Sitzung Strg+C, um die Portweiterleitung zu beenden, da sie nicht mehr benötigt wird.

Snapshot-Registry registrieren

Damit Sie Snapshots erstellen und wiederherstellen können, müssen Sie ein Snapshot-Repository registrieren.

  1. Klicken Sie im Kibana-Portal im Menü Elasticsearch auf Snapshot und Wiederherstellung und dann auf Repository registrieren:

    Grafik: Über den Link „Snapshot und Wiederherstellung“ wird eine Repository-Registry-Seite geöffnet.

  2. Geben Sie auf der Seite Repository registrieren den Wert examplerepo in das Feld Name ein, wählen Sie Google Cloud Storage als Repository-Typ aus und klicken Sie dann auf Weiter:

    Grafik: Auf der Seite „Repository registrieren“ werden Optionen für Repository-Typen angezeigt.

  3. Geben Sie die folgenden Konfigurationsdetails ein:

    • Geben Sie bei Client den Wert default ein.
    • Geben Sie unter Bucket den Bucket-Namen ein, den Sie zuvor unter Secret für den Zugriff auf Cloud Storage generieren erstellt haben.

      Wenn Sie den Namen des Buckets vergessen haben, gehen Sie so vor:

      1. Listen Sie in Cloud Shell alle Buckets auf:

        gsutil ls
        

        Gehen Sie die Liste durch, um Ihren Bucket zu finden.

      2. Geben Sie im Portal den Bucket-Namen ohne das Benennungsschema gs:// aus dem vorherigen Schritt ein. Wenn Ihr Bucket-URI beispielsweise gs://1234-eck-gcs-snapshot lautet, geben Sie 1234-eck-gcs-snapshot ein.

    • Lassen Sie die anderen Felder leer.

  4. Klicken Sie auf Registrieren.

  5. Klicken Sie im Detailbereich des Repositorys auf Repository überprüfen, um zu prüfen, ob eine Verbindung besteht. Das folgende Diagramm zeigt eine erfolgreiche Verbindung:

    Grafik: Der Detailbereich für das registrierte Repository enthält den Repository-Namen, die Anzahl der Snapshots und Einstellungen wie den Bucket- und Clientnamen.

Erste Schritte mit Elastic Cloud

Jetzt können Sie einen gehosteten Cluster in Elastic Cloud einrichten und die Daten zu diesem neuen Cluster migrieren.

Cluster starten

  1. Rufen Sie in Cloud Marketplace die Seite Elastic Cloud auf.

    Zu Elastic Cloud

  2. Wenn Sie mit den auf der Seite angezeigten Preisen einverstanden sind, klicken Sie auf Kaufen und dann auf Abonnieren.

  3. Klicken Sie auf Aktivieren, um die APIs zu aktivieren. Sie werden zur Seite API und Dienste für den Elastic Cloud-Dienst weitergeleitet.

  4. Klicken Sie auf Über Elastic verwalten:

    Grafik: In der Elastic Cloud-Übersicht werden Dienstdetails und Verwaltungsoptionen angezeigt.

  5. Klicken Sie auf Bestätigen, um zu bestätigen, dass Sie zur Elastic Cloud-Website weitergeleitet werden sollen.

  6. Füllen Sie das Formular aus, um Ihr Elastic Cloud-Konto zu registrieren. Ihr E-Mail-Konto wurde bestätigt.

  7. Erstellen Sie ein Passwort, wenn Sie dazu aufgefordert werden, und melden Sie sich an.

  8. Klicken Sie im Hauptportal für Elastic Cloud auf Deployment erstellen.

  9. Gehen Sie so vor:

    • Legen Sie für Ihren Cluster den Namen example-ec fest.
    • Wählen Sie Google Cloud als Cloud-Plattform aus.
    • Wählen Sie us-central1 als Region aus.
    • Behalten Sie bei allen anderen Optionen die Standardwerte bei.
  10. Klicken Sie auf Deployment erstellen.

Nach einigen Minuten wird der funktionsfähige Cluster in Elastic Cloud bereitgestellt und Sie werden automatisch zum Deployment-Dashboard für Ihre Instanz weitergeleitet.

Snapshot von ECK vorbereiten

Im nächsten Schritt erstellen Sie einen Snapshot Ihrer ECK-Instanz und migrieren ihn in Ihre Elastic Cloud-Instanz.

ECK-Snapshot erstellen

Zum Erstellen eines Snapshots müssen Sie im ECK-Cluster eine Snapshot-Richtlinie einrichten. Nachdem Sie einen einzelnen Snapshot erstellt haben, wird diese Richtlinie gelöscht, da sie nur für diese einmalige Migration erforderlich ist.

  1. Melden Sie sich in einem Webbrowser im ECK-Cluster in Kibana an. Kopieren Sie dazu die externe IP-Adresse des Load-Balancers, den Sie zuvor in Ihrem GKE-Cluster erstellt haben.

  2. Klicken Sie im Menü Elasticsearch auf Snapshot und Wiederherstellung:

    Grafik: Auf der Seite „Snapshot und Wiederherstellung“ wird die Meldung angezeigt, dass keine Snapshots eingerichtet sind.

  3. Klicken Sie auf Richtlinie erstellen.

  4. Geben Sie im Feld Richtlinienname den Namen onetime-migration ein.

  5. Geben Sie im Feld Snapshotname <onetime-migration-{now/d}> ein.

  6. Behalten Sie für alle anderen Einstellungen den Standardwert bei und klicken Sie auf Weiter:

    Grafik: Auf der Seite für das Erstellen der Richtlinie werden vier Schritte angezeigt: Logistik, Einstellungen, Aufbewahrung und Überprüfung.

  7. Behalten Sie auf der Seite Snapshot-Einstellungen die Standardwerte bei und klicken Sie dann auf Weiter.

  8. Wenn Sie zur Eingabe einer Aufbewahrungsrichtlinie für Snapshots aufgefordert werden, lassen Sie alle Felder leer und klicken Sie dann auf Weiter. Da Sie einen einmaligen Snapshot erstellen, ist keine Aufbewahrungsrichtlinie erforderlich.

  9. Klicken Sie auf der Seite Richtlinie überprüfen auf Richtlinie erstellen.

  10. Klicken Sie im Zusammenfassungsbereich der Richtlinie auf Schließen.

  11. Klicken Sie auf der Übersichtsseite Snapshot und Wiederherstellung unter Aktionen auf Jetzt ausführen. Klicken Sie im neuen Fenster auf Richtlinie ausführen:

    Grafik: Der Tab mit den Richtlinien enthält eine Wiedergabeschaltfläche zum Ausführen der Richtlinie.

    Klicken Sie zum Bestätigen des neuen Snapshots auf dem Tab Snapshots auf den mit Zeitstempel versehenen Snapshot, der mit onetime-migration beginnt. Die Snapshot-Details werden angezeigt:

    Grafik: Auf dem Tab „Snapshot“ werden Snapshots aufgelistet, auf die geklickt werden kann, um Details wie den Snapshot-Status und Indexe zu erhalten.

Snapshot-Richtlinie löschen

Da sich der Snapshot der ECK-Instanz nun in Cloud Storage befindet, können Sie die Snapshot-Richtlinie löschen.

  1. Klicken Sie im Kibana-Portal auf Verwaltung, dann auf Snapshot und Wiederherstellung und anschließend auf den Tab Richtlinien.
  2. Klicken Sie im Abschnitt Aktionen bei der Richtlinie zur einmaligen Migration auf Löschen.
  3. Klicken Sie auf Richtlinie löschen, um zu bestätigen, dass Sie die Richtlinie löschen möchten.

Das Löschen der Richtlinie wirkt sich nicht auf Snapshots aus, die Sie mit der Richtlinie erstellt haben. Es werden jedoch keine Snapshots mehr auf der Grundlage dieser Richtlinie erstellt.

Snapshot in Elastic Cloud verschieben

Im nächsten Schritt stellen Sie den neu erstellten Daten-Snapshot in Ihrer Instanz in Elastic Cloud wieder her.

Neues Dienstkonto erstellen und konfigurieren

Zuerst erstellen Sie ein Dienstkonto, das Elastic Cloud für den Zugriff auf Cloud Storage verwendet. Anschließend aktivieren Sie den Zugriff.

  1. Erstellen Sie in der Cloud Shell das Dienstkonto:

    gcloud iam service-accounts create ecloud-sa \
        --display-name "Elasticcloud Service Account"
    
    export ec_sa=$(gcloud iam service-accounts list \
        --filter=displayName:"Elasticcloud Service Account" \
        --format='value(email)')
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member serviceAccount:$ec_sa --role roles/storage.admin
    
    gsutil iam ch serviceAccount:$ec_sa:roles/storage.admin gs://$GCSBUCKET
    
  2. Erstellen Sie einen Schlüssel für dieses Dienstkonto und laden Sie ihn auf Ihren lokalen Clientcomputer herunter:

    gcloud iam service-accounts keys create ~/ec-sa.json --iam-account $ec_sa
    

    Die Ausgabe sieht etwa so aus:

    created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as
    [/usr/home/username/ec-sa.json] for
    [ecloud-sa@project-id.iam.gserviceaccount.com]
    

    Kopieren Sie den absoluten Pfad und den Dateinamen aus der Ausgabe. Sie werden benötigt, um die Datei herunterzuladen.

  3. Klicken Sie auf Mehr und dann auf Datei herunterladen:

    Grafik: Wenn Sie auf „Mehr“ klicken, werden mehrere Optionen angezeigt, darunter „Datei hochladen“ und „Datei herunterladen“.

  4. Geben Sie den absoluten Pfad und Dateinamen des Schlüssels ein, den Sie im vorherigen Schritt kopiert haben, und klicken Sie auf Herunterladen. Der JSON-Schlüssel wird auf Ihren lokalen Rechner heruntergeladen.

  5. Klicken Sie auf der Seite „Elasticsearch Service“ bei der Bereitstellung in Elastic Cloud auf Sicherheit und dann auf Einstellungen hinzufügen:

    Grafik: Die Schlüsselspeicher-Nachricht gibt an, dass ein Schlüssel beim Konfigurieren vertraulicher Einstellungen anstelle eines Secrets verwendet werden kann.

  6. Geben Sie unter Einstellungsname gcs.client.default.credentials_file ein und wählen Sie dann JSON-Block/Datei aus.

  7. Öffnen Sie mit einem Texteditor auf Ihrem lokalen Rechner den heruntergeladenen JSON-Schlüssel, kopieren Sie den Text in das Feld Secret und klicken Sie dann auf Speichern. Der neue Eintrag wird im Schlüsselspeicher angezeigt.

  8. Klicken Sie auf Passwort zurücksetzen, um ein neues Passwort für den Nutzer elastic anzufordern, und notieren Sie es.

  9. Klicken Sie unter Sicherheitsänderungen in Kibana vornehmen auf Kibana.

  10. Melden Sie sich mit diesen Anmeldedaten in Kibana an.

  11. Wenn Sie dazu aufgefordert werden, klicken Sie auf Erkunden und laden Sie keine Beispieldaten.

Repository erstellen

  1. Klicken Sie im Kibana-Portal auf das Menüsymbol () und dann auf Stack Management:

    Grafik: Das Stack Management wird unter „Verwaltung“ aufgeführt.

  2. Klicken Sie unter Elasticsearch auf Snapshot und Wiederherstellung.

  3. Klicken Sie auf den Tab Repositories und dann auf Repository registrieren:

    Grafik: Der Tab „Repositories“ enthält eine Schaltfläche zum Registrieren eines Repositorys.

  4. Geben Sie als Repository-Namen examplerepo ein.

  5. Wählen Sie Google Cloud Storage aus.

  6. Klicken Sie auf Next (Weiter).

  7. Geben Sie im Feld Bucket den Bucket-Namen ein, den Sie zuvor unter Secret für den Zugriff auf Cloud Storage generieren erstellt haben.

    Geben Sie den Bucket-Namen ohne das Benennungsschema gs:// ein. Wenn Ihr Bucket-URI beispielsweise gs://1234-eck-gcs-snapshot lautet, geben Sie 1234-eck-gcs-snapshot ein.

  8. Lassen Sie die anderen Felder leer und klicken Sie auf Registrieren.

    Klicken Sie auf Repository überprüfen, um die Verbindung zu prüfen.

  9. Klicken Sie auf Schließen.

Snapshot wiederherstellen

  1. Klicken Sie im Kibana-Portal auf den Tab Snapshots und wählen Sie dann im Drop-down-Menü Repository die Option examplerepo aus:

    Grafik: Drop-down-Menü „Repository“

    Sie sehen den Snapshot, den Sie zuvor in ECK erstellt haben.

  2. Klicken Sie unter Aktionen auf Wiederherstellen.

  3. Deaktivieren Sie die Option Alle Indexe, einschließlich Systemindexe:

    Grafik: Auf der Seite mit den Wiederherstellungsdetails ist der Schieberegler in der Position „Aus“, was durch ein „x“ veranschaulicht wird.

  4. Klicken Sie auf Auswahl aufheben und wählen Sie dann kibana_sample_data_flights, ilm-history-1-000001 und alle Indexe mit das Präfix apm- aus. Wählen Sie keinen Index aus, der einen Punkt vor seinem Namen hat, da es sich um einen Systemindex handelt.

    Wenn Sie versuchen, die Standardeinstellungen wiederherzustellen, erhalten Sie eine Fehlermeldung ähnlich der folgenden:

    [snapshot_restore_exception] [examplerepo:onetime-migration2020.07.07-mt2pg1p7sb2sci9fs-yxlw/7OdEOWYVRQyIh9S2NaPypQ] cannot restore index [.security-7] because an open index with same name already exists in the cluster. Either close or delete the existing index or restore the index under a different name by providing a rename pattern and replacement name
    

    Dieser Fehler tritt auf, weil Indexe nicht indexiert werden können und sollten. Wenn Sie der Anleitung folgen, funktioniert Kibana möglicherweise nicht mehr richtig. Das Schließen oder Löschen eines vorhandenen offenen Indexes ist nur bei Nicht-Systemindexen möglich.

  5. Behalten Sie in allen anderen Feldern die Standardwerte bei und klicken Sie auf Weiter.

  6. Übernehmen Sie im Menü Indexeinstellungen alle Standardeinstellungen und klicken Sie dann auf Weiter.

  7. Klicken Sie auf der Seite Details wiederherstellen auf Snapshot wiederherstellen.

    Nach Abschluss der Wiederherstellung wird das Dashboard Status wiederherstellen angezeigt. Hier sehen Sie, dass Ihre Daten wiederhergestellt wurden.

  8. Klicken Sie unter Kibana auf Indexmuster, um den Index wiederherzustellen.

  9. Klicken Sie auf Indexmuster erstellen.

    Es werden einige verfügbare Indexe angezeigt. Suchen Sie den Index kibana_sample_data_flights, den ECK automatisch erstellt hat.

  10. Geben Sie kib in das Feld Indexmuster ein. Beachten Sie, dass kibana_sample_data_flights mit dem Muster übereinstimmt.

  11. Klicken Sie auf Next step (Nächster Schritt).

  12. Wählen Sie im Drop-down-Menü Feldname des Zeitraumfilters die Option Zeitstempel aus.

  13. Klicken Sie auf Indexmuster erstellen.

  14. (Optional) Wenn Sie auf Entdecken klicken, sehen Sie die Rohdaten so wie zuvor in der ECK-Umgebung.

  15. Scrollen Sie im Hauptmenü bis zum Ende des Menüs und klicken Sie unter Verwaltung auf Entwicklertools.

  16. Geben Sie links GET /kibana_sample_data_flights/_count ein und klicken Sie auf „Anfrage senden“. Die Ausgabe zeigt, dass 13.059 Dokumente gezählt wurden, was der Anzahl der im ECK-Index gefundenen Dokumente entspricht.

Bereinigen

Wenn Sie vermeiden möchten, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, können Sie das dafür erstellte Google Cloud-Projekt löschen.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte