Salta al contenuto

Come posso utilizzare ISM per gestire lo spazio di archiviazione insufficiente nel Servizio OpenSearch di Amazon?

8 minuti di lettura
0

Il mio cluster Amazon del Servizio OpenSearch ha poco spazio di archiviazione. Desidero utilizzare Index State Management (ISM) per gestire il mio spazio di archiviazione.

Breve descrizione

Per risolvere un problema di spazio di archiviazione insufficiente, utilizza ISM per definire policy di gestione personalizzate ed eseguire un'operazione di rollover, ad esempio per eliminare automaticamente i vecchi indici. L'operazione di rollover esegue il rollover di una destinazione a un nuovo indice quando un indice esistente soddisfa determinate condizioni. ISM valuta la data e l'ora di creazione dell'indice in ogni stato per determinare quando avviare le azioni associate.

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 Open Distro.

Risoluzione

Configura l'indice di rollover

Per creare un modello di indice in OpenSearch Dashboards, completa i seguenti passaggi:

  1. Apri la console Servizio OpenSearch.
  2. Accedi a OpenSearch Dashboards.
    Nota: puoi trovare il collegamento a OpenSearch Dashboards nel riepilogo del dominio della console Servizio OpenSearch.
  3. Scegli Gestione.
  4. Scegli Index Patterns (Modelli di indice), quindi seleziona Create index pattern (Crea modello di indice).
  5. Crea un indice e un alias con un formato di indice che corrisponda al modello di indice ^.*-\d+$.
    Importante: per evitare un errore, assicurati di configurare correttamente l'alias di rollover.

Per ulteriori informazioni, consulta Index Patterns (Modelli di indice) sul sito web OpenSearch.

Quando includi un'operazione di rollover nella policy ISM, devi includere anche un alias di rollover. Per ulteriori informazioni, consulta Perché l'operazione dell'indice di rollover nella policy ISM continua a non riuscire sul Servizio OpenSearch di Amazon?

L'esempio seguente crea test-index-000001 e lo popola con diversi documenti. Poiché l'esempio utilizza un nuovo indice su cui è stato eseguito il rollover della destinazione, il formato dell'indice deve corrispondere al modello dell'indice:

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

L'esempio seguente crea l'alias test-index che punta al nuovo indice:

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

Crea una policy ISM

In OpenSearch Dashboards, crea una policy ISM per l'operazione di rollover.

Esempi di policy

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

La precedente policy ISM definisce gli stati hot e warm. Per impostazione predefinita, l'indice è nello stato hot. L'indice passa allo stato warm quando la sua dimensione raggiunge 10 MB e ISM esegue il rollover a un nuovo indice. Nello stato warm, puoi eseguire diverse azioni sull'indice. Ad esempio, puoi modificare il numero di repliche impostando due o puoi eseguire un'operazione force_merge.

Esegui il rollover per eliminare l'indice dopo alcuni 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": []
      }
    ]
  }
}

La precedente policy ISM definisce gli stati hot e delete. Per impostazione predefinita, l'indice è nello stato hot. Quando l'indice raggiunge i 10 MB, ISM passa a un nuovo indice. Quindi, dopo 30 giorni, l'indice passa allo stato delete e ISM lo elimina.

Per altri esempi di policy, consulta Policy di esempio.

Collega la policy a un indice

Completa i seguenti passaggi:

  1. Apri la console Servizio OpenSearch.
  2. Utilizza il collegamento nel riepilogo del dominio della console Servizio OpenSearch per accedere a OpenSearch Dashboards.
  3. Scegli la scheda Index Management (Gestione dell'indice).
  4. Seleziona l'indice a cui desideri collegare la policy ISM, ad esempio test-index-000001.
    Nota: puoi trovare l'indice in Policy Managed Indices (Indici gestiti da policy).
  5. Scegli Apply policy (Applica policy).
  6. (Facoltativo) Se la policy specifica azioni che richiedono un alias, inserisci l'alias e scegli Apply (Applica).

Puoi inoltre utilizzare la seguente API per collegare la policy ISM:

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

Nota: sostituisci index_name con il nome del tuo indice e policy_name con il nome della tua policy.

Per ulteriori informazioni, consulta Add policy (Aggiunta di policy) sul sito web OpenSearch.

Aggiorna la policy di un indice esistente

Le policy ISM in OpenSearch utilizzano il controllo delle versioni. Quando aggiorni una policy, gli indici appena creati fanno automaticamente riferimento alla versione più recente della policy. Tuttavia, gli indici creati prima dell'aggiornamento continuano a fare riferimento alla versione precedente. Per applicare la policy aggiornata agli indici esistenti, devi prima rimuovere la vecchia policy dagli indici, quindi riapplicare la versione aggiornata.

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

  1. Apri la console Servizio OpenSearch.
  2. Utilizza il collegamento nel riepilogo del dominio della console Servizio OpenSearch per accedere a OpenSearch Dashboards.
  3. Scegli la scheda Index Management (Gestione dell'indice).
  4. Nella sezione Policy Managed Indices (Indici gestiti da policy), scegli Change Policy (Cambia policy).
  5. Scegli gli indici a cui vuoi applicare la modifica, ad esempio test-index-000001.
  6. Scegli lo stato attuale degli indici.
  7. Nella sezione Choose New Policy (Scegli una nuova policy), seleziona Update policy name (Aggiorna il nome della policy).
  8. (Facoltativo) Per passare gli indici a un altro stato dopo aver aggiornato la policy, scegli Switch indices to the following state after the policy takes effect (Passa gli indici allo stato successivo dopo l'applicazione della policy). Quindi scegli lo stato nell'elenco a discesa.

Per aggiornare la policy ISM, puoi anche utilizzare la seguente API:

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

Nota: sostituisci index_name con il nome del tuo indice e policy_1 con il nome della tua policy.

Per ulteriori informazioni, consulta Update managed index policy (Aggiornamento della policy degli indici gestiti) sul sito web OpenSearch.

Aggiungi un modello per collegare la policy a più indici

Per collegare una policy a più indici che corrispondono al modello di indice, crea e utilizza un modello ISM.

Utilizza la seguente chiamata API per creare la policy:

PUT _plugins/_ism/policies/test_policy

Esempio di 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
   }
  }
}

Utilizza il seguente esempio di chiamata API per verificare che il modello test_policy sia collegato all'indice appena creato:

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

Output atteso:

{
  "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
}

Per ulteriori informazioni, consulta Explain index sul sito web OpenSearch.

Nota: l'indice viene inserito anche nella sezione Managed Indices (Indici gestiti) della scheda Index Management (Gestione degli indici) di OpenSearch Dashboards.

Verifica gli stati della policy ISM

Per un'operazione di rollover, un indice è completo dopo che il rollover è stato eseguito, è passato allo stato warm e il conteggio delle repliche è stato aggiornato.

Se utilizzi una policy ISM e la migrazione dell'indice non avviene correttamente, controlla lo stato di ISM.

Per verificare lo stato della migrazione di un indice, utilizza la seguente API:

GET _ultrawarm/migration/index_name/_status

Nota: sostituisci index_name con il nome dell'indice di cui stai controllando lo stato.

Per ottenere lo stato di migrazione di tutti gli indici, utilizza la seguente API:

GET _ultrawarm/migration/_status?

Nota: per spostare i dati da una memoria "hot" a una memoria "warm" o "cold", attiva la memoria "warm" e "cold" sul dominio prima di configurare la policy ISM. La policy ISM deve inoltre includere esplicitamente l'azione di migrazione per il passaggio di un indice da un livello di archiviazione a un altro. Senza l'azione di migrazione, cambia solo il nome dello stato della policy. L'indice continua a risiedere nella memoria "hot".

Configura un'azione di migrazione "warm":

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

Configura un'azione di migrazione "cold":

{
        "name": "cold",
        "actions": [{
            "cold_migration": {
              "timestamp_field": "<your timestamp field>"
            }
          }
AWS UFFICIALEAggiornata 10 mesi fa