DBAtlas · Atlas d'exploitation des bases de données

Définir une politique ILM, l'attacher via un template et initialiser la chaîne de rollover

ElasticsearchCycle de vie des index

Commande

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 } }
}

Ce que fait la commande

Crée une politique ILM avec les phases hot (rollover), warm (shrink + force merge) et delete, applique la politique et l'alias de rollover aux nouveaux index via un template, et crée le premier index de la chaîne avec l'alias d'écriture.

Quand l'utiliser

Pour automatiser la taille, la rétention et la suppression des index pour des données de séries temporelles comme les logs ou les métriques.

Attention

min_age dans les phases warm et delete est compté à partir du rollover, et non de la création de l'index. Les modifications de politique ne s'appliquent aux index existants qu'après la fin de leur phase en cours. Shrink et forcemerge dans la phase warm génèrent une forte IO ; l'index ne doit pas recevoir d'écritures avant la fin du force merge. ILM s'exécute toutes les 10 minutes par défaut, les conditions ne sont donc pas évaluées instantanément.

Ouvrir dans DBAtlas →

Voir aussi