チュートリアル: 組み込みの 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
ノードロールを含めます:
- Elasticsearch サービス: Elasticsearch サービス上の Elastic Stack デプロイメントには、デフォルトでホット層が含まれています。ウォーム層を追加するには、デプロイメントを編集し、ウォームデータ層の 容量を追加 をクリックします。
Yaml
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
{
"index": {
"lifecycle": {
"name": "logs-custom"
}
}
}
- 4. レビュー に進み、コンポーネントテンプレートを保存 をクリックします。
- 5. インデックステンプレート タブをクリックし、
logs
インデックステンプレートを選択します。 - 6. 概要で、コンポーネントテンプレート リストを表示します。
logs@custom
がリストに表示されるはずです。