インデックスライフサイクル
ILM は、5つのインデックスライフサイクル フェーズ を定義します:
- ホット: インデックスは積極的に更新され、クエリされています。
- ウォーム: インデックスはもはや更新されていませんが、まだクエリされています。
- コールド: インデックスはもはや更新されておらず、クエリされる頻度が低いです。情報はまだ検索可能である必要がありますが、そのクエリが遅くても問題ありません。
- フローズン: インデックスはもはや更新されておらず、クエリされることは稀です。情報はまだ検索可能である必要がありますが、そのクエリが非常に遅くても問題ありません。
- 削除: インデックスはもはや必要なく、安全に削除できます。
インデックスの ライフサイクルポリシー は、どのフェーズが適用されるか、各フェーズで実行されるアクション、およびフェーズ間の遷移のタイミングを指定します。
インデックスを作成する際に、手動でライフサイクルポリシーを適用できます。時系列インデックスの場合、ライフサイクルポリシーを新しいインデックスを作成するために使用されるインデックステンプレートに関連付ける必要があります。インデックスがロールオーバーすると、手動で適用されたポリシーは新しいインデックスに自動的には適用されません。
Elasticsearchのセキュリティ機能を使用している場合、ILMはポリシーを最後に更新したユーザーとして操作を実行します。ILMは、最後のポリシー更新時にユーザーに割り当てられた roles のみを持っています。
フェーズ遷移
ILMは、インデックスの年齢に応じてライフサイクルを通じてインデックスを移動させます。これらの遷移のタイミングを制御するために、各フェーズの 最小年齢 を設定します。インデックスが次のフェーズに移動するには、現在のフェーズのすべてのアクションが完了している必要があり、インデックスは次のフェーズの最小年齢よりも古くなければなりません。設定された最小年齢は、後続のフェーズ間で増加する必要があります。たとえば、最小年齢が10日の「ウォーム」フェーズの後には、最小年齢が未設定または >= 10日の「コールド」フェーズのみが続くことができます。
最小年齢のデフォルトはゼロで、これによりILMは現在のフェーズのすべてのアクションが完了するとすぐにインデックスを次のフェーズに移動させます。
インデックスが ロールオーバー されている場合、min_age
の値はインデックスがロールオーバーされた時点に対して相対的であり、インデックスの作成時刻ではありません。詳細を学ぶ。
インデックスに未割り当てのシャードがあり、クラスターの健康状態 が黄色の場合、インデックスはそのインデックスライフサイクル管理ポリシーに従って次のフェーズに遷移できます。ただし、Elasticsearchは緑のクラスターでのみ特定のクリーンアップタスクを実行できるため、予期しない副作用が生じる可能性があります。
ディスク使用量の増加や信頼性の問題を避けるために、クラスターの健康問題にタイムリーに対処してください。
フェーズ実行
ILMは、フェーズ内のアクションが実行される順序と、各アクションのために必要なインデックス操作を実行するために実行される ステップ を制御します。
インデックスがフェーズに入ると、ILMはインデックスメタデータにフェーズ定義をキャッシュします。これにより、ポリシーの更新がインデックスをフェーズから決して出られない状態にすることがないようにします。変更が安全に適用できる場合、ILMはキャッシュされたフェーズ定義を更新します。そうでない場合、フェーズ実行はキャッシュされた定義を使用して続行されます。
ILMは定期的に実行され、インデックスがポリシー基準を満たしているかどうかを確認し、必要なステップを実行します。競合状態を避けるために、ILMはアクションを完了するために必要なすべてのステップを実行するために複数回実行する必要がある場合があります。たとえば、ILMがインデックスがロールオーバー基準を満たしていると判断した場合、ロールオーバーアクションを完了するために必要なステップの実行を開始します。次のステップに進むのが安全でないポイントに達した場合、実行は停止します。次回ILMが実行されると、ILMは前回の実行を中断したところから実行を再開します。これは、indices.lifecycle.poll_interval
が10分に設定されていてインデックスがロールオーバー基準を満たしていても、ロールオーバーが完了するまでに20分かかる可能性があることを意味します。
フェーズアクション
ILMは各フェーズで以下のアクションをサポートしています。ILMはリストに記載された順序でアクションを実行します。