DBAtlas · データベース運用アトラス

ILM ポリシーを定義し、テンプレート経由で適用し、ロールオーバーチェーンをブートストラップする

Elasticsearchインデックスのライフサイクル

コマンド

PUT _ilm/policy/log-policy
{
  "policy": {
    "phases": {
      "hot": { "actions": { "rollover": { "max_primary_shard_size": "50gb", "max_age": "1d" }, "set_priority": { "priority": 100 } } },
      "warm": { "min_age": "7d", "actions": { "shrink": { "number_of_shards": 1 }, "forcemerge": { "max_num_segments": 1 }, "set_priority": { "priority": 50 } } },
      "delete": { "min_age": "30d", "actions": { "delete": {} } }
    }
  }
}
PUT _index_template/log
{
  "index_patterns": ["log-*"],
  "priority": 500,
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "log-policy",
      "index.lifecycle.rollover_alias": "log"
    }
  }
}
# Create the first index with the write alias (its name must end with a number such as -000001):
PUT log-000001
{
  "aliases": { "log": { "is_write_index": true } }
}

概要

hot (rollover)、warm (shrink + force merge)、delete の各フェーズを持つ ILM ポリシーを作成し、テンプレートを通じて新しいインデックスにポリシーとロールオーバーエイリアスを適用し、書き込みエイリアスを持つチェーンの最初のインデックスを作成する。

使用する場面

ログやメトリクスなどの時系列データについて、インデックスのサイズ、保持、削除を自動化する場合。

注意

warm フェーズと delete フェーズの min_age は、インデックスの作成時ではなくロールオーバーの時点から数えられる。ポリシーの変更は、既存のインデックスには現在のフェーズが完了した後にのみ適用される。warm フェーズの shrink と forcemerge は大量の IO を生じる。force merge が完了するまで、インデックスに書き込んではならない。ILM はデフォルトで 10 分ごとに実行されるため、条件は即座には評価されない。

DBAtlas で開く →

関連項目