すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:ILM を使用した Heartbeat データの管理

最終更新日:Mar 01, 2026

このトピックでは、インデックスライフサイクル管理 (ILM) を使用して Heartbeat 時系列データを管理し、古くなったモニタリングデータをホットノードからウォームノードに自動的に移動して、パフォーマンスを最適化し、ストレージコストを削減する方法について説明します。

前提条件

ILM で Heartbeat データを管理するには、以下が必要です。

  1. Alibaba Cloud Elasticsearch クラスターが作成されていること。

  2. クラスター用にウォームノードが構成されていること。

    ウォームノードは次のいずれかの方法で取得できます。

注意事項

  • テンプレートとエイリアスの要件: ライフサイクルポリシーを設定する前に、インデックステンプレートとエイリアスを定義します。

  • ポリシー変更のタイミング: ロールオーバー中にライフサイクルポリシーを変更した場合、新しいポリシーは次のロールオーバーイベントで有効になります。

操作手順

ステップ 1: ウォームノード構成の確認

続行する前に、クラスターにウォームノードが正しくプロビジョニングされていることを確認します。

Alibaba Cloud Elasticsearch コンソール

Elasticsearch クラスターの基本情報ページに移動し、[ノードの可視化] セクションでクラスタアーキテクチャを確認します。

image

Kibana

Kibana コンソールに移動し、[Dev Tools] を選択して、[Console] で次のコマンドを実行します。

GET _cat/nodeattrs?v&h=node,attr,value&s=attr:desc

応答に box_type:warm 属性が含まれていることは、クラスターにウォームノードが設定されていることを示します。

ステップ 2: Heartbeat での ILM の構成

Heartbeat を Elasticsearch ILM とシームレスに統合するには、heartbeat.yml ファイルで ILM 構成を定義する必要があります。詳細については、「インデックスライフサイクル管理の設定」をご参照ください。

  1. Heartbeat インストールパッケージをダウンロードし、解凍します。

  2. heartbeat.yml」ファイルを編集して、heartbeat.monitorssetup.template.settingssetup.kibana、およびoutput.elasticsearchを定義します。

    このトピックでは、次の構成を使用します。

    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.kibana:
    
      # Kibana Host
      # Scheme and port can be left out and will be set to the default (http and 5601)
      # In case you specify and additional path, the scheme is required: http://localhost:5601/path
      # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
      host: "https://es-cn-4591jumei00xxxxxx.kibana.elasticsearch.aliyuncs.com:5601"
    
    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["es-cn-4591jumei00xxxxxx.elasticsearch.aliyuncs.com:9200"]
      ilm.enabled: true
      setup.template.overwrite: true
      ilm.rollover_alias: "heartbeat"
      ilm.pattern: "{now/d}-000001"
    
      # Enabled ilm (beta) to use index lifecycle management instead daily indices.
      #ilm.enabled: false
    
      # Optional protocol and basic auth credentials.
      #protocol: "https"
      username: "elastic"
      password: "<your_password>"

    パラメーター:

    • index.number_of_shards: プライマリシャードの数。デフォルト値は 1 です。

    • index.routing.allocation.require.box_type: インデックスデータをホットノードに書き込みます。

    • host: ご利用の Kibana サービスのパブリックエンドポイントに置き換えます。エンドポイントは Kibana 構成ページから取得します。

    • hosts: ご利用の Elasticsearch クラスターのパブリックまたは内部エンドポイントに置き換えます。エンドポイントはクラスターの基本情報ページから取得します。詳細については、「インスタンスの基本情報の表示」をご参照ください。

      説明

      これをパブリックエンドポイントに設定する場合、クラスターのパブリックネットワークアクセスホワイトリストを構成します。詳細については、「インスタンスのパブリックまたはプライベートアクセスホワイトリストの構成」をご参照ください。これを内部エンドポイントに設定する場合、クラスターと Heartbeat がインストールされているサーバーが同じ VPC 内にあることを確認します。

    • ilm.enabled: true に設定すると、ILM を有効化します。

    • setup.template.overwrite: 元のインデックステンプレートを上書きするかどうかを指定します。すでにこのバージョンのインデックステンプレートを Elasticsearch に読み込んでいる場合は、このパラメーターを true に設定して、元のテンプレートを上書きします。

    • ilm.rollover_alias: ロールオーバー中に生成されるインデックスのエイリアス。デフォルトは heartbeat-\{beat.version\} です。

    • ilm.pattern: ロールオーバー中に生成されるインデックスのパターン。日付演算をサポートします。デフォルトは {now/d}-000001 です。ロールオーバーがトリガーされると、新しいインデックス名の最後の桁が 1 ずつ増分されます。たとえば、最初のロールオーバーでは heartbeat-2020.04.29-000001 という名前のインデックスが作成されます。ロールオーバー条件が再度満たされると、Elasticsearch は heartbeat-2020.04.29-000002 という名前の新しいインデックスを作成します。

    • ユーザー名: デフォルトのユーザー名は elastic です。

    • password: elastic ユーザーのパスワードは、クラスター作成時に設定されます。

    その他のパラメーターの詳細については、「Heartbeat 公式構成ドキュメント」をご参照ください。

    重要

    インデックス テンプレートを読み込んだ後に ilm.rollover_alias または ilm.pattern を変更した場合は、setup.template.overwritetrue に設定してインデックス テンプレートを再書き込みします。

  3. Heartbeat を起動します。

    sudo ./heartbeat -e

ステップ 3: ILM ポリシーの作成

ILM API または Kibana コンソールを使用して heartbeat-policy を作成します。この例では ILM API を使用します。

説明

Heartbeat にはデフォルトポリシーが含まれています。./heartbeat setup --ilm-policy でロードするか、./heartbeat export ilm-policy でエクスポートできます。エクスポートされたポリシーは、カスタム構成用に変更できます。

Kibana コンソールで、次のコマンドを実行して 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": {}
        }
      }
    }
  }
}
説明
  • ポリシー名は作成後に変更できません。

  • Kibana コンソールでポリシーを作成することもできます。ただし、Kibana の max_age の最小単位は時間です。API を使用する場合、最小単位を秒で指定できます。

ステップ 4: ILM ポリシーのインデックステンプレートへの適用

Heartbeat を開始すると、お使いの Elasticsearch クラスターに Heartbeat インデックス テンプレートが自動的に作成されます。ステップ 3: ILM ポリシーを作成するで作成した ILM ポリシーをこのテンプレートに適用します。

  1. Kibana コンソールにログインします

  2. 左側のナビゲーションメニューで、[管理] をクリックします。

  3. Elasticsearch エリアで、[インデックスライフサイクルポリシー] をクリックします。

  4. [インデックスライフサイクルポリシー] リストで、[アクション] > [インデックステンプレートにポリシーを追加] を選択します。

    Add policy

  5. ダイアログボックスで、[インデックステンプレート] ドロップダウンリストからインデックステンプレートを選択し、[ロールオーバーインデックスのエイリアス] テキストボックスにインデックスエイリアスを入力します。

    Add policy

  6. [ポリシーを追加] をクリックします。

ステップ 5: インデックスと ILM ポリシーの関連付け

Heartbeat の起動後、インデックスが Elasticsearch クラスターに自動的に作成されます。初期化のために、対応する ILM ポリシーをインデックスに手動でリンクする必要があります。

  1. [管理] ページの [Elasticsearch] エリアで、[インデックス管理] を選択します。

  2. インデックス管理] リストで、対象のインデックスを見つけ、その名前をクリックします。

  3. 概要」ページで、[管理] > [ライフサイクルポリシーの削除] をクリックして、Heartbeat に付属するデフォルトポリシーを削除します。

    移除Heartbeat自带的默认策略

  4. ダイアログボックスで、[ポリシーの削除] をクリックします。

  5. 次に、[管理] > [ライフサイクルポリシーの追加] を選択します。

  6. ダイアログボックスで、手順 3: ILM ポリシーの作成で作成したライフサイクルポリシーを、[ライフサイクルポリシー] から選択します。[インデックスロールオーバーエイリアス] テキストボックスに、手順 4: ILM ポリシーをインデックステンプレートに適用するで定義したインデックスエイリアスを入力し、[ポリシーの追加] をクリックします。

    Add policy

    ILM ポリシーが初期インデックスに関連付けられた後、結果は次の図に示されます。关联成功

ステップ 6: 各フェーズでのインデックスの表示

ホット段階のインデックスを表示するには、[インデックス管理] ページで、[ライフサイクル段階] > [ホット] を選択します。ホット段階のインデックスをフィルタリング

他のフェーズのインデックスを表示するには、同じ方法を使用できます。

よくある質問

Q: ILM のチェック間隔を変更するにはどうすればよいですか?

A: デフォルトでは、ILM ポリシーは 10 分ごとにチェックされます。この間隔中に、インデックス内のデータが指定されたしきい値を超える可能性があります。たとえば、「ステップ 3: ILM ポリシーの作成」では、max_docs は 100 に設定されていますが、ロールオーバーはカウントが 100 を超えた後にのみトリガーされます。チェック頻度を変更する (たとえば、1 分にする) には、indices.lifecycle.poll_interval クラスター設定を構成します。

重要

このパラメーターの変更は注意して行ってください。短い間隔は不要なノード負荷を追加する可能性があります。この例では、これを 1m に設定します。

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