Como Configurar e Testar Políticas ILM no Elasticsearch

salgado

Alex Salgado

Posted on August 2, 2024

Como Configurar e Testar Políticas ILM no Elasticsearch

Introdução

Gerenciar dados de forma eficiente é crucial, especialmente em sistemas que lidam com grandes volumes de informações. O Elasticsearch, uma poderosa ferramenta de busca e análise, oferece o recurso de políticas de gerenciamento de ciclo de vida de índices (ILM) para ajudar a gerenciar como os dados são armazenados, movidos e excluídos ao longo do tempo. Isso não só otimiza a performance, mas também ajuda a reduzir os custos de armazenamento. Imagine uma empresa que coleta dados de sensores IoT: inicialmente, os dados precisam ser acessados rapidamente, mas com o tempo, podem ser movidos para um armazenamento mais barato antes de serem excluídos após um período.

Passo 1: Configurar a Política ILM

1.1 Definindo a Política ILM

Primeiro, precisamos criar uma política ILM chamada my_ilm_policy. Esta política divide o ciclo de vida dos dados em três fases:

  • Fase "hot": Aqui, os dados são escritos inicialmente. Configuramos para fazer o rollover (criar um novo índice) quando o índice atinge 50 GB ou 30 dias de idade.
  • Fase "warm": Após 30 dias, os dados são movidos para nós de dados "warm", que são mais baratos, mas ainda relativamente rápidos.
  • Fase "delete": Após 90 dias, os dados são excluídos para liberar espaço.

Comando:

PUT /_ilm/policy/my_ilm_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "50gb",
            "max_age": "30d"
          }
        }
      },
      "warm": {
        "min_age": "30d",
        "actions": {
          "allocate": {
            "require": {
              "data": "warm"
            }
          }
        }
      },
      "delete": {
        "min_age": "90d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

1.2 Criar o Índice Inicial e Associar o Alias

Agora, criamos o primeiro índice (my_index-000001) e associamos a ele um alias chamado my_alias. O alias é um apelido para o índice, facilitando a referência a ele. Também aplicamos a política ILM my_ilm_policy ao índice.

Comando:

PUT /my_index-000001
{
  "settings": {
    "index": {
      "lifecycle": {
        "name": "my_ilm_policy",
        "rollover_alias": "my_alias"
      }
    }
  },
  "aliases": {
    "my_alias": {}
  }
}
Enter fullscreen mode Exit fullscreen mode

Passo 2: Verificar o Índice de Gravação e sua Saúde

2.1 Verificar o Índice de Gravação

Para garantir que estamos gravando no índice correto, verificamos qual índice está associado ao alias my_alias.

Comando:

GET /_alias/my_alias
Enter fullscreen mode Exit fullscreen mode

2.2 Verificar a Saúde do Índice de Gravação

Para garantir que o índice está funcionando corretamente, verificamos sua saúde.

Comando:

GET /_cluster/health/my_index-000001
Enter fullscreen mode Exit fullscreen mode

Passo 3: Realizar o Rollover Manualmente

3.1 Forçar o Rollover do Índice

Se quisermos forçar a criação de um novo índice de gravação manualmente (sem esperar pelos critérios de tamanho ou idade), usamos o comando abaixo. Isso cria um novo índice (por exemplo, my_index-000002) e o associa ao alias my_alias.

Comando:

POST /my_alias/_rollover
Enter fullscreen mode Exit fullscreen mode

Passo 4: Verificar o Novo Índice de Gravação e sua Saúde

4.1 Identificar o Novo Índice de Gravação

Depois de realizar o rollover, verificamos novamente qual índice está associado ao alias my_alias e está sendo usado para gravar novos dados.

Comando:

GET /_alias/my_alias
Enter fullscreen mode Exit fullscreen mode

4.2 Verificar a Saúde do Novo Índice de Gravação

Verificamos a saúde do novo índice de gravação (por exemplo, my_index-000002) para garantir que ele está funcionando corretamente.

Comando:

GET /_cluster/health/my_index-000002
Enter fullscreen mode Exit fullscreen mode

Passo 5: Verificar Remoção do Alias de Índices Antigos na Fase "warm"

5.1 Verificar a Configuração do Alias Após a Mudança de Fase

Depois que o índice original se move para a fase "warm", verificamos se ele foi removido do alias my_alias. Isso deve acontecer automaticamente conforme nossa política ILM.

Comando:

GET /_alias/my_alias
Enter fullscreen mode Exit fullscreen mode

Resumo

  1. Configurar a política ILM para gerenciar como e quando os índices são movidos ou excluídos.
  2. Criar o primeiro índice e associar um alias a ele.
  3. Verificar qual índice está sendo usado para gravação e sua saúde.
  4. Forçar a criação de um novo índice de gravação manualmente.
  5. Verificar o novo índice de gravação e garantir que ele está saudável.
  6. Verificar se o índice antigo foi removido do alias quando se move para uma fase de dados menos importante.

Esses passos ajudam a garantir que seus dados estão sendo gerenciados de forma eficiente e que você sempre está escrevendo em um índice saudável e atualizado.

Referências

  1. Documentação oficial do Elasticsearch sobre ILM
  2. Tutoriais e exemplos de uso de ILM
💖 💪 🙅 🚩
salgado
Alex Salgado

Posted on August 2, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related