La Gestió del Cicle de Vida de l'Índex (Index Lifecycle Management, ILM) és una funcionalitat d'Elasticsearch que permet automatitzar la gestió dels índexs al llarg del seu cicle de vida. Això inclou la creació, la rotació, la migració i la supressió d'índexs basant-se en polítiques definides per l'usuari. Aquesta funcionalitat és especialment útil per gestionar grans volums de dades i assegurar que el rendiment del clúster es mantingui òptim.

Conceptes Clau

  1. Polítiques de Cicle de Vida

Una política de cicle de vida defineix les accions que s'han de prendre en diferents fases del cicle de vida d'un índex. Les fases principals són:

  • Hot (Calent): Fase on l'índex és escrit i cercat activament.
  • Warm (Tèbia): Fase on l'índex ja no és escrit, però encara és cercat freqüentment.
  • Cold (Fred): Fase on l'índex és cercat rarament.
  • Delete (Eliminar): Fase on l'índex és eliminat.

  1. Fases i Accions

Cada fase pot tenir diverses accions associades, com ara:

  • Rollover: Crear un nou índex quan l'índex actual arriba a una certa mida o antiguitat.
  • Shrink: Reduir el nombre de fragments d'un índex.
  • Freeze: Congelar un índex per reduir el seu ús de recursos.
  • Delete: Eliminar l'índex.

  1. Condicions

Les condicions determinen quan una fase ha de començar. Poden basar-se en el temps (per exemple, després de 30 dies) o en altres mètriques (per exemple, quan l'índex arriba a una certa mida).

Creació d'una Política de Cicle de Vida

Exemple de Política de Cicle de Vida

A continuació es mostra un exemple de política de cicle de vida que defineix accions per a les fases hot, warm, cold i delete.

PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "50GB",
            "max_age": "30d"
          }
        }
      },
      "warm": {
        "min_age": "30d",
        "actions": {
          "shrink": {
            "number_of_shards": 1
          },
          "forcemerge": {
            "max_num_segments": 1
          }
        }
      },
      "cold": {
        "min_age": "90d",
        "actions": {
          "freeze": {}
        }
      },
      "delete": {
        "min_age": "180d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Explicació del Codi

  • Hot Phase: L'índex es rotarà quan arribi a 50GB o 30 dies d'antiguitat.
  • Warm Phase: Després de 30 dies, l'índex es reduirà a un sol fragment i es forçarà la fusió a un sol segment.
  • Cold Phase: Després de 90 dies, l'índex es congelarà per reduir l'ús de recursos.
  • Delete Phase: Després de 180 dies, l'índex es suprimirà.

Assignació d'una Política a un Índex

Per aplicar una política de cicle de vida a un índex, cal definir-la en la configuració de l'índex.

PUT my_index
{
  "settings": {
    "index.lifecycle.name": "my_policy",
    "index.lifecycle.rollover_alias": "my_alias"
  }
}

Explicació del Codi

  • index.lifecycle.name: Nom de la política de cicle de vida a aplicar.
  • index.lifecycle.rollover_alias: Àlies utilitzat per a la rotació de l'índex.

Exercici Pràctic

Exercici

  1. Crea una política de cicle de vida anomenada log_policy que:

    • Roti l'índex quan arribi a 20GB o 15 dies.
    • Redueixi l'índex a 2 fragments després de 15 dies.
    • Congeli l'índex després de 60 dies.
    • Suprimeixi l'índex després de 120 dies.
  2. Aplica aquesta política a un índex anomenat log_index.

Solució

PUT _ilm/policy/log_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "20GB",
            "max_age": "15d"
          }
        }
      },
      "warm": {
        "min_age": "15d",
        "actions": {
          "shrink": {
            "number_of_shards": 2
          }
        }
      },
      "cold": {
        "min_age": "60d",
        "actions": {
          "freeze": {}
        }
      },
      "delete": {
        "min_age": "120d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
PUT log_index
{
  "settings": {
    "index.lifecycle.name": "log_policy",
    "index.lifecycle.rollover_alias": "log_alias"
  }
}

Resum

La Gestió del Cicle de Vida de l'Índex (ILM) és una eina poderosa per automatitzar la gestió dels índexs en Elasticsearch. Mitjançant la definició de polítiques de cicle de vida, es poden optimitzar els recursos del clúster i assegurar que els índexs es gestionin de manera eficient al llarg del seu cicle de vida. En aquest mòdul, hem après a crear i aplicar polítiques de cicle de vida, així com a definir accions per a les diferents fases del cicle de vida d'un índex.

© Copyright 2024. Tots els drets reservats