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

Lesedauer: 7 Minute
0

In meinem Amazon OpenSearch Service-Cluster wird nur noch wenig Speicherplatz zur Verfügung gestellt.

Kurzbeschreibung

Index State Management (ISM) ermöglicht es Ihnen, Routineaufgaben zu automatisieren und sie dann auf Indizes und Indexmuster in OpenSearch Service anzuwenden. Mit ISM können Sie benutzerdefinierte Verwaltungsrichtlinien definieren, die Ihnen helfen, Probleme wie den geringen Speicherplatz zu bewältigen. Sie können beispielsweise einen Rollover-Vorgang und eine ISM-Richtlinie verwenden, um das Löschen alter Indizes auf der Grundlage von Bedingungen wie der Indexgröße zu automatisieren. Beim Rollover-Vorgang wird ein Ziel auf einen neuen Index übertragen, wenn ein vorhandener Index die definierte Bedingung erfüllt.

Gehen Sie wie folgt vor, um mithilfe eines Vorgangs wie rollover eine ISM-Richtlinie für ein Indexmuster zu erstellen:

  1. Richten Sie Ihren rollover-Index ein.

2.Erstellen Sie eine ISM-Richtlinie.

3.Hängen Sie die Richtlinie an einen Index an.

4.Fügen Sie die Vorlage hinzu.

Nachdem Sie Ihre Richtlinie an einen Index angehängt haben, beginnt Ihr Index mit der Initialisierung und wechselt dann in verschiedene Status, bis der Rollover-Vorgang abgeschlossen ist. Weitere Informationen zum Rollover -Vorgang finden Sie unter Rollover auf der Open Distro for OpenSearch-Website.

Behebung

Richten Sie Ihren Rollover-Index ein

Erstellen Sie einen Index und einen Alias, wobei das Indexformat dem Indexmuster entspricht:

^.*-\d+$

**Wichtig:**Stellen Sie sicher, dass Sie Ihren Rollover-Alias korrekt konfigurieren. Andernfalls erhalten Sie eine Fehlermeldung.

Im folgenden Beispiel wird „test-index-000001" erstellt und mit mehreren Dokumenten gefüllt. Da in diesem Beispiel ein Rollover-Index verwendet wird, muss das Indexformat dem Muster entsprechen.

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

Für einen Rollover-Index ist ein Alias erforderlich, das auf den neuesten Index verweist. Das bedeutet, dass Sie mit der folgenden Abfrage einen Alias („Testindex“) erstellen müssen:

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

Hinweis: Wenn ein Rollover-Vorgang in der ISM-Richtlinie enthalten ist, müssen Sie den Rollover-Alias angeben. Weitere Informationen finden Sie unter Warum schlägt die Rollover-Indexaktion in meiner ISM-Richtlinie in Amazon OpenSearch Service immer wieder fehl?

Erstellen Sie eine ISM-Richtlinie

Wählen Sie in OpenSearch Dashboards die Registerkarte Indexverwaltung und erstellen Sie dann eine ISM-Richtlinie für Ihren Rollover-Vorgang.

Zum Beispiel:

In den warmen Zustand wechseln

{
  "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": []
      }
    ]
  }
}

In dieser ISM-Richtlinie sind zwei Zustände definiert: „heiß“ und „warm“. Standardmäßig befindet sich Ihr Index im Status „heiß“. Der Index geht in den „warmen“ Zustand über, sobald die Größe des Index 10 MB erreicht und ein neuer Rollover -Index erstellt wird. Im „warmen“ Zustand können Sie verschiedene Aktionen für den Index ausführen, z. B. die Replikatanzahl auf zwei ändern oder einen force_merge-Vorgang ausführen.

Rollover zum Löschen nach einigen Tagen

{
  "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": []
      }
    ]
  }
}

In dieser ISM-Richtlinie gibt es zwei definierte Zustände: „hot“ und „delete“. Standardmäßig befindet sich der Index im Status „heiß“. Nachdem der Index 10 MB erreicht hat, wird ein neuer Rollover-Index erstellt. Dann, nach 30 Tagen, wechselt der Index in den Status „Löschen“ und der Index wird gelöscht.

Richtlinie an einen Index anhängen

Gehen Sie wie folgt vor, um Ihre ISM-Richtlinie an einen Index anzuhängen:

1.Öffnen Sie OpenSearch Dashboards von der OpenSearch Service Console aus. Einen Link zu OpenSearch Dashboards finden Sie in der Domain-Zusammenfassung Ihrer OpenSearch Service-Konsole.

2.Wählen Sie den Tab Indexverwaltung.

3.Wählen Sie den Index aus, an den Sie Ihre ISM-Richtlinie anhängen möchten (zum Beispiel: „test-index-000001").

4.Wählen Sie Richtlinie anwenden.

5.(Optional) Wenn in Ihrer Richtlinie Aktionen angegeben sind, für die ein Alias erforderlich ist, geben Sie den Alias an und wählen Sie dann Anwenden. Ihr Index erscheint unter der Liste der Policy Managed Indices.

Aktualisierung der Richtlinie eines vorhandenen Indexes

Hinweis : Jede Aktualisierung der bestehenden Richtlinie gilt nicht automatisch für bestehende Indizes, sondern erfordert eine erneute Anwendung derselben Richtlinie auf die Indizes.

Gehen Sie wie folgt vor, um Ihre ISM-Richtlinie erneut auf einen vorhandenen Index anzuwenden:

1.Öffnen Sie OpenSearch Dashboards von der OpenSearch Service Console aus.

2.Wählen Sie den Tab Indexverwaltung.

3.    Wählen Sie im Abschnitt Policy Managed Indices die Option Change Policy aus.

4.Wählen Sie die Indizes aus, auf die Sie die Änderung anwenden möchten (zum Beispiel: „test-index-000001").

5.Wählen Sie den aktuellen Status der Indizes.

6.Wählen Sie im Abschnitt Choose New Policy (Neue Richtlinie auswählen) den update policy name (Namen der Aktualisierungsrichtlinie) aus.

7.(Optional) Wenn Sie die Indizes nach der Aktualisierung der Richtlinie in einen anderen Status versetzen möchten, wählen Sie Nach Inkrafttreten der Richtlinie die Option Indizes auf folgenden Status umstellen. Wählen Sie dann den Bundesstaat aus der Dropdown-Liste aus.

Vorlage hinzufügen

Ordnen Sie die Richtlinie einem bestimmten Index zu, z. B. „test-index-000002“, der als Ergebnis der ISM-Richtlinie erstellt wurde. Mit diesem Anhang werden die Indizes auch dann übertragen, wenn die erforderliche Bedingung (z. B. die Indexgröße) erfüllt ist.

Sie können eine ISM-Vorlage wie diese erstellen und verwenden:

PUT _plugins/_ism/policies/test_policy
{
  "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
    }
  }
}

In diesem Beispiel überprüft die Explain-Index-API, ob die von Ihnen erstellte Vorlage „test\ _policy“ an den neu erstellten Index angehängt ist:

GET _plugins/_ism/explain/test-index-000002
{
  "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
}

Hinweis: Dieser Index wird auch im Abschnitt Verwaltete Indizes auf der Registerkarte Indexverwaltung von OpenSearch Dashboards ausgefüllt.

In der ISM-Politik heißt es

Wenn eine ISM-Richtlinie an einen Index angehängt wird, wechselt der Index in den Status „Initialisierung“. Vom Status „Initialisierung“ wechselt der Index in den Status „Standard“, der in der Richtlinie definiert ist. Dieser „Initialisierungsvorgang“ und jeder nachfolgende Vorgang können 30 bis 48 Minuten dauern. ISM nutzt diese Zeit, um politische Maßnahmen durchzuführen, prüft dann, ob irgendwelche Bedingungen vorliegen, und leitet den Index in verschiedene Zustände um. Ein zufälliger Jitter von 0-60% wird ebenfalls hinzugefügt, um sicherzustellen, dass es nicht zu Aktivitätsschwankungen kommt, die von allen Indizes gleichzeitig ausgehen.

Hinweis: Bei einem Rollover -Vorgang ist ein Index „vollständig“, nachdem der Index rollover wurde, in einen „warmen“ Zustand übergeht und die Anzahl der Replikate aktualisiert wurde.

Wenn Sie eine ISM-Richtlinie verwenden und der Index nicht ordnungsgemäß migriert wird, überprüfen Sie den Status des ISM.

Verwenden Sie die folgende Syntax, um den Status der Migration für einen bestimmten Index zu überprüfen:

GET _ultrawarm/migration/<put_index_name_here>/_status

Verwenden Sie die folgende Syntax, um eine Zusammenfassung der Migration aller Indizes zu erhalten:

GET _ultrawarm/migration/_status?

Weitere Informationen

Example policies (Beispiele für Richtlinien)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr