¿Cómo puedo utilizar ISM para administrar el poco espacio de almacenamiento en Amazon OpenSearch Service?

Última actualización: 21/11/2022

Mi clúster de Amazon OpenSearch Service se está quedando sin espacio de almacenamiento. ¿Cómo utilizo Index State Management (ISM) en OpenSearch Service para solucionar problemas de poco espacio de almacenamiento?

Descripción breve

Index State Management (ISM) permite automatizar tareas rutinarias y luego aplicarlas a índices y patrones de índice en OpenSearch Service. Con ISM, se pueden definir políticas de administración personalizadas que ayuden a solucionar problemas como escasez de capacidad en disco. Por ejemplo, se puede utilizar una operación de sustitución y una política de ISM para automatizar la eliminación de índices antiguos en función de condiciones como el tamaño de los índices. La operación de sustitución mueve un destino a un nuevo índice cuando un índice existente cumple la condición definida.

Para crear una política de ISM para un patrón de índice mediante una operación como la sustitución, lleve a cabo los siguientes pasos:

1.    Configure su índice de sustitución.

2.    Cree una política de ISM.

3.    Adjunte la política a un índice.

4.    Agregue la plantilla.

Después de adjuntar la política a un índice, el índice comienza a inicializarse, y luego pasa por distintos estados hasta que finaliza la operación de sustitución. Para obtener más información sobre la operación de sustitución, consulte la sección sobre la sustitución en el sitio web de Open Distro para OpenSearch.

Resolución

Configurar su índice de sustitución

Cree un índice y un alias en los que el formato de índice coincida con el patrón de índice:

^.*-\d+$

Importante: Asegúrese de configurar correctamente el alias de sustitución. De lo contrario, recibirá un mensaje de error.

En el siguiente ejemplo, se crea “test-index-000001” y se rellena con varios documentos. Dado que en este ejemplo se utiliza un índice de sustitución, el formato de índice debe coincidir con el patrón.

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

Un índice de sustitución requiere un alias que apunte hacia el último índice. Eso significa que se debe crear un alias (“test-index”) mediante la siguiente consulta:

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

Nota: Si se incluye una operación de sustitución en la política de ISM, se debe incluir el alias de sustitución. Para más información, consulte ¿Por qué sigue fallando la acción de sustitución de índice en mi política de ISM en Amazon OpenSearch Service?

Crear una política de ISM

En OpenSearch Dashboards, elija la pestaña Index Management (Administración de índices), y luego cree una política de ISM para la operación de sustitución.

Por ejemplo:

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

En esta política de ISM, hay dos estados definidos: “hot” (caliente) y “warm” (templado). De manera predeterminada, el índice está en estado “hot” (caliente). El índice pasa al estado “warm” (templado) tan pronto como alcanza los 10 MB de tamaño, y se crea un nuevo índice de sustitución. En el estado “warm” (templado), se pueden realizar varias acciones en el índice, como cambiar el recuento de réplicas a dos o realizar una operación force_merge.

Adjuntar la política a un índice

Para adjuntar la política de ISM a un índice, siga estos pasos:

1.    Abra OpenSearch Dashboards desde la consola de OpenSearch Service.

2.    Elija la pestaña Index Management (Administración de índices).

3.    Seleccione el índice al que desea asociar la política de ISM (por ejemplo: “test-index-000001").

4.    Elija Apply policy (Aplicar política).

5.    (Opcional) Si la política especifica acciones que requieren un alias, proporcione el alias y, a continuación, elija Apply (Aplicar). El índice aparece en la lista Managed Indices (Índices administrados).

Agregar la plantilla

Adjunte la política a un índice específico, como “test-index-000002”, que se creó como resultado de la política de ISM. Al adjuntarla, los índices también se sustituyen después de que se cumpla la condición requerida (como el tamaño del índice).

Puede crear y usar una plantilla de ISM como esta:

PUT _plugins/_ism/policies/test_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
          }
     }
}

En este ejemplo, la API de explicación verifica que la plantilla “test_policy” que creó se adjunta al índice recién creado:

GET _plugins/_ism/explain/test-index-000002
{
     "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
}

Nota: Este índice también se rellena en la secciónManaged Indices (Índices administrados) de la pestaña Index Management (Administración de índices) de OpenSearch Dashboards.

Estados de la política de ISM

Cuando se adjunta una política de ISM a un índice, el índice entra en el estado “Initializing” (Inicializando). Desde el estado “Initializing” (Inicializando), el índice pasa al estado “Default” (Predeterminado), que se define en la política. Esta operación “Initializing”, y cada operación posterior, puede tardar entre 30 y 48 minutos. ISM utiliza este tiempo para realizar acciones de política, y luego verifica las condiciones y cambia el índice a diferentes estados. También se agrega una fluctuación aleatoria del 0 al 60 % para garantizar que no haya aumentos repentinos de actividad provenientes de todos los índices al mismo tiempo.

Nota: Para una operación de sustitución, un índice queda “complete” (completo) después de que tal índice se sustituya, pase al estado “warm” (templado) y se actualice el recuento de réplicas.

Si utiliza una política de ISM y el índice no se migra correctamente, compruebe el estado de ISM.

Para comprobar el estado de la migración de un índice en particular, utilice la siguiente sintaxis:

GET _ultrawarm/migration/<put_index_name_here>/_status

Para obtener una migración resumida de todos los índices, utilice la siguiente sintaxis:

GET _ultrawarm/migration/_status?

¿Le ha resultado útil este artículo?


¿Necesita asistencia técnica o con la facturación?