Come posso utilizzare Index State Management (ISM) per gestire lo spazio di archiviazione insufficiente su Amazon OpenSearch Service?

Ultimo aggiornamento: 16-09-2021

Il cluster Amazon OpenSearch Service (successore di Amazon Elasticsearch Service) sta esaurendo lo spazio di archiviazione. Come posso utilizzare Index State Management (ISM) per gestire problemi di archiviazione su Amazon OpenSearch Service?

Breve descrizione

Index State Management (ISM) consente di automatizzare i processi di routine e quindi applicarli agli indici e ai modelli di indice in OpenSearch Service. Con ISM, puoi definire policy di gestione personalizzati che consentono di gestire 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 un criterio ISM per un pattern di indice utilizzando un'operazione come il rollover, attenersi alla seguente procedura:

1.    Imposta il tuo indice di rollover.

2.    Creare un criterio ISM.

3.    Allegare la policy 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 sul sito Web OpenDistro for Elasticsearch.

Risoluzione

Imposta il tuo indice di rollover

Creare un indice e un alias in cui il formato dell'indice corrisponde al modello di indice:

^.*-\d+$.

Importante: accertarsi di configurare correttamente l'alias di rollover. In caso contrario, 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 devi creare un alias ("test-index") utilizzando la seguente query:

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

Crea una policy ISM

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

Ad esempio:

{
    "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 policy ISM, ci sono due stati definiti: «hot» e «warm». Di default, 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.

Collegamento della policy a un indice in corso

Per collegare la policy ISM a un indice, attieniti alla seguente procedura:

1.    Apri OpenSearch Dashboards dalla console di OpenSearch Service.

2.    Scegliere la scheda Gestione indice.

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

4.    Scegli Applica policy.

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

Aggiunta del modello in corso

Collega la policy a un indice specifico, ad esempio "test-index-000002", creato come risultato della policy ISM. Questo collegamento assicura che gli indici vengano rinnovati anche quando viene soddisfatta la condizione richiesta (come la dimensione dell'indice).

Puoi utilizzare un modello di indice come questo:

PUT _template/template_1
{
  "index_patterns": [
    "test-index*"
  ],
  "settings": {
    "index": {
      "opendistro": {
        "index_state_management": {
          "policy_id": "Roll_over_policy",
          "rollover_alias": "test-index"
        }
      }
    }
  }
}

In questo esempio, l'ID policy JSON è «ROLL_OVER_POLICY». Questo modello JSON assicura che quando viene creato l'indice «test-index-000002", venga allegata la policy di rollover:

GET test-index-000002/_settings
{
  "test-index-000002" : {
    "settings" : {
      "index" : {
        "opendistro" : {
          "index_state_management" : {
            "policy_id" : "Roll_over_policy",
            "rollover_alias" : "test-index"
          }
        },
        "number_of_shards" : "1",
        "provided_name" : "test-index-000002",
        "creation_date" : "1589031424388",
        "number_of_replicas" : "2",
        "uuid" : "DUHeUdTnSveeYsH9aIkt-Q",
        "version" : {
          "created" : "7010199"
        }
      }
    }
  }
}

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

La policy ISM afferma

Quando una policy ISM è associata a un indice, l'indice entra in uno stato di «Inizializzazione». Dallo stato «Inizializzazione», l'indice passa allo stato «Predefinito», definito nella policy. Questa operazione di "inizializzazione", e ogni operazione successiva, può richiedere dai 30 ai 48 minuti. ISM utilizza questo tempo per eseguire operazioni della policy, quindi verifica eventuali condizioni e trasferisce l'indice in stati diversi. Viene inoltre aggiunto un jitter casuale dello 0-60% per garantire che non ci siano picchi di attività provenienti da tutti gli indici contemporaneamente.

Nota: per un'operazione di rollover, un indice è "completo" dopo il rollover dell'indice, passa a uno stato "warm" e il conteggio delle repliche viene aggiornato.

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

Per verificare lo stato della migrazione per un determinato indice, utilizzare la seguente sintassi:

GET _ultrawarm/migration/<put_index_name_here>/_status

Per ottenere una migrazione di riepilogo di tutti gli indici, utilizza la seguente sintassi:

GET _ultrawarm/migration/_status?

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?