Todos os produtos
Search
Central de documentação

Elasticsearch:Gerenciar dados do Heartbeat com ILM

Última atualização: Jun 27, 2026

Os dados de monitoramento do Heartbeat crescem continuamente, aumentando a quantidade de shards e a carga do cluster. O gerenciamento de ciclo de vida de índice (ILM) automatiza as operações de rollover, shrink, migração e exclusão nas fases hot, warm, cold e delete para os índices heartbeat-*.

Procedimento

  1. Etapa 1: Criar e configurar um cluster hot-warm

    Crie um cluster hot-warm, ative a criação automática de índices e configure uma lista de permissões de IP de acesso público.

  2. Etapa 2: Configurar o ILM no Heartbeat

    Ative o ILM e defina seus parâmetros no arquivo heartbeat.yml. Durante a inicialização, o Heartbeat gera automaticamente um modelo de índice no Elasticsearch.

  3. Etapa 3: Criar uma política de ILM

    Crie uma política de ciclo de vida que defina as condições de rollover e arquivamento dos índices.

  4. Etapa 4: Associar a política de ILM a um modelo de índice

    Associe a política de ILM ao modelo de índice do Heartbeat.

  5. Etapa 5: Aplicar a política de ILM a um índice

    Aplique a política de ILM ao índice inicial do Heartbeat para que todos os índices subsequentes a herdem.

  6. Etapa 6: Visualizar índices em cada fase

    Visualize os índices em cada fase do ciclo de vida: hot, warm, cold e delete.

Etapa 1: Criar e configurar um cluster hot-warm

  1. Crie um cluster hot-warm e verifique os atributos dos nós. A tabela a seguir compara os tipos de nó.

    Tipo de nó

    Requisitos de armazenamento de dados

    Desempenho de leitura/gravação

    Especificações

    Requisitos de armazenamento

    Nó hot

    Dados recentes, como logs dos últimos dois dias.

    Alto

    Altas (por exemplo, 32 núcleos e 64 GB).

    Discos em nuvem SSD recomendados.

    Nó warm

    Dados históricos, como logs com mais de dois dias.

    Baixo

    Baixas (por exemplo, 8 núcleos e 32 GB).

    Ultra disks recomendados. O OpenStore também está disponível para armazenamento serverless de dados cold.

    No Alibaba Cloud Elasticsearch, o valor de box_type para nós warm é warm (não cold), correspondendo à camada warm do Elasticsearch nativo.
    1. Ao criar uma instância do Alibaba Cloud Elasticsearch, ative os nós warm para criar um cluster hot-warm.

      Após ativar e adquirir os nós warm, o sistema adiciona o parâmetro -Enode.attr.box_type aos parâmetros de inicialização do nó:

      • Nós de dados hot: -Enode.attr.box_type=hot

      • Nós de dados warm: -Enode.attr.box_type=warm

      Os nós de dados funcionam como nós hot somente após a ativação dos nós warm.
    2. Faça login no console Kibana do cluster. Consulte Conectar-se a um cluster usando o Kibana.

    3. No painel de navegação à esquerda, clique em Dev Tools.

    4. No Console, execute o comando abaixo para visualizar os atributos dos nós do cluster.

      GET _cat/nodeattrs?v&h=host,attr,value

      Se a resposta incluir nós hot e warm, o cluster suporta a arquitetura hot-warm.

  2. Ative a criação automática de índices para o cluster desejado. Siga as instruções em Ativar a criação automática de índices configurando parâmetros YML.

  3. Adicione o endereço IP do servidor Heartbeat à lista de permissões de IP do endpoint público do cluster. Consulte Configurar uma lista de permissões de IP.

Etapa 2: Configurar o ILM no Heartbeat

O guia da Elastic Set up index lifecycle management aborda a configuração detalhada do ILM.

  1. Baixe e descompacte o pacote de instalação do Heartbeat.

  2. Edite o arquivo heartbeat.yml para definir heartbeat.monitors, setup.template.settings, setup.kibana e output.elasticsearch.

    Exemplo de configuração:

    heartbeat.monitors:
    - type: icmp
      schedule: '*/5 * * * * * *'
      hosts: ["47.111.xx.xx"]
    
    setup.template.settings:
      index.number_of_shards: 3
      index.codec: best_compression
      index.routing.allocation.require.box_type: "hot"
    
    setup.template.overwrite: true
    
    setup.kibana:
      host: "https://es-cn-4591jumei00xxxxxx.kibana.elasticsearch.aliyuncs.com:5601"
    
    output.elasticsearch:
      hosts: ["es-cn-4591jumei00xxxxxx.elasticsearch.aliyuncs.com:9200"]
      ilm.enabled: true
      ilm.rollover_alias: "heartbeat"
      ilm.pattern: "{now/d}-000001"
      username: "elastic"
      password: "<your_password>"

    Os principais parâmetros estão listados abaixo. A documentação de configuração do Heartbeat detalha todos os parâmetros disponíveis.

    Parâmetro

    Descrição

    index.number_of_shards

    Quantidade de shards primários. Padrão: 1.

    index.routing.allocation.require.box_type

    Direciona os dados do índice para nós hot.

    setup.template.overwrite

    Define se o modelo de índice existente deve ser sobrescrito. Defina como true se esta versão do modelo já estiver carregada. Este é um parâmetro de nível superior, no mesmo nível de setup.template.settings.

    host

    Endpoint público do seu serviço Kibana, disponível na página de configuração do Kibana.

    hosts

    Endpoint público ou interno do seu cluster Elasticsearch, disponível na página Basic Information. Consulte Visualizar informações básicas da instância. Endpoints públicos exigem que o IP do cliente esteja na lista de permissões de IP do cluster. Siga as instruções em Configurar uma lista de permissões de IP. Endpoints internos exigem que o cluster e o servidor Heartbeat estejam na mesma VPC.

    ilm.enabled

    Defina como true para ativar o ILM.

    ilm.rollover_alias

    Alias para o índice após rollover. Padrão: heartbeat-{beat.version}.

    ilm.pattern

    Padrão para o nome do índice após rollover. Suporta date math. Padrão: {now/d}-000001. No rollover, o número final é incrementado (por exemplo, heartbeat-2020.04.29-000001 torna-se heartbeat-2020.04.29-000002).

    username

    Padrão: elastic.

    password

    Senha do usuário elastic, definida durante a criação da instância. Consulte Redefinir a senha de acesso de uma instância.

    Importante

    Se você modificar ilm.rollover_alias ou ilm.pattern após o carregamento do modelo de índice, será necessário definir setup.template.overwrite como true para regravar o modelo de índice.

  3. Inicie o serviço Heartbeat.

    sudo ./heartbeat -e

Etapa 3: Criar uma política de ILM

É possível criar políticas de ILM por meio da API ou do console Kibana. Este exemplo utiliza a API para criar uma política chamada heartbeat-policy.

O Heartbeat carrega uma política padrão quando você executa ./heartbeat setup --ilm-policy. Exporte-a com ./heartbeat export ilm-policy para usar como base para políticas personalizadas.

Execute o seguinte comando no console Kibana para criar a política de ILM:

PUT /_ilm/policy/heartbeat-policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "5mb",
            "max_age": "1d",
            "max_docs": 100
          }
        }
      },
      "warm": {
        "min_age": "60s",
        "actions": {
          "forcemerge": {
                "max_num_segments":1
              },
          "shrink": {
                "number_of_shards":1
              }
        }
      },
      "cold": {
        "min_age": "3m",
        "actions": {
          "allocate": {
            "require": {
              "box_type": "warm"
            }
          }
        }
      },
      "delete": {
        "min_age": "1h",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Fase

Descrição

hot

Aciona um rollover quando o índice atinge 5 MB, 1 dia ou 100 documentos. O índice resultante entra na fase warm após 60 segundos.

warm

Reduz o índice para um shard e força o merge em um único segmento. O índice entra na fase cold 3 minutos após o rollover.

cold

Migra o índice de nós hot para nós warm. Entra na fase delete 1 hora após o rollover.

delete

O índice é excluído.

Os nomes das políticas são imutáveis. O console Kibana também permite a criação de políticas, mas sua unidade mínima para max_age é horas. A API aceita unidades menores, como segundos.

Etapa 4: Associar a política de ILM a um modelo de índice

O Heartbeat cria automaticamente um modelo de índice no Elasticsearch durante a inicialização. Associe a política heartbeat-policy da Etapa 3: Criar uma política de ILM a esse modelo.

  1. Faça login no console Kibana da sua instância Elasticsearch. Consulte Conectar-se a um cluster usando o Kibana.

  2. No painel de navegação à esquerda, clique em Management.

  3. Na seção Elasticsearch, clique em Index Lifecycle Policies.

  4. Na lista Index lifecycle policies, localize heartbeat-policy e clique em Actions > Add policy to index template .

  5. Na caixa de diálogo, selecione o modelo de índice na lista Index template e insira o alias de rollover no campo Alias for rollover index.

  6. Clique em Add policy.

Etapa 5: Aplicar a política de ILM a um índice

O Heartbeat cria um índice inicial na primeira execução. Aplique a política de ILM a esse índice. Os índices subsequentes herdarão a política do modelo configurado na Etapa 4: Associar a política de ILM a um modelo de índice.

  1. Na página Management, acesse a seção Elasticsearch e clique em Index Management.

  2. Na lista Index management, localize o índice desejado e clique no nome dele.

  3. Na página Summary, clique em Manage > Remove lifecycle policy para remover a política padrão incluída no Heartbeat.

  4. Na caixa de diálogo de confirmação, clique em Remove policy.

  5. Em seguida, clique em Manage > Add lifecycle policy.

  6. Na caixa de diálogo, selecione heartbeat-policy da Etapa 3: Criar uma política de ILM na lista Lifecycle policy. Insira o mesmo alias de rollover definido na Etapa 4: Associar a política de ILM a um modelo de índice no campo Index rollover alias e clique em Add policy.

Etapa 6: Visualizar índices em cada fase

Na página Index management, selecione uma fase na lista suspensa Lifecycle phase para filtrar os índices.

Perguntas frequentes

Como ajustar a frequência de verificação da política de ILM?

Por padrão, o ILM verifica índices elegíveis a cada 10 minutos. Nesse intervalo, o volume de dados pode ultrapassar o limiar definido. Por exemplo, na Etapa 3: Criar uma política de ILM, max_docs está definido como 100, mas a contagem real pode exceder esse valor antes que o rollover seja acionado.

Ajuste a frequência de verificação com o parâmetro indices.lifecycle.poll_interval:

Importante

Um intervalo curto aumenta a carga nos nós. Equilibre a responsividade da política com o desempenho do cluster.

PUT _cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval":"1m"
  }
}