Come faccio a usare ISM per gestire lo spazio di archiviazione insufficiente in Amazon OpenSearch Service?

7 minuti di lettura
0

Lo spazio di archiviazione del mio cluster Amazon OpenSearch Service sta esaurendo.

Breve descrizione

Index State Management (ISM) consente di automatizzare le attività di routine e quindi applicarle a indici e modelli di indice in OpenSearch Service. Con ISM, è possibile definire politiche di gestione personalizzate che consentono di mantenere problemi come lo spazio su disco insufficiente. Ad esempio, puoi utilizzare un'operazione di rollover e una policy ISM per automatizzare l'eliminazione dei vecchi indici in base a condizioni come la dimensione dell'indice. L'operazione di rollover esegue il rollover di una destinazione in un nuovo indice quando un indice esistente soddisfa la condizione definita.

Per creare una politica ISM per un modello di indice utilizzando un'operazione come il rollover, effettuate le seguenti operazioni:

1.    Imposta il tuo indice di rollover.

2.    Crea una politica ISM.

3.    Allega la politica a un indice.

4.    Aggiungi il modello.

Dopo aver collegato la policy a un indice, l'indice inizia a inizializzarsi e quindi passa a stati diversi fino al completamento dell'operazione di rollover. Per ulteriori informazioni sull'operazione di rollover, consulta rollover nel sito Web Open Distro for OpenSearch.

Risoluzione

Configura il tuo indice di rollover

Crea un indice e un alias in cui il formato dell'indice corrisponda al modello di indice:

^.*-\d+$

Importante: assicurati di configurare correttamente il tuo alias di rollover. Altrimenti, riceverai un messaggio di errore.

Nell'esempio seguente, "test-index-000001" viene creato e popolato con diversi documenti. Poiché questo esempio utilizza un indice di rollover, il formato dell'indice deve corrispondere al modello.

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

Un indice di rollover richiede un alias che punta all'indice più recente. Ciò significa che è necessario creare un alias ("test-index") utilizzando la seguente query:

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

Nota: Se nella politica ISM è inclusa un'operazione di rollover, è necessario includere un alias di rollover. Per ulteriori informazioni, consulta Perché l'azione relativa all'indice di rollover nella mia politica ISM continua a fallire in Amazon OpenSearch Service?

Creare una politica ISM

In OpenSearch Dashboards, scegli la scheda Gestione indice e crea una policy ISM per l'operazione di rollover.

Ad esempio:

Rollover allo stato "warm"

{
  "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 questa politica ISM, ci sono due stati definiti "hot" e "warm". Per impostazione predefinita, l'indice è nello stato "hot". L'indice passa allo stato "warm" non appena raggiunge i 10 MB e viene creato un nuovo indice di rollover. Nello stato "warm", puoi eseguire varie operazioni sull'indice, ad esempio la modifica del conteggio delle repliche su due o l'esecuzione di un'operazione force_merge.

Rollover da eliminare dopo pochi giorni

{
  "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 questa politica ISM, sono definiti due stati: "hot" e "delete". Per impostazione predefinita, l'indice è nello stato "hot". Quando l'indice raggiunge i 10 MB, viene creato un nuovo indice di rollover. Quindi, dopo 30 giorni, l'indice passa allo stato "delete" e l'indice viene eliminato.

Allegare la politica a un indice

Per allegare la politica ISM a un indice, procedi come segue:

1.    Apri OpenSearch Dashboards dalla console di OpenSearch Service. Puoi trovare un collegamento a OpenSearch Dashboards nel riepilogo del dominio della tua console di OpenSearch Service.

2.    Scegli la scheda Gestione indice.

3.    Seleziona l'indice a cui desideri allegare la tua politica ISM (ad esempio: "test-index-000001").

4.    Scegli Applica politica.

5.    (Facoltativo) Se la policy specifica azioni che richiedono un alias, inserisci l'alias e scegli Applica. Il tuo indice viene visualizzato nell'elenco degli indici gestiti dalla policy.

Aggiornamento della politica di un indice esistente

Nota: Qualsiasi aggiornamento apportato alla politica esistente non si applica automaticamente agli indici esistenti, richiede una riapplicazione della stessa politica agli indici.

Per riapplicare la politica ISM a qualsiasi indice esistente, procedi come segue:

1.    Apri OpenSearch Dashboards dalla console di OpenSearch Service.

2.    Scegli la scheda Gestione indice.

3.    Dalla sezione Indici gestiti dalla policy, scegli Cambia politica.

4.    Scegli gli indici a cui vuoi applicare la modifica (ad esempio: "test-index-000001").

5.    Scegli lo stato attuale degli indici.

6.    Nella sezione Scegli una nuova politica, scegli il nome della politica di aggiornamento.

7.    (Facoltativo) Se desideri passare agli indici in un altro stato dopo l'aggiornamento della politica, scegli Cambia gli indici allo stato seguente dopo l'entrata in vigore della politica. Quindi, scegli lo stato dal menu a tendina.

Aggiungere il modello

Allega la politica a un indice specifico come "test-index-000002", creato come risultato della politica ISM. Con questo allegato, gli indici si ribaltano anche dopo che viene soddisfatta la condizione richiesta (come la dimensione dell'indice).

Puoi creare e utilizzare un modello ISM come questo:

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 questo esempio, l'API explain index verifica che il modello "test_policy" che hai creato sia allegato all'indice appena creato:

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
}

Nota: Questo indice viene compilato anche nella sezione Indici gestiti nella scheda Gestione indice di OpenSearch Dashboard.

Stati della politica ISM

Quando una policy ISM è associata a un indice, l'indice passa allo stato "Initializing". Dallo stato "Initializing", l'indice passa allo stato "Default", definito nella policy. Questa operazione di "inizializzazione", e ogni operazione successiva, può richiedere dai 30 ai 48 minuti. ISM utilizza questo tempo per eseguire azioni politiche, quindi verifica la presenza di eventuali condizioni e fa passare l'indice in diversi stati. Viene inoltre aggiunto un jitter casuale dello 0-60% per garantire che non vi siano picchi di attività provenienti da tutti gli indici contemporaneamente.

Nota: Per un'operazione di rollover, un indice è "completo" dopo il rollover, il passaggio allo stato "warm" e l'aggiornamento del numero di repliche.

Se utilizzi una politica ISM e l'indice non sta migrando correttamente, controlla lo stato dell'ISM.

Per verificare lo stato della migrazione per un particolare indice, usa la seguente sintassi:

GET _ultrawarm/migration/<put_index_name_here>/_status

Per ottenere una migrazione riassuntiva di tutti gli indici, usa la seguente sintassi:

GET _ultrawarm/migration/_status?

Informazioni correlate

Politiche di esempio

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa