Todos os produtos
Search
Central de documentação

Elasticsearch:Gerenciar dados do Heartbeat usando ILM

Última atualização: Aug 19, 2026

Os dados de monitoramento de séries temporais gerados pelo Heartbeat aumentam continuamente, o que eleva o número de shards e a carga do cluster. Use o Index Lifecycle Management (ILM) para definir uma política de rollover para os índices heartbeat-*. Essa política permite executar o rollover dos índices na fase hot, reduzir shards e forçar a mesclagem de segmentos na fase warm, migrar dados para nós warm na fase cold e excluir periodicamente os dados expirados na fase delete.

Procedimento

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

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

  2. Etapa 2: Configurar o ILM no Heartbeat

    Ative o recurso ILM e configure seus parâmetros no arquivo heartbeat.yml. Após iniciar o Heartbeat, o Elasticsearch gera automaticamente um modelo de índice do Heartbeat.

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

    Use a API de política de ILM para criar uma política que defina as condições de rollover e arquivamento de í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: Associar um índice à política de ILM

    Vincule a política de ILM ao primeiro índice do Heartbeat para aplicá-la a todos os índices abrangidos pelo modelo.

  6. Etapa 6: Visualizar índices em cada fase

    Visualize os índices arquivados em cada fase: hot, warm, cold e delete.

Etapa 1: Criar e configurar um cluster hot-warm

  1. Crie um cluster hot-warm com nós hot e warm e visualize seus atributos. A tabela a seguir descreve as diferenças.

    Tipo de nó

    Requisitos de dados

    Desempenho de leitura/gravação

    Especificações

    Armazenamento

    Nó hot

    Dados recentes, como logs dos últimos dois dias.

    Alto

    Elevado, por exemplo, 32 núcleos e 64 GB.

    Recomenda-se o uso de discos cloud SSD.

    Nó warm

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

    Baixo

    Reduzido, por exemplo, 8 núcleos e 32 GB.

    Recomenda-se o uso de ultra disks. Também é possível usar o OpenStore para implementar armazenamento serverless para grandes volumes de dados cold.

    No Alibaba Cloud Elasticsearch, o valor box_type de um nó warm é warm , e não cold . Isso ocorre porque os nós warm no Alibaba Cloud Elasticsearch correspondem à camada warm na arquitetura nativa do Elasticsearch.
    1. Ao criar uma instância do Alibaba Cloud Elasticsearch, ative os Warm nodes para criar um cluster hot-warm.

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

      • Nó hot: -Enode.attr.box_type=hot

      • Nó warm: -Enode.attr.box_type=warm

      A ativação de nós warm designa seus nós de dados existentes como nós hot.
    2. Faça login no console Kibana do cluster. Para mais informações, 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 a seguir para visualizar os atributos dos nós hot e warm no cluster.

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

      Se a saída contiver nós hot e warm, o cluster suporta a arquitetura hot-warm.

  2. Ative a criação automática de índices para o cluster. Para mais informações, consulte Ativar a criação automática de índices configurando parâmetros YML.

  3. Configure uma lista de permissões de IP para acesso público ao cluster e adicione o endereço IP do servidor onde o Heartbeat está instalado à lista. Para mais informações, consulte Configurar uma lista de permissões de IP.

Etapa 2: Configurar o ILM no Heartbeat

Para mais detalhes sobre como configurar o ILM, consulte Set up index lifecycle management.

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

  2. Edite o arquivo heartbeat.yml para definir as seções heartbeat.monitors, setup.template.settings, setup.kibana e output.elasticsearch.

    O exemplo a seguir mostra uma configuração de amostra.

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

    A tabela a seguir descreve alguns dos parâmetros. Para mais informações, consulte a documentação de configuração do Heartbeat.

    Parâmetro

    Descrição

    index.number_of_shards

    Quantidade de shards primários. O padrão é 1.

    index.routing.allocation.require.box_type

    Especifica que os dados do índice devem ser gravados em nós hot.

    setup.template.overwrite

    Define se o modelo de índice original deve ser substituído. Caso já tenha carregado esta versão do modelo no Elasticsearch, defina este parâmetro como true para sobrescrever o modelo existente. Trata-se de um item de configuração de nível superior, no mesmo nível de setup.template.settings.

    host

    Substitua o valor pelo endpoint público do seu service Kibana. Obtenha o endpoint na página de configuração do Kibana.

    hosts

    Substitua o valor pelo endpoint público ou privado do seu cluster Elasticsearch. Obtenha o endpoint na página Basic Information do cluster. Para mais informações, consulte Visualizar as informações básicas de uma instância. Se definir este parâmetro com o endpoint público, configure uma lista de permissões de IP para acesso público ao cluster. Para mais informações, consulte Configurar uma lista de permissões de IP. Se utilizar o endpoint privado, garanta que o cluster e o servidor que hospeda o Heartbeat estejam na mesma VPC.

    ilm.enabled

    Defina este parâmetro como true para ativar o ILM.

    ilm.rollover_alias

    Alias para o índice gerado durante um rollover. O valor padrão é heartbeat-{beat.version}.

    ilm.pattern

    Padrão para o índice gerado durante um rollover. Este parâmetro suporta date math. O valor padrão é {now/d}-000001. Quando um rollover é acionado, o contador numérico no nome do índice incrementa em 1. Por exemplo, se o primeiro rollover gerar um índice chamado heartbeat-2020.04.29-000001, o próximo rollover gerará um novo índice chamado heartbeat-2020.04.29-000002.

    username

    O nome de usuário padrão é elastic.

    password

    Senha do usuário elastic. A senha é definida durante a criação da instância. Caso tenha esquecido a senha, redefina-a. Para mais informações, consulte Redefinir a senha de acesso de uma instância.

    Importante

    Se você modificar ilm.rollover_alias ou ilm.pattern após carregar o modelo de índice, defina setup.template.overwrite como true para substituir o modelo.

  3. Inicie o service Heartbeat.

    sudo ./heartbeat -e

Etapa 3: Criar uma política de ILM

É possível criar uma política de ILM no Elasticsearch usando a API ou o console Kibana. O exemplo a seguir demonstra como criar a política heartbeat-policy por meio da API.

O Heartbeat pode carregar e gravar uma política padrão no Elasticsearch com o comando ./heartbeat setup --ilm-policy. Para criar uma política personalizada, exporte a política padrão com ./heartbeat export ilm-policy e modifique-a conforme necessário.

No console Kibana, execute o comando a seguir para criar uma 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

Um rollover é acionado quando o tamanho do índice atinge 5 MB, a idade do índice chega a 1 dia ou a contagem de documentos alcança 100. A ação rollover suporta as condições max_docs, max_size e max_age, sendo executada se qualquer uma delas for atendida. Após o rollover, o índice antigo entra na fase warm após um atraso de 60 segundos.

warm

O índice é reduzido para um shard e depois mesclado à força em um único segmento. Em seguida, o índice entra na fase cold três minutos após o rollover.

cold

O índice migra de um nó hot para um nó warm e entra na fase delete uma hora depois.

delete

O índice é excluído.

Não é possível alterar o nome da política após sua criação. Você também pode criar uma política no console Kibana. No entanto, a unidade mínima para max_age no Kibana é horas. Ao usar a API, especifique a unidade mínima em segundos.

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

Após iniciar o Heartbeat, um modelo de índice do Heartbeat é criado automaticamente no Elasticsearch. Associe a política heartbeat-policy criada na Etapa 3: Criar uma política de ILM a este modelo de índice.

  1. Faça login no console Kibana da sua instância Alibaba Cloud Elasticsearch. Para mais informações, consulte Conectar-se a um cluster usando o Kibana.

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

  3. Na área Elasticsearch, clique em Index Lifecycle Policies.

  4. Na lista Index lifecycle policies, localize a política heartbeat-policy e escolha Actions > Add policy to index template na linha da política.

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

  6. Clique em Add policy.

Etapa 5: Associar um índice à política de ILM

Depois de iniciar o Heartbeat, o Elasticsearch cria automaticamente um índice. Associe manualmente a política de ILM a este primeiro índice para substituir sua política padrão. Essa etapa é necessária mesmo que a política já esteja associada ao modelo de índice, conforme descrito na Etapa 4: Associar a política de ILM a um modelo de índice.

  1. Na página Management, dentro da área Elasticsearch, clique em Index Management.

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

  3. Na página Summary, escolha Manage > Remove lifecycle policy para remover a política padrão fornecida com o Heartbeat.

  4. Na caixa de diálogo exibida, clique em Remove policy.

  5. Em seguida, escolha Manage > Add lifecycle policy.

  6. Na caixa de diálogo exibida, selecione a política heartbeat-policy criada na Etapa 3: Criar uma política de ILM na lista Lifecycle policy. Na caixa de texto Index rollover alias, insira o alias de índice definido na Etapa 4: Associar a política de ILM a um modelo de índice. Depois, clique em Add policy.

Etapa 6: Visualizar índices em cada fase

Na página Index management, clique na lista suspensa Lifecycle phase e selecione uma fase do ciclo de vida, como Hot, Warm ou Cold, para filtrar e visualizar os índices nessa fase.

Perguntas frequentes

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

Por padrão, o ILM verifica índices correspondentes a uma política a cada 10 minutos. Durante esse intervalo, o volume de dados pode exceder o limiar especificado. Por exemplo, na Etapa 3: Criar uma política de ILM, max_docs está definido como 100, mas o rollover pode não ser acionado até que o número de documentos já tenha ultrapassado 100.

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

Importante

Uma frequência alta de verificação aumenta a carga do nó. Configure este parâmetro com cautela, de acordo com os requisitos do seu negócio.

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