Comment puis-je utiliser la fonction de gestion d'états d'index (ISM) pour gérer un espace de stockage réduit dans Amazon OpenSearch Service ?

Dernière mise à jour : 16/09/2021

Mon cluster Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service) manque d'espace de stockage. Comment puis-je utiliser Gestion d'états d'index (ISM) dans OpenSearch Service pour gérer les problèmes d'espace de stockage ?

Brève description

La fonction de gestion d'états d'index (ISM) vous permet d'automatiser les tâches de routine, puis de les appliquer aux index et aux modèles d'index dans OpenSearch Service. Avec ISM, vous pouvez définir des politiques de gestion personnalisées qui permettent de gérer des problèmes tels que le faible espace disque. Par exemple, vous pouvez utiliser une opération de roulement et une politique ISM pour automatiser la suppression d'anciens index en fonction de conditions telles que la taille de l'index. L'opération de roulement permet de passer d'une cible à un nouvel index lorsqu'un index existant remplit la condition définie.

Pour créer une stratégie ISM pour un modèle d'index à l'aide d'une opération telle que le roulement, effectuez les opérations suivantes :

1.    Configurez votre index de roulement.

2.    Créez une stratégie ISM.

3.    Attachez la stratégie à un index.

4.    Ajoutez le modèle.

Une fois que vous avez attaché votre politique à un index, votre index commence à s'initialiser, puis passe à différents états jusqu'à la fin de l'opération de roulement. Pour plus d'informations sur l'opération de roulement , voir Roulement sur le site web d'OpenDistro for Elasticsearch.

Résolution

Configurer votre index de roulement

Créez un index et un alias où le format d'index correspond au modèle d'index :

^.*-\d+$.

Important : assurez-vous de configurer correctement votre alias de roulement. Sinon, vous recevez un message d’erreur.

Dans l'exemple suivant, « test-index-000001 » est créé et rempli avec plusieurs documents. Étant donné que cet exemple utilise un index de roulement, le format d'index doit correspondre au modèle.

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

Un index de roulement nécessite un alias pointant vers le dernier index. Cela signifie que vous devez créer un alias (« test-index ») à l'aide de la requête suivante :

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

Créer une politique ISM

Dans OpenSearch Dashboards, choisissez l'onglet Gestion des index, puis créez une politique ISM pour votre opération de roulement.

Par exemple :

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

Dans cette politique ISM, il y a deux états définis : « chaud » et « tiède ». Par défaut, votre index est à l'état « chaud ». L'index passe à l'état « tiède » dès que sa taille atteint 10 Mo et qu'un index de roulement est créé. À l'état « tiède », vous pouvez effectuer diverses actions sur l'index, telles que la modification du nombre de réplicas à deux ou l'exécution d'une opération force_merge.

Attacher la politique à un index

Pour attacher votre politique ISM à un index, effectuez les opérations suivantes :

1.    Ouvrez OpenSearch Dashboards à partir de la console OpenSearch Service.

2.    Choisissez l'onglet Gestion des index .

3.    Sélectionnez l'index auquel vous souhaitez attacher votre stratégie ISM (par exemple : « test-index-000001»).

4.    Choisissez Appliquer la stratégie.

5.    (Facultatif) Si votre stratégie spécifie des actions nécessitant un alias, fournissez l'alias, puis choisissez Appliquer. Votre index apparaît sous la liste des index gérés.

Ajouter le modèle

Attachez la politique à un index spécifique, tel que « test-index-000002 », qui a été créé à la suite de la politique ISM. Cet attachement garantit que les index effectuent également un roulement lorsque la condition requise (telle que la taille de l'index) est remplie.

Vous pouvez utiliser un modèle d'index comme ceci :

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

Dans cet exemple, l'ID de stratégie JSON est « Roll_over_policy ». Ce modèle JSON s'assure que lorsque l'index « test-index-000002 » est créé, la politique de substitution est attachée :

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

Remarque : cet index est également renseigné dans la section Index gérés de l'onglet Gestion des index d'OpenSearch Dashboard.

États de la politique ISM

Lorsqu'une stratégie ISM est attachée à un index, l'index entre dans un état « Initialisation ». À partir de l'état « Initialisation », l'index passe à l'état « Par défaut », qui est défini dans la stratégie. Cette opération « Initialisation », et chaque opération suivante, peut prendre 30 à 48 minutes. ISM utilise ce temps pour effectuer des actions de politique, puis vérifie les conditions et transforme l'index en différents états. Une gigue aléatoire de 0 à 60 % est également ajoutée pour garantir qu'il n'y a pas de hausses d'activité provenant de tous les index en même temps.

Remarque : pour une opération de roulement , un index est « terminé » après que l'index effectue un roulement, passe à un état « tiède » et que le nombre de réplicas a été mis à jour.

Si vous utilisez une politique ISM et que l'index ne migre pas correctement, vérifiez le statut de l'ISM.

Pour vérifier le statut de la migration pour un index particulier, utilisez la syntaxe suivante :

GET _ultrawarm/migration/<put_index_name_here>/_status

Pour obtenir une migration récapitulative de tous les index, utilisez la syntaxe suivante :

GET _ultrawarm/migration/_status?

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?