Como uso o ISM para gerenciar pouco espaço de armazenamento no Amazon OpenSearch Service?

7 minuto de leitura
0

Meu cluster do Amazon OpenSearch Service está com pouco espaço de armazenamento.

Breve descrição

O Index State Management (ISM) permite automatizar tarefas rotineiras e depois aplicá-las a índices e padrões de índice no OpenSearch Service. Com o ISM, você pode definir políticas de gerenciamento personalizadas que ajudam a manter 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 transfere um alvo para um novo índice quando um índice existente atende à condição definida.

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

1.    Configure seu índice de rollover.

2.    Crie uma política do ISM.

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

4.    Adicione o modelo.

Depois de anexar sua política a um índice, seu índice começa a ser inicializado e depois passa 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 Open Distro for OpenSearch.

Resolução

Configure seu índice de rollover

Crie um índice e um alias em que o formato do índice corresponda ao padrão do índice:

^.*-\d+$

Importante: certifique-se de configurar corretamente seu alias de rollover. Caso contrário, você receberá uma mensagem de erro.

No exemplo a seguir, “test-index-000001" é criado e preenchido com vários documentos. Como esse 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 exige um alias que aponte para o índice mais recente. Isso significa que você deve 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, você deverá incluir um alias de rollover. Para obter mais informações, consulte Por que a ação de sobreposição do índice na minha política do ISM continua falhando no Amazon OpenSearch Service?

Criar uma política do ISM

Nos painéis do OpenSearch, escolha a guia Index Management (Gerenciamento de índices) e, em seguida, crie uma política do ISM para sua operação de rollover.

Por exemplo:

Passe para o estado morno

{
  "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 do ISM, existem dois estados definidos: “quente” e “morno”. Por padrão, seu índice está no estado “quente”. O índice passa para o estado “morno” assim que o tamanho do índice atinge 10 MB e um novo índice de rollover é criado. No estado “morno”, você pode realizar várias ações no índice, como alterar a contagem de réplicas para duas ou executar uma operação force_merge.

**Passe para excluir após alguns dias **

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

Nessa política do ISM, há dois estados definidos: “ativo” e “excluir”. Por padrão, o índice está no estado “ativo”. Depois que o índice atingir 10 MB, um novo índice de rollover é criado. Depois de 30 dias, o índice passa para o estado “excluir” e o índice é excluído.

Anexar a política a um índice

Para anexar sua política do ISM a um índice, execute as seguintes etapas:

1.    Abra os painéis do OpenSearch no console do OpenSearch Service. Você pode encontrar um link para os painéis do OpenSearch no resumo do domínio do console do OpenSearch Service.

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

3.    Selecione o índice ao qual você deseja anexar sua política do ISM (por exemplo: “test-index-000001").

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

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

Atualizar a política de um índice existente

Observação: qualquer atualização feita na política existente não se aplica automaticamente aos índices existentes, ela exige uma reaplicação da mesma política aos índices.

Para reaplicar sua política do ISM a qualquer índice existente, execute as seguintes etapas:

1.    Abra os painéis do OpenSearch no console do OpenSearch Service.

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

3.    Na seção Índices gerenciados por políticas, escolha Change Policy (Alterar política).

4.    Escolha os índices aos quais você deseja aplicar a alteração (por exemplo: "test-index-000001").

5.    Escolha o estado atual dos índices.

6.    Na seção Choose New Policy (Escolher nova política), escolha Update policy name (Atualizar nome da política).

7.    (Opcional) Se você quiser mudar os índices para outro estado após a atualização da política, escolha Switch indices to the following state after the policy takes effect (Alternar índices para o estado a seguir depois que a política entrar em vigor). Em seguida, escolha o estado na lista suspensa.

Adicionar o modelo

Anexe a política a um índice específico, como "test-index-000002", que foi criado como resultado da política do ISM. Com esse anexo, os índices também são transferidos após a condição exigida (como o tamanho do índice) ser atendida.

Você pode criar e usar um modelo 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 index verifica se o modelo “test_policy” que você criou está anexado 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 Dashboards.

Estados da política do ISM

Quando uma política do ISM é anexada a um índice, o índice entra em um estado “Initializing” (Inicializando). Do estado “Initializing” (Inicializando), o índice passa para o estado “Default” (Padrão), 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 realizar ações políticas e, em seguida, verifica quaisquer condições e faz a transição do índice para diferentes estados. Uma variação aleatória de 0 a 60% também é adicionada para garantir que não haja picos de atividade provenientes de todos os índices ao mesmo tempo.

Observação: para uma operação de rollover, um índice é “concluído” depois que o índice é transferido, passa para um estado “quente” e a contagem de réplicas é atualizada.

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

Para verificar o status da migração para um índice específico, 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?

Informações relacionadas

Políticas de exemplo

AWS OFICIAL
AWS OFICIALAtualizada há um ano