Como posso usar o ISM para gerenciar pouco espaço de armazenamento disponível no Amazon OpenSearch Service

Última atualização: 21/11/2022

Meu cluster do Amazon OpenSearch Service está com pouco espaço de armazenamento. Como uso o Index State Management (ISM) no OpenSearch Service para gerenciar problemas de espaço de armazenamento?

Breve descrição

O Index State Management (ISM – Gerenciamento de estados de índice) permite automatizar tarefas de rotina e aplicá-las a índices e padrões de índice no OpenSearch Service. Com o ISM, você pode definir políticas personalizadas de gerenciamento que ajudam você na manutenção de problemas como pouco espaço em disco. Por exemplo, você pode usar uma operação de rollover e uma política do ISM para automatizar a exclusão de índices antigos com base em condições como o tamanho do índice. A operação de rollover (sobreposição) sobrepõe um destino com um novo índice quando um índice existente atende à condição definida.

Para criar uma política de ISM para um padrão de índice usando uma operação como rollover (sobreposição), execute as seguintes etapas:

1.    Configure seu índice de rollover (sobreposição).

2.    Crie uma política de ISM.

3.    Vincule a política a um índice.

4.    Adicione o template.

Após vincular a política a um índice, o índice começa a ser inicializado e, em seguida, faz a transição para estados diferentes até que a operação de rollover seja concluída. Para obter mais informações sobre a operação de rollover, consulte rollover no site do OpenDistro for OpenSearch.

Resolução

Configurar seu índice de rollover (sobreposição)

Crie um índice e um alias nos quais o formato de índice corresponda ao padrão de índice:

^.*-\d+$

Importante: não esqueça de configurar corretamente o alias de rollover (sobreposição). Caso contrário, você receberá uma mensagem de erro.

No exemplo a seguir, “test-index-000001” é criado e preenchido com vários documentos. Como este exemplo usa um índice de rollover, o formato do índice deve corresponder ao padrão.

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

Um índice de rollover requer um alias que aponte para o índice mais recente. Isso significa que é necessário criar um alias (“test-index”) usando a seguinte consulta:

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

Observação: se uma operação de rollover estiver incluída na política do ISM, será necessário incluir o alias rollover. Para obter mais informações, consulte Por que a ação do índice de rollover em minha política do ISM continua falhando no Amazon OpenSearch Service?

Criar uma política do ISM

No OpenSearch Dashboards, escolha a guia Index Management (Gerenciamento de índices) e crie uma política de ISM para sua operação de rollover.

Por exemplo:

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

Nessa política de ISM, existem dois estados definidos: “hot” (quente) e “warm” (morno). Por padrão, seu índice está no estado “hot”. O índice faz a transição para o estado “warm” assim que atinge 10 MB e um novo índice de rollover é criado. No estado “warm”, é possível executar várias ações no índice, como alterar a contagem de réplicas para dois ou executar uma operação force_merge.

Vincular a política a um índice

Para vincular a política de ISM a um índice, execute as seguintes etapas:

1.    Abra o OpenSearch Dashboards no console do OpenSearch Service.

2.    Escolha a guia Index Management (Gerenciamento de índices).

3.    Selecione o índice ao qual deseja vincular sua política de ISM (p. ex.: “test-index-000001").

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

5.    (Opcional) Se a política especificar qualquer ação que exija um alias, forneça o alias e escolha Apply (Aplicar). Seu índice aparece na lista Managed Indices (Índices gerenciados).

Adicionar o template

Vincule a política a um índice específico, como “test-index-000002", o qual foi criado como resultado da política de ISM. Com essa vinculação, também haverá rollover dos índices depois que a condição necessária (como o tamanho do índice) for atendida.

É possível criar e usar um modelo do ISM como este:

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

Neste exemplo, a API explain verifica se o modelo “test_policy” que você criou está vinculado ao índice recém-criado:

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
}

Observação: esse índice também é preenchido na seção Managed Indices (Índices gerenciados) na guia Index Management (Gerenciamento de índices) do OpenSearch Dashboard.

Estados da política de ISM

Quando uma política de ISM é vinculada a um índice, o índice entra em um estado “Initializing” (Inicializando). Do estado “Initializing” (Inicializando), o índice passa para o estado “Default” (Padrão), que é definido na política. Essa operação “Initializing” (Inicializando) e todas as operações subsequentes podem levar de 30 a 48 minutos. O ISM usa esse tempo para executar ações de política e depois verifica se há condições e faz a transição do índice para diferentes estados. Também há a adição de um jitter aleatório de 0 a 60% para garantir que não haja surtos de atividade provenientes de todos os índices ao mesmo tempo.

Observação: para uma operação de rollover, um índice entra no estado “complete” depois que o índice é sobreposto, faz a transição para um estado “warm” e a contagem de réplicas é atualizada.

Se você estiver usando uma política do ISM e o índice não estiver migrando corretamente, verifique o status do ISM.

Para verificar o status da migração para um determinado índice, use a seguinte sintaxe:

GET _ultrawarm/migration/<put_index_name_here>/_status

Para obter uma migração resumida de todos os índices, use a seguinte sintaxe:

GET _ultrawarm/migration/_status?

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?