Tous les produits
Search
Centre de documentation

Elasticsearch:Manage Heartbeat data using ILM

Dernière mise à jour :Aug 19, 2026

Le volume des données de surveillance en série temporelle générées par Heartbeat augmente avec le temps, ce qui accroît le nombre de shards et la charge du cluster. Utilisez Index Lifecycle Management (ILM) pour définir une politique de rotation pour les index heartbeat-*. Cette politique permet de faire pivoter les index lors de la phase active (hot), de réduire les shards et de forcer la fusion des segments lors de la phase tiède (warm), de migrer les données vers les nœuds tièdes lors de la phase froide (cold) et de supprimer périodiquement les données expirées lors de la phase de suppression.

Procédure

  1. Étape 1 : Créer et configurer un cluster hot-warm

    Créez un cluster contenant des nœuds hot et warm, activez la création automatique d'index et configurez une liste d'autorisation IP pour l'accès public.

  2. Étape 2 : Configurer ILM dans Heartbeat

    Activez la fonctionnalité ILM et configurez ses paramètres dans le fichier heartbeat.yml. Au démarrage de Heartbeat, Elasticsearch génère automatiquement un modèle d'index Heartbeat.

  3. Étape 3 : Créer une politique ILM

    Utilisez l'API de politique ILM pour créer une politique définissant les conditions de rotation et d'archivage des index.

  4. Étape 4 : Associer la politique ILM à un modèle d'index

    Associez la politique ILM au modèle d'index Heartbeat.

  5. Étape 5 : Associer un index à la politique ILM

    Associez la politique ILM au premier index Heartbeat afin d'appliquer la politique à tous les index couverts par le modèle d'index.

  6. Étape 6 : Afficher les index de chaque phase

    Consultez les index archivés dans chaque phase : hot, warm, cold et delete.

Étape 1 : Créer et configurer un cluster hot-warm

  1. Créez un cluster hot-warm, qui contient à la fois des nœuds hot et warm, et consultez leurs attributs. Le tableau suivant décrit les différences.

    Type de nœud

    Exigences en matière de données

    Performances en lecture/écriture

    Spécifications

    Stockage

    nœud hot

    Données récentes, telles que les données de journal des deux derniers jours.

    Élevée

    Élevées, par exemple 32 cœurs et 64 Go.

    Les disques cloud SSD sont recommandés.

    nœud warm

    Données historiques, telles que les données de journal datant de plus de deux jours.

    Faible

    Faibles, par exemple 8 cœurs et 32 Go.

    Les disques ultra sont recommandés. Vous pouvez également utiliser OpenStore pour mettre en œuvre un stockage sans serveur pour de grandes quantités de données froides.

    Dans Alibaba Cloud Elasticsearch, la valeur box_type d'un nœud warm est warm , et non cold . Cela s'explique par le fait que les nœuds warm dans Alibaba Cloud Elasticsearch correspondent au niveau warm dans l'architecture native d'Elasticsearch.
    1. Lorsque vous créez une instance Alibaba Cloud Elasticsearch, activez les nœuds Warm pour créer un cluster hot-warm.

      Après avoir activé et acheté des nœuds warm, le système ajoute le paramètre -Enode.attr.box_type aux paramètres de démarrage du nœud :

      • Nœud hot : -Enode.attr.box_type=hot

      • Nœud warm : -Enode.attr.box_type=warm

      L'activation des nœuds warm désigne vos nœuds de données existants comme des nœuds hot.
    2. Connectez-vous à la console Kibana du cluster. Pour plus d'informations, consultez la rubrique Se connecter à un cluster à l'aide de Kibana.

    3. Dans le volet de navigation de gauche, cliquez sur Dev Tools.

    4. Dans la Console, exécutez la commande suivante pour afficher les attributs des nœuds hot et warm du cluster.

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

      Si la sortie contient des nœuds hot et warm, le cluster prend en charge l'architecture hot-warm.

  2. Activez la création automatique d'index pour le cluster. Pour plus d'informations, consultez la rubrique Activer la création automatique d'index en configurant les paramètres YML.

  3. Configurez une liste d'autorisation IP pour l'accès public au cluster et ajoutez l'adresse IP du serveur sur lequel Heartbeat est installé à la liste. Pour plus d'informations, consultez la rubrique Configurer une liste d'autorisation IP.

Étape 2 : Configurer ILM dans Heartbeat

Pour plus d'informations sur la configuration d'ILM, consultez la rubrique Configurer la gestion du cycle de vie des index.

  1. Téléchargez et décompressez le package d'installation Heartbeat.

  2. Modifiez le fichier heartbeat.yml pour définir les sections heartbeat.monitors, setup.template.settings, setup.kibana et output.elasticsearch.

    L'exemple suivant présente une configuration type.

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

    Le tableau suivant décrit certains des paramètres. Pour plus d'informations, consultez la documentation de configuration Heartbeat.

    Paramètre

    Description

    index.number_of_shards

    Nombre de shards primaires. La valeur par défaut est 1.

    index.routing.allocation.require.box_type

    Spécifie que les données d'index sont écrites sur les nœuds hot.

    setup.template.overwrite

    Indique s'il faut écraser le modèle d'index d'origine. Si vous avez déjà chargé cette version du modèle d'index dans Elasticsearch, vous devez définir ce paramètre sur true pour écraser le modèle d'origine. Il s'agit d'un élément de configuration de premier niveau, au même niveau que setup.template.settings.

    host

    Remplacez la valeur par l'endpoint public de votre service Kibana. Vous pouvez obtenir l'endpoint depuis la page de configuration Kibana.

    hosts

    Remplacez la valeur par l'endpoint public ou privé de votre cluster Elasticsearch. Vous pouvez obtenir l'endpoint depuis la page Informations de base du cluster. Pour plus d'informations, consultez la rubrique Afficher les informations de base d'une instance. Si vous définissez ce paramètre sur l'endpoint public, vous devez configurer une liste d'autorisation IP pour l'accès public au cluster. Pour plus d'informations, consultez la rubrique Configurer une liste d'autorisation IP. Si vous définissez ce paramètre sur l'endpoint privé, assurez-vous que le cluster et le serveur hébergeant Heartbeat se trouvent dans le même VPC.

    ilm.enabled

    Définissez ce paramètre sur true pour activer ILM.

    ilm.rollover_alias

    L'alias de l'index généré lors d'une rotation. La valeur par défaut est heartbeat-{beat.version}.

    ilm.pattern

    Le modèle de l'index généré lors d'une rotation. Ce paramètre prend en charge les calculs de date. La valeur par défaut est {now/d}-000001. Lorsqu'une rotation est déclenchée, le compteur numérique dans le nom de l'index est incrémenté de 1. Par exemple, si la première rotation génère un index nommé heartbeat-2020.04.29-000001, la rotation suivante génère un nouvel index nommé heartbeat-2020.04.29-000002.

    username

    Le nom d'utilisateur par défaut est elastic.

    password

    Le mot de passe de l'utilisateur elastic. Le mot de passe est défini lors de la création de l'instance. Si vous oubliez le mot de passe, vous pouvez le réinitialiser. Pour plus d'informations, consultez la rubrique Réinitialiser le mot de passe d'accès d'une instance.

    Important

    Si vous modifiez ilm.rollover_alias ou ilm.pattern après avoir chargé le modèle d'index, vous devez définir setup.template.overwrite sur true pour écraser le modèle.

  3. Démarrez le service Heartbeat.

    sudo ./heartbeat -e

Étape 3 : Créer une politique ILM

Vous pouvez créer une politique ILM dans Elasticsearch à l'aide de l'API ou de la console Kibana. L'exemple suivant montre comment créer la politique heartbeat-policy à l'aide de l'API.

Heartbeat peut charger et écrire une politique par défaut dans Elasticsearch avec la commande ./heartbeat setup --ilm-policy. Pour créer une politique personnalisée, exportez la politique par défaut avec ./heartbeat export ilm-policy puis modifiez-la.

Dans la console Kibana, exécutez la commande suivante pour créer une politique 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": {}
        }
      }
    }
  }
}

Phase

Description

hot

Une rotation est déclenchée lorsque la taille de l'index atteint 5 Mo, que l'âge de l'index atteint 1 jour ou que le nombre de documents atteint 100. L'action rollover prend en charge les conditions max_docs, max_size et max_age, et se produit si l'une de ces conditions est remplie. Après la rotation, l'ancien index entre dans la phase warm après un délai de 60 secondes.

warm

L'index est réduit à un shard puis fusionné de force en un seul segment. L'index entre ensuite dans la phase cold trois minutes après la rotation.

cold

L'index est migré d'un nœud hot vers un nœud warm et entre dans la phase delete une heure plus tard.

delete

L'index est supprimé.

Le nom de la politique ne peut pas être modifié après sa création. Vous pouvez également créer une politique dans la console Kibana. Toutefois, l'unité minimale pour max_age dans Kibana est l'heure. Si vous utilisez l'API, vous pouvez spécifier l'unité minimale en secondes.

Étape 4 : Associer la politique ILM à un modèle d'index

Au démarrage de Heartbeat, un modèle d'index Heartbeat est automatiquement créé dans Elasticsearch. Associez la politique heartbeat-policy que vous avez créée à l'étape Étape 3 : Créer une politique ILM à ce modèle d'index.

  1. Connectez-vous à la console Kibana de votre instance Alibaba Cloud Elasticsearch. Pour plus d'informations, consultez la rubrique Se connecter à un cluster à l'aide de Kibana.

  2. Dans le volet de navigation de gauche, cliquez sur Management.

  3. Dans la zone Elasticsearch, cliquez sur Index Lifecycle Policies.

  4. Dans la liste Index lifecycle policies, recherchez la politique heartbeat-policy et choisissez Actions > Add policy to index template dans la ligne de la politique.

  5. Dans la boîte de dialogue qui s'affiche, sélectionnez le modèle d'index dans la liste Index template et saisissez un alias d'index dans la zone de texte Alias for rollover index.

  6. Cliquez sur Add policy.

Étape 5 : Associer un index à la politique ILM

Au démarrage de Heartbeat, Elasticsearch crée automatiquement un index. Vous devez associer manuellement la politique ILM à ce premier index pour remplacer sa politique par défaut. Cette étape est nécessaire même si la politique est déjà associée au modèle d'index comme décrit à l'étape Étape 4 : Associer la politique ILM à un modèle d'index.

  1. Sur la page Management, dans la zone Elasticsearch, cliquez sur Index Management.

  2. Dans la liste Index management, recherchez l'index cible et cliquez sur le nom de l'index.

  3. Sur la page Summary, choisissez Manage > Remove lifecycle policy pour supprimer la politique par défaut fournie avec Heartbeat.

  4. Dans la boîte de dialogue qui s'affiche, cliquez sur Remove policy.

  5. Ensuite, choisissez Manage > Add lifecycle policy.

  6. Dans la boîte de dialogue qui s'affiche, sélectionnez la politique heartbeat-policy que vous avez créée à l'étape Étape 3 : Créer une politique ILM dans la liste Lifecycle policy. Dans la zone de texte Index rollover alias, saisissez l'alias d'index que vous avez défini à l'étape Étape 4 : Associer la politique ILM à un modèle d'index. Ensuite, cliquez sur Add policy.

Étape 6 : Afficher les index de chaque phase

Sur la page Index management, cliquez sur la liste déroulante Lifecycle phase et sélectionnez une phase du cycle de vie, telle que Hot, Warm ou Cold, pour filtrer et afficher les index de cette phase.

FAQ

Comment ajuster la fréquence de vérification de la politique ILM ?

Par défaut, ILM vérifie toutes les 10 minutes les index correspondant à une politique. Pendant cet intervalle, la quantité de données peut dépasser le seuil spécifié. Par exemple, à l'étape Étape 3 : Créer une politique ILM, max_docs est défini sur 100, mais la rotation pourrait ne pas être déclenchée avant que le nombre de documents ne dépasse déjà 100.

Vous pouvez contrôler la fréquence de vérification en modifiant le paramètre indices.lifecycle.poll_interval :

Important

Une fréquence de vérification élevée augmente la charge des nœuds. Configurez ce paramètre avec précaution en fonction de vos besoins métier.

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