Passer au contenu

Comment utiliser ISM pour gérer un espace de stockage restreint dans Amazon OpenSearch Service ?

Lecture de 8 minute(s)
0

Mon cluster Amazon OpenSearch Service dispose d'un faible espace de stockage. Je souhaite utiliser la gestion de l'état des index (ISM) pour gérer mon espace de stockage.

Brève description

Pour résoudre le problème d’espace de stockage insuffisant, utilisez ISM pour définir des politiques de gestion personnalisées et effectuer une opération de roulement, par exemple pour supprimer automatiquement les anciens index. L'opération de roulement permet de déplacer une cible vers un nouvel index lorsqu'un index existant remplit les conditions spécífiées. ISM évalue la date et l'heure de création de l'index à chaque état afin de déterminer quand démarrer les actions associées.

Lorsque vous avez associé votre stratégie à un index, celui-ci 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, consultez la page roulement sur le site Web d’Open Distro.

Résolution

Configurer votre index de roulement

Pour créer un modèle d'index dans OpenSearch Dashboards, procédez comme suit :

  1. Ouvrez la console OpenSearch Service.
  2. Accédez à OpenSearch Dashboards.
    Remarque : Vous trouverez un lien vers OpenSearch Dashboards dans le résumé du domaine de votre console OpenSearch Service.
  3. Sélectionnez Gestion.
  4. Sélectionnez Modèles d'index, puis Créer un modèle d'index.
  5. Créez un index et un alias avec un format d'index correspondant au modèle d’index ^.*-\d+$.
    Important : Pour éviter toute erreur, assurez-vous de configurer correctement votre alias de roulement.

Pour plus d'informations, consultez la page Modèles d’index sur le site Web d’OpenSearch.

Lorsque vous incluez une opération de roulement dans la stratégie ISM, vous devez également inclure un alias de roulement. Pour plus d'informations, consultez la section Pourquoi l'action d'index de roulement prévue dans ma stratégie ISM continue-t-elle d’échouer dans OpenSearch Service ?

L'exemple suivant crée test-index-000001 et le remplit avec plusieurs documents. Étant donné que l'exemple utilise un nouvel index vers lequel la cible est redirigée, le format de l'index doit correspondre au modèle de l'index :

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

L'exemple suivant crée l'alias test-index qui pointe vers votre nouvel index :

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

Créer une stratégie ISM

Dans OpenSearch Dashboards, créez une stratégie ISM pour votre opération de roulement.

Exemples de stratégies

Passez à l'état tiède :

{  "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 stratégie ISM précédente définit les états chaud et tiède. Par défaut, votre index est à l'état chaud. L'index passe à l'état tiède lorsque sa taille atteint 10 Mo et qu’ISM passe à un nouvel index. À l’état tiède, vous pouvez effectuer différentes actions sur l'index. Par exemple, vous pouvez modifier le nombre de réplicas à deux ou effectuer une opération force_merge.

Effectuez une restauration pour supprimer l’index au bout de quelques jours :

{  "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 stratégie ISM précédente définit les états chaud et suppression. Par défaut, votre index est à l'état chaud. Une fois que l'index atteint 10 Mo, ISM passe à un nouvel index. Ensuite, au bout de 30 jours, l'index passe à l'état suppression et est ISM supprime l’index.

Pour d'autres exemples de stratégies, consultez la section Exemples de stratégies.

Associer la stratégie à un index

Procédez comme suit :

  1. Ouvrez la console OpenSearch Service.
  2. Cliquez sur le lien figurant dans le résumé du domaine de la console OpenSearch Service pour accéder à OpenSearch Dashboards.
  3. Choisissez l'onglet Gestion des index.
  4. Sélectionnez l'index auquel vous souhaitez associer votre stratégie ISM, par exemple test-index-000001.
    Remarque : Vous trouverez votre index sous Index gérés par la stratégie.
  5. Sélectionnez Appliquer la stratégie.
  6. (Facultatif) Si votre stratégie spécifie des actions nécessitant un alias, fournissez l'alias, puis sélectionnez Appliquer.

Vous pouvez également utiliser l'API suivante pour associer la stratégie ISM :

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

Remarque : Remplacez index_name par le nom de votre index et policy_name par le nom de votre stratégie.

Pour en savoir plus, consultez la page Ajouter une stratégie sur le site Web d'OpenSearch.

Mettre à jour la stratégie d'un index existant

Les stratégies ISM d'OpenSearch utilisent la gestion des versions. Lorsque vous mettez à jour une stratégie, les index nouvellement créés font automatiquement référence à la dernière version de la stratégie. Cependant, les index que vous créez avant la mise à jour continuent de faire référence à la version précédente. Pour appliquer la stratégie mise à jour aux index existants, vous devez d'abord supprimer l'ancienne stratégie des index, puis réappliquer la version mise à jour.

Pour appliquer de nouveau votre stratégie ISM à un index existant, procédez comme suit :

  1. Ouvrez la console OpenSearch Service.
  2. Cliquez sur le lien figurant dans le résumé du domaine de la console OpenSearch Service pour accéder à OpenSearch Dashboards.
  3. Choisissez l'onglet Gestion des index.
  4. Dans la section Index gérés par la stratégie, choisissez Modifier la stratégie.
  5. Sélectionnez les index auxquels vous souhaitez appliquer les modifications, par exemple test-index-000001.
  6. Choisissez l'état actuel des index.
  7. Dans la section Choisir une nouvelle stratégie, sélectionnez Nom de la stratégie de mise à jour.
  8. (Facultatif) Pour modifier l'état des index après avoir mis à jour la stratégie, sélectionnez Faire passer les index à l'état suivant une fois la stratégie entrée en vigueur. Puis, choisissez l'état dans la liste déroulante.

Vous pouvez également utiliser l'API suivante pour mettre à jour la stratégie ISM :

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

Remarque : Remplacez index_name par le nom de votre index et policy_1 par le nom de votre stratégie.

Pour plus d'informations, consultez la page Mettre à jour la stratégie d’index gérés sur le site Web d’OpenSearch.

Ajouter un modèle pour associer la stratégie à plusieurs index

Pour associer une stratégie à plusieurs index correspondant au modèle d'index, créez et utilisez un modèle ISM.

Utilisez l'appel d'API suivant pour créer la stratégie :

PUT _plugins/_ism/policies/test_policy

Exemple de stratégie :

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

Utilisez l'exemple d'appel d'API suivant pour vérifier que le modèle test_policy est associé à l'index nouvellement créé :

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

Sortie attendue :

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

Pour en savoir plus, consultez la page Décrire l’index sur le site Web d'OpenSearch.

Remarque : L’index s'affiche également dans la section Index gérés de l'onglet Gestion des index d’OpenSearch Dashboards.

Vérifier l'état de votre stratégie ISM

Dans le cas d'une opération de roulement, un index est terminé lorsqu'il a effectué un roulement, est passé à l’état tiède et que le nombre de réplicas est à jour.

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

Pour vérifier le statut de migration d'un index, utilisez l'API suivante :

GET _ultrawarm/migration/index_name/_status

Remarque : Remplacez index_name par le nom de l'index dont vous vérifiez le statut.

Pour obtenir le statut de migration de tous les index, utilisez l'API suivante :

GET _ultrawarm/migration/_status?

Remarque : Pour déplacer des données d'un stockage chaud vers un stockage tiède ou à froid, activez le stockage tiède et à froid sur le domaine avant de configurer la stratégie ISM. La stratégie ISM doit également inclure explicitement l'action de migration pour transférer un index entre les niveaux de stockage. Sans l'action de migration, seul le nom de l'état de la stratégie change. L'index continue de résider dans un stockage à chaud.

Configurer une action de migration à l’état tiède :

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

Configurer une action de migration à froid :

{
        "name": "cold",
        "actions": [{
            "cold_migration": {
              "timestamp_field": "<your timestamp field>"
            }
          }
AWS OFFICIELA mis à jour il y a 10 mois