Direkt zum Inhalt

Wie verwende ich ISM, um wenig Speicherplatz in Amazon OpenSearch Service zu verwalten?

Lesedauer: 8 Minute
0

Mein Amazon-OpenSearch-Service-Cluster hat wenig Speicherplatz. Ich möchte Index State Management (ISM) verwenden, um meinen Speicherplatz zu verwalten.

Kurzbeschreibung

Um zu wenig Speicherplatz zu beheben, verwende ISM, um benutzerdefinierte Verwaltungsrichtlinien zu definieren und einen Rollover-Vorgang durchzuführen, z. B. um alte Indizes automatisch zu löschen. Beim Rollover-Vorgang wird ein Ziel auf einen neuen Index übertragen, wenn ein vorhandener Index die vorgegebene Bedingung erfüllt. ISM wertet das Datum und die Uhrzeit der Indexerstellung in jedem Status aus, um zu ermitteln, wann die zugehörigen Aktionen gestartet werden müssen.

Nachdem du eine Richtlinie an einen Index angefügt hast, beginnt der Index mit der Initialisierung und wechselt dann in verschiedene Status, bis der Rollover-Vorgang abgeschlossen ist. Weitere Informationen zum Rollover-Vorgang findest du unter Rollover auf der Open Distro-Website.

Lösung

Den Rollover-Index einrichten

Gehe wie folgt vor, um ein Indexmuster in OpenSearch Dashboards zu erstellen:

  1. Öffne die OpenSearch-Service-Konsole.
  2. Greife auf OpenSearch Dashboards zu.
    Hinweis: Den Link zu OpenSearch Dashboards findest du in der Domain-Übersicht der OpenSearch-Servicekonsole.
  3. Wähle Management.
  4. Wähle Index Patterns (Indexmuster) und dann Create index pattern (Indexmuster erstellen) aus.
  5. Erstelle einen Index und einen Alias mit einem Indexformat, das dem Indexmuster ^.*-\d+$ entspricht.
    Wichtig: Um einen Fehler zu vermeiden, stelle sicher, dass du den Rollover-Alias richtig konfigurierst.

Weitere Informationen findest du unter Index patterns (Indexmuster) auf der OpenSearch-Website.

Wenn du einen Rollover-Vorgang in die ISM-Richtlinie aufnimmst, musst du auch einen Rollover-Alias angeben. Weitere Informationen findest du unter Warum schlägt die Rollover-Index-Aktion in meiner ISM-Richtlinie in OpenSearch Service immer wieder fehl?

Im folgenden Beispiel wird test-index-000001 erstellt und mit mehreren Dokumenten gefüllt. Da das Beispiel einen neuen Index verwendet, auf den das Ziel übertragen wurde, muss das Indexformat dem Muster des Indexes entsprechen:

PUT test-index-000001/_doc/1
{
  "user": "testuser",
  "post_date": "2020-05-08T14:12:12",
  "message": "ISM testing"
}

Im folgenden Beispiel wird der test-index-Alias erstellt, der auf deinen neuen Index verweist:

POST /_aliases{
  "actions": [
    {
      "add": {
        "index": "test-index-000001",
        "alias": "test-index"
      }
    }
  ]
}

Eine ISM-Richtlinie erstellen

Erstelle eine ISM-Richtlinie für den Rollover-Vorgang in OpenSearch Dashboards.

Beispielrichtlinien

Wechsle in den „warm“ (nicht vollständig einsatzbereit)-Zustand:

{  "policy": {
    "policy_id": "Roll_over_policy",
    "description": "A test policy. DO NOT USE FOR PRODUCTION!",
    "schema_version": 1,
    "error_notification": null,
    "default_state": "hot",
    "states": [
      {
        "name": "hot",
        "actions": [
          {
            "rollover": {
              "min_size": "10mb"
            }
          }
        ],
        "transitions": [
          {
            "state_name": "warm"
          }
        ]
      },
      {
        "name": "warm",
        "actions": [
          {
            "replica_count": {
              "number_of_replicas": 2
            }
          }
        ],
        "transitions": []
      }
    ]
  }
}

Die vorhergehende ISM-Richtlinie definiert die Zustände hot (sofort einsatzbereit) und warm (nicht vollständig einsatzbereit). Standardmäßig befindet sich der Index im Zustand hot. Der Index geht in den Zustand warm über, wenn die Größe des Indexes 10 MB erreicht und ISM auf einen neuen Index übertragen wird. Im Zustand warm kannst du verschiedene Aktionen für den Index ausführen. Du kannst beispielsweise die Anzahl der Replikate auf zwei ändern oder einen force_merge-Vorgang ausführen.

Gehe nach einigen Tagen zum Löschen des Index über:

{  "policy": {
    "policy_id": "Roll_over_policy",
    "description": "A test policy. DO NOT USE FOR PRODUCTION!",
    "schema_version": 1,
    "error_notification": null,
    "default_state": "hot",
    "states": [
      {
        "name": "hot",
        "actions": [
          {
            "rollover": {
              "min_size": "10mb"
            }
          }
        ],
        "transitions": [
          {
            "state_name": "delete",
            "conditions": {
              "min_index_age": "30d"
            }
          }
        ]
      },
      {
        "name": "delete",
        "actions": [
          {
            "delete": {}
          }
        ],
        "transitions": []
      }
    ]
  }
}

Die vorhergehende ISM-Richtlinie definiert die Zustände hot (sofort einsatzbereit) und delete (löschen). Standardmäßig befindet sich der Index im Zustand hot. Sobald der Index 10 MB erreicht hat, wird ISM auf einen neuen Index übertragen. Dann, nach 30 Tagen, wechselt der Index in den Zustand delete (löschen) und der Index wird gelöscht.

Weitere Beispielrichtlinien findest du unter Beispielrichtlinien.

Die Richtlinie an einen Index anfügen

Führe die folgenden Schritte aus:

  1. Öffne die OpenSearch-Service-Konsole.
  2. Verwende den Link in der Domain-Übersicht der OpenSearch-Servicekonsole, um auf OpenSearch Dashboards zuzugreifen.
  3. Wähle die Registerkarte Index Management (Indexverwaltung).
  4. Wähle den Index aus, an den du die ISM-Richtlinie anfügen möchtest, z. B. test-index-000001.
    Hinweis: Du findest deinen Index unter Policy Managed Indices (Richtlinienverwaltete Indizes).
  5. Wähle Apply policy (Richtlinie anwenden).
  6. (Optional) Wenn die Richtlinie Aktionen vorsieht, für die ein Alias erforderlich ist, gib den Alias an und wähle dann Apply (Anwenden) aus.

Du kannst auch die folgende API verwenden, um die ISM-Richtlinie anzufügen:

POST _plugins/_ism/add/index_name
{ "policy_id": "policy_name"}

Hinweis: Ersetze index_name durch den Namen deines Indexes und policy_name durch den Namen deiner Richtlinie.

Weitere Informationen findest du unter Add policy (Richtlinie hinzufügen) auf der OpenSearch-Website.

Die Richtlinie eines vorhandenen Indexes aktualisieren

ISM-Richtlinien in OpenSearch verwenden die Versionsverwaltung. Wenn du eine Richtlinie aktualisierst, verweisen neu erstellte Indizes automatisch auf die neueste Version der Richtlinie. Indizes, die du vor der Aktualisierung erstellst, verweisen jedoch weiterhin auf die vorherige Version. Um die aktualisierte Richtlinie auf vorhandene Indizes anzuwenden, musst du zuerst die alte Richtlinie aus den Indizes entfernen und dann die aktualisierte Version erneut anwenden.

Gehe wie folgt vor, um die ISM-Richtlinie erneut auf einen vorhandenen Index anzuwenden:

  1. Öffne die OpenSearch-Service-Konsole.
  2. Verwende den Link in der Domain-Übersicht der OpenSearch-Servicekonsole, um auf OpenSearch Dashboards zuzugreifen.
  3. Wähle die Registerkarte Index Management (Indexverwaltung).
  4. Wähle im Abschnitt Policy Managed Indices (Richtlinienverwaltete Indizes) die Option Change Policy (Richtlinie ändern) aus.
  5. Wähle die Indizes aus, auf die du die Änderung anwenden möchtest, z. B. test-index-000001.
  6. Wähle den aktuellen Status der Indizes.
  7. Wähle im Abschnitt Choose New Policy (Neue Richtlinie auswählen) Update policy name (Namen der Richtlinie aktualisieren) aus.
  8. (Optional) Um die Indizes nach der Aktualisierung der Richtlinie in einen anderen Zustand zu ändern, wähle Switch indices to the following state after the policy takes effect (Indizes in den folgenden Zustand ändern, nachdem die Richtlinie in Kraft getreten ist). Wähle dann den Zustand in der Dropdown-Liste aus.

Du kannst auch die folgende API verwenden, um die ISM-Richtlinie zu aktualisieren:

POST _plugins/_ism/change_policy/indexname
{ "policy_id": "policy_1"}

Hinweis: Ersetze index_name durch den Namen deines Indexes und policy_1 durch den Namen deiner Richtlinie.

Weitere Informationen findest du unter Update managed index policy (Richtlinie für verwaltete Indizes aktualisieren) auf der OpenSearch-Website.

Eine Vorlage hinzufügen, um die Richtlinie an mehrere Indizes anzufügen

Um eine Richtlinie an mehrere Indizes anzufügen, die dem Indexmuster entsprechen, erstelle und verwende eine ISM-Vorlage.

Verwende den folgenden API-Aufruf, um die Richtlinie zu erstellen:

PUT _plugins/_ism/policies/test_policy

Beispiel für eine Richtlinie:

{
 "policy": {
  "description": "A test policy. DO NOT USE FOR PRODUCTION!",
  "last_updated_time": 1642027350875,
  "schema_version": 1,
  "error_notification": null,
  "default_state": "hot",
  "states": [
    {
      "name": "hot",
      "actions": [
        {
          "rollover":{
            "min_size": "10mb"
          }
        }
      ],
      "transitions":[
        {
          "state_name": "warm"
        }
      ]
    },
    {
      "name": "warm",
      "actions": [
        {
          "replica_count":{
          "number_of_replicas": 2
        }
      }
    ],
    "transitions": []
      }
    ],
        "ism_template":{
        "index_patterns":[
        "test*"
    ],
        "priority": 100
   }
  }
}

Verwende den folgenden Beispiel-API-Aufruf, um zu überprüfen, ob die Vorlage test_policy an den neu erstellten Index angefügt ist:

GET _plugins/_ism/explain/test-index-000002

Erwartete Ausgabe:

{
  "test-index-000002": {
    "index.plugins.index_state_management.policy_id": "test_policy",
    "index.opendistro.index_state_management.policy_id": "test_policy",
    "index": "test-index-000002",
    "index_uuid": "CZrQ-RzRS8SmiWIuyqFmVg",
    "policy_id": "test_policy",
    "enabled": true
  },
  "total_managed_indices": 1
}

Weitere Informationen findest du unter Explain index (Index erklären) auf der OpenSearch-Website.

Hinweis: Der Index wird auch im Abschnitt Managed Indices (Verwaltete Indizes) auf der Registerkarte Index Management (Indexverwaltung) von OpenSearch Dashboards angezeigt.

Den Zustand der ISM-Richtlinien prüfen

Bei einem Rollover-Vorgang ist ein Index abgeschlossen, nachdem der Index übertragen wurde, in den Zustand warm übergeht und die Anzahl der Replikate aktualisiert wurde.

Wenn du eine ISM-Richtlinie verwendest und der Index nicht korrekt migriert wird, überprüfe den Status des ISM.

Verwende die folgende API, um den Status der Migration für einen Index zu überprüfen:

GET _ultrawarm/migration/index_name/_status

Hinweis: Ersetze index_name durch den Namen des Indexes, dessen Status du überprüfst.

Verwende die folgende API, um den Migrationsstatus aller Indizes abzurufen:

GET _ultrawarm/migration/_status?

Hinweis: Um Daten vom Hot-Storage in den Warm- oder Cold-Storage zu verschieben, aktiviere den Warm- und Cold-Storage in der Domain, bevor du die ISM-Richtlinie konfigurierst. Die ISM-Richtlinie muss auch ausdrücklich die Migrations-Aktion zum Übergang eines Indexes zwischen Speicherebenen beinhalten. Ohne die Migrations-Aktion ändert sich nur der Name des Richtlinienzustands. Der Index befindet sich weiterhin im Hot-Storage.

Konfiguriere eine Warm-Migrationsaktion:

{
        "name": "warm",
        "actions": [{
          "warm_migration": {},
          "retry": {
            "count": 5,
            "delay": "1h"
          }

Konfiguriere eine Cold-Migrationsaktion:

{
        "name": "cold",
        "actions": [{
            "cold_migration": {
              "timestamp_field": "<your timestamp field>"
            }
          }
AWS OFFICIALAktualisiert vor 4 Monaten