チュートリアル: 組み込みの ILM ポリシーをカスタマイズする

Elasticsearch には、以下の組み込み ILM ポリシーが含まれています:

  • logs@lifecycle
  • metrics@lifecycle
  • synthetics@lifecycle

Elastic Agent は、これらのポリシーを使用してデータストリームのバックインデックスを管理します。このチュートリアルでは、Kibana の インデックスライフサイクルポリシー を使用して、アプリケーションのパフォーマンス、耐障害性、および保持要件に基づいてこれらのポリシーをカスタマイズする方法を示します。

シナリオ

ログファイルを Elasticsearch クラスターに送信して、データを視覚化および分析したいと考えています。このデータには、以下の保持要件があります:

  • 書き込みインデックスが 50GB に達するか、30 日が経過した場合、新しいインデックスにロールオーバーします。
  • ロールオーバー後、インデックスをホットデータ層に 30 日間保持します。
  • ロールオーバーから 30 日後:
    • インデックスをウォームデータ層に移動します。
    • レプリカシャードを 1 に設定します。
    • 強制マージ して、削除されたドキュメントによって使用されているスペースを解放します。
  • ロールオーバーから 90 日後にインデックスを削除します。

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • ホットおよびウォームデータ層を持つ Elasticsearch クラスター。
    • Elasticsearch サービス: Elasticsearch サービス上の Elastic Stack デプロイメントには、デフォルトでホット層が含まれています。ウォーム層を追加するには、デプロイメントを編集し、ウォームデータ層の 容量を追加 をクリックします。
      デプロイメントにウォームデータ層を追加する
    • 自己管理型クラスター: データ層 に記載されているように、ノードに data_hot および data_warm ロールを割り当てます。
      例えば、ウォーム層の各ノードの elasticsearch.yml ファイルに data_warm ノードロールを含めます:

Yaml

  1. node.roles: [ data_warm ]
  • Elastic Agent がインストールされ、ログを Elasticsearch クラスターに送信するように構成されたホスト。

ポリシーを複製する

Elastic Agent は、ログ監視データを保存するために logs-*-* のインデックスパターンを持つデータストリームを使用します。管理された logs@lifecycle ILM ポリシーは、これらのデータストリームのバックインデックスを自動的に管理します。

ポリシーのデフォルトを使用したくない場合は、管理されたポリシーをカスタマイズし、新しいポリシーとして保存できます。新しいポリシーは、関連するコンポーネントテンプレートやインデックステンプレートで使用できます。

管理されたポリシーを直接編集することは決してしないでください。管理されたポリシーへの変更は、元に戻されたり上書きされたりする可能性があります。

Kibana で logs@lifecycle ポリシーを新しいポリシーとして保存するには:

  • 1. メニューを開き、スタック管理 \u0026gt; インデックスライフサイクルポリシー に移動します。
  • 2. 管理されたシステムポリシーを含める を切り替えます。
  • 3. logs@lifecycle ポリシーを選択します。
  • 4. ポリシーログを編集 ページで、新しいポリシーとして保存 を切り替え、新しいポリシーの名前を提供します。例えば、logs-custom です。

logs@lifecycle ポリシーは、推奨されるロールオーバーのデフォルトを使用します: 現在の書き込みインデックスが 50GB に達するか、30 日が経過したときに新しいインデックスへの書き込みを開始します。

ロールオーバー設定を表示または変更するには、ホットフェーズの 詳細設定 をクリックします。次に、推奨デフォルトを使用 を無効にしてロールオーバー設定を表示します。

ロールオーバーデフォルトを表示

ポリシーを変更する

デフォルトの logs@lifecycle ポリシーは、多くの小さな日次インデックスの作成を防ぐように設計されています。ポリシーのコピーを変更して、パフォーマンス要件を満たし、リソース使用を管理できます。

  • 1. ウォームフェーズを有効にし、詳細設定 をクリックします。
    • 1.1. フェーズにデータを移動する条件30 日経過 に設定します。これにより、ロールオーバーから 30 日後にインデックスがウォーム層に移動します。
    • 1.2. レプリカを設定 を有効にし、レプリカの数1 に変更します。
    • 1.3. データを強制的にマージ を有効にし、セグメントの数1 に設定します。
      カスタム設定でウォームフェーズを追加
  • 2. ウォームフェーズで、ゴミ箱アイコンをクリックして削除フェーズを有効にします。
    削除フェーズを有効にする
    削除フェーズでは、フェーズにデータを移動する条件90 日経過 に設定します。これにより、ロールオーバーから 90 日後にインデックスが削除されます。
    削除フェーズを追加
  • 3. 新しいポリシーとして保存 をクリックします。

管理された ILM ポリシーのコピーも 管理済み としてマークされます。 ライフサイクルポリシーの作成または更新 API を使用して、_meta.managed パラメータを false に更新できます。

ポリシーを適用する

新しい ILM ポリシーを logs インデックステンプレートに適用するには、logs@custom コンポーネントテンプレートを作成または編集します。

*@custom コンポーネントテンプレートを使用すると、管理されたインデックステンプレートのマッピングと設定をカスタマイズできます。管理されたインデックステンプレートやコンポーネントテンプレートをオーバーライドする必要はありません。このタイプのコンポーネントテンプレートは、インデックステンプレートによって自動的に取得されます。詳細を学ぶ

  • 1. コンポーネントテンプレート タブをクリックし、コンポーネントテンプレートを作成 をクリックします。
  • 2. ロジスティクス の下で、コンポーネントテンプレートに logs@custom という名前を付けます。
  • 3. インデックス設定 の下で、前のステップで作成した ILM ポリシー名を設定します:

JSON

  1. {
  2. "index": {
  3. "lifecycle": {
  4. "name": "logs-custom"
  5. }
  6. }
  7. }
  • 4. レビュー に進み、コンポーネントテンプレートを保存 をクリックします。
  • 5. インデックステンプレート タブをクリックし、logs インデックステンプレートを選択します。
  • 6. 概要で、コンポーネントテンプレート リストを表示します。logs@custom がリストに表示されるはずです。