Ir para o conteúdo

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

8 minuto de leitura
0

Meu cluster do Amazon OpenSearch Service tem pouco espaço de armazenamento. Quero usar o Index State Management (ISM) para gerenciar meu espaço de armazenamento.

Breve descrição

Para resolver o problema de pouco espaço de armazenamento, use o ISM para definir políticas de gerenciamento personalizadas e realizar uma operação de rollover, como excluir automaticamente índices antigos. A operação de rollover transfere um alvo para um novo índice quando um índice existente atende às condições definidas. O ISM avalia a data e a hora de criação do índice em cada estado para identificar quando iniciar as ações associadas.

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.

Resolução

Configure seu índice de rollover

Para criar um padrão de índice no OpenSearch Dashboards, conclua as seguintes etapas:

  1. Abra o console do OpenSearch Service.
  2. Acesse o OpenSearch Dashboards.
    Observação: é possível encontrar o link para o OpenSearch Dashboards no resumo do domínio do seu console do OpenSearch Service.
  3. Clique em Gerenciamento.
  4. Selecione Padrões de índice e, em seguida, clique em Criar padrão de índice.
  5. Crie um índice e um alias com um formato de índice que corresponda ao padrão de índice ^.*-\d+$.
    Importante: para evitar um erro, certifique-se de configurar corretamente o alias do seu rollover.

Para obter mais informações, consulte Padrões de índice no site do OpenSearch.

Ao incluir uma operação de rollover na política do ISM, você também deve incluir um alias de rollover. Para obter mais informações, consulte Por que a ação do índice de sobreposição em minha política do ISM continua falhando no Amazon OpenSearch Service?

O exemplo a seguir cria test-index-000001 e o preenche com vários documentos. Como o exemplo usa um novo índice para o qual o destino foi transferido, o formato do índice deve corresponder ao padrão do índice:

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

O exemplo a seguir cria o alias test-index que aponta para seu novo índice:

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

Crie uma política do ISM

No OpenSearch Dashboards, crie uma política do ISM para sua operação de rollover.

Exemplo de políticas

Passar para o estado warm:

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

A política do ISM anterior define os estados hot e warm. Por padrão, seu índice está no estado hot. O índice passa para o estado warm quando o tamanho do índice atinge 10 MB e o ISM passa para um novo índice. No estado warm, é possível realizar ações diferentes no índice. Por exemplo, é possível alterar a contagem de réplicas para duas ou realizar uma operação force_merge.

Realize rollover para excluir o índice 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": []
      }
    ]
  }
}

A política do ISM anterior define os estados hot and excluir. Por padrão, o índice está no estado hot. Depois que o índice atingir 10 MB, o ISM passa para um novo índice. Depois de 30 dias, o índice passa para o estado excluir e o ISM exclui o índice.

Para ver mais exemplos de políticas, consulte Políticas de exemplo.

Anexe a política a um índice

Conclua as etapas a seguir:

  1. Abra o console do OpenSearch Service.
  2. Use o link no resumo do domínio do console do OpenSearch Service para acessar o OpenSearch Dashboards.
  3. Clique na guia Gerenciamento de índice.
  4. Selecione o índice ao qual você deseja anexar sua política do ISM, por exemplo, test-index-000001.
    Observação: é possível encontrar seu índice em Índices gerenciados por políticas.
  5. Clique em Aplicar política.
  6. (Opcional) Se sua política especificar alguma ação que exija um alias, forneça o alias e selecione Aplicar.

Também é possível usar a seguinte API para anexar a política do ISM:

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

Observação: substitua index_name pelo nome do seu índice e policy_name pelo nome da sua política.

Para mais informações, consulte Add policy (Adicionar política) no site do OpenSearch.

Atualize a política de um índice existente

As políticas do ISM no OpenSearch usam versionamento. Quando você atualiza uma política, os índices recém-criados fazem referência automaticamente à versão mais recente da política. No entanto, os índices que você cria antes da atualização continuam referenciando a versão anterior. Para aplicar a política atualizada aos índices existentes, primeiro remova a política antiga dos índices e depois reaplique a versão atualizada.

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

  1. Abra o console do OpenSearch Service.
  2. Use o link no resumo do domínio do console do OpenSearch Service para acessar o OpenSearch Dashboards.
  3. Clique na guia Gerenciamento de índice.
  4. Na seção Índices gerenciados por políticas, clique em Alterar política.
  5. Selecione os índices aos quais você deseja aplicar a alteração, por exemplo test-index-000001.
  6. Selecione o estado atual dos índices.
  7. Na seção Escolher nova política, clique em Atualizar nome da política.
  8. (Opcional) Para alterar os índices para outro estado depois de atualizar a política, selecione Alternar índices para o seguinte estado depois que a política entrar em vigor. Em seguida, selecione o estado na lista suspensa.

Também é possível usar a seguinte API para atualizar a política do ISM:

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

Observação: substitua index_name pelo nome do seu índice e policy_1 pelo nome da sua política.

Para obter mais informações, consulte Update managed index policy (Atualizar política de índice gerenciado) no site do OpenSearch.

Adicione um modelo para anexar a política a vários índices

Para anexar uma política a vários índices que correspondam ao padrão do índice, crie e use um modelo do ISM.

Use a seguinte chamada de API para criar a política:

PUT _plugins/_ism/policies/test_policy

Exemplo de política:

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

Use o exemplo de chamada de API a seguir para verificar se o modelo test_policy está anexado ao índice recém-criado:

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

Saída esperada:

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

Para obter mais informações, consulte Explain index (Explicar índice) no site do OpenSearch.

Observação: o índice também é preenchido na seção Índices gerenciados na guia Gerenciamento de índices do OpenSearch Dashboards.

Verifique os estados da sua política do ISM

Em uma operação de rollover, um índice é concluído depois que é transferido, passa para um estado warm e a contagem de réplicas é atualizada.

Se você usa uma política do ISM e o índice não migra corretamente, verifique o status do ISM.

Para verificar o status da migração de um índice, use a seguinte API:

GET _ultrawarm/migration/index_name/_status

Observação: substitua index_name pelo nome do índice do qual você está verificando o status.

Para obter o status de migração de todos os índices, use a seguinte API:

GET _ultrawarm/migration/_status?

Observação: para transferir dados do armazenamento hot para o armazenamento warm ou cold, ative o armazenamento warm e cold no domínio antes de configurar a política do ISM. A política do ISM também deve incluir explicitamente a ação de migração para fazer a transição de um índice entre os níveis de armazenamento. Sem a ação de migração, somente o nome do estado da política é alterado. O índice continua residindo no armazenamento hot.

Configure uma ação de migração warm:

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

Configure uma ação de migração cold:

{
        "name": "cold",
        "actions": [{
            "cold_migration": {
              "timestamp_field": "<your timestamp field>"
            }
          }
AWS OFICIALAtualizada há 10 meses