Comment utiliser la gestion des états d'index (ISM) pour gérer un faible espace de stockage dans Amazon Elasticsearch Service ?

Date de la dernière mise à jour : 23/12/2020

Mon cluster Amazon Elasticsearch Service (Amazon ES) manque d'espace de stockage. Comment utiliser la gestion des états d’index (ISM) dans Amazon ES pour gérer les problèmes d'espace de stockage ?

Brève description

La Gestion des états d’index (ISM) vous permet d'automatiser les tâches de routine, puis de les appliquer aux index et modèles d'index dans Amazon ES. Avec l’ISM, vous pouvez définir des stratégies de gestion personnalisées qui vous aident à gérer les problèmes tels que l'espace disque insuffisant. Par exemple, vous pouvez utiliser une opération de roulement et une stratégie ISM pour automatiser la suppression d'anciens indices en fonction de conditions telles que la taille de l'index. L'opération de roulement permet de passer d'une cible à un nouvel indice lorsqu'un indice 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 stratégie à 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 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 stratégie ISM

Dans l'onglet Gestion des index du service Kibana, créez une stratégie ISM pour votre opération de roulement comme ceci :

{
    "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 dans l'état « chaud ». L'index passe à l'état « brûlant » dès qu'il atteint 10 Mo et qu'un nouvel index de roulement est créé. Dans 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 stratégie à un index

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

1.    Ouvrez Kibana depuis la console Amazon ES.

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 indices gérés.

Ajouter le modèle

Joignez la stratégie à un index spécifique tel que « test-index-000002 », qui a été créé à la suite de la politique ISM. Cette pièce jointe garantit que les index seront également reportés 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 stratégie de roulement 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 rempli sous la section Indices gérés de l'onglet Gestion des index de Kibana.

États de la stratégie 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 stratégie, puis vérifie les conditions et transforme l'index dans différents états. Une gigue aléatoire de 0 à 60 % est également ajoutée pour garantir qu'il n'y a pas de surtensions d'activité provenant de tous les indices en même temps.

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


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


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