DBAtlas · Atlas de operaciones de bases de datos

Definir una política ILM, asociarla mediante un template e iniciar la cadena de rollover

ElasticsearchCiclo de vida de índices

Comando

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

Qué hace

Crea una política ILM con fases hot (rollover), warm (shrink + force merge) y delete, aplica la política y el alias de rollover a los índices nuevos mediante un template y crea el primer índice de la cadena con el alias de escritura.

Cuándo usarlo

Al automatizar el tamaño, la retención y el borrado de índices para datos de series temporales como logs o métricas.

Precaución

min_age en las fases warm y delete se cuenta desde el momento del rollover, no desde la creación del índice. Los cambios de política se aplican a los índices existentes solo cuando termina su fase actual. Shrink y forcemerge en la fase warm generan mucho IO; no se debe escribir en el índice hasta que termine el force merge. ILM se ejecuta cada 10 minutos por defecto, así que las condiciones no se evalúan al instante.

Abrir en DBAtlas →

Relacionado