DEV Community

Cover image for Como Configurar e Testar Políticas ILM no Elasticsearch
Alex Salgado
Alex Salgado

Posted on

1

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

Image of Bright Data

Maximize Data Efficiency – Store and process vast amounts efficiently.

Optimize your infrastructure with our solutions designed for high-volume data processing and storage.

Optimize Now

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay