La Gestión del Ciclo de Vida del Índice (ILM, por sus siglas en inglés) en Elasticsearch es una funcionalidad que permite definir políticas para gestionar los índices a lo largo de su ciclo de vida. Esto incluye la creación, la gestión, la optimización y la eliminación de índices de manera automatizada, lo que ayuda a mantener el rendimiento y la eficiencia del clúster.
Conceptos Clave
-
Fases del Ciclo de Vida:
- Hot (Caliente): Fase donde los datos son indexados y consultados frecuentemente.
- Warm (Tibia): Fase donde los datos son menos frecuentemente consultados pero aún se necesitan.
- Cold (Fría): Fase donde los datos son raramente consultados y se almacenan de manera más económica.
- Delete (Eliminar): Fase donde los datos ya no son necesarios y se eliminan.
-
Políticas de ILM: Conjunto de reglas que definen cómo y cuándo los índices deben moverse entre las diferentes fases del ciclo de vida.
-
Acciones de ILM: Operaciones específicas que se ejecutan en cada fase, como la rotación de índices, la reducción del número de réplicas, la migración a almacenamiento más económico, etc.
Creación de una Política de ILM
Paso 1: Definir la Política
Para crear una política de ILM, primero se define un conjunto de fases y acciones. A continuación, se muestra un ejemplo de una política de ILM en formato JSON:
{ "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50GB", "max_age": "30d" } } }, "warm": { "min_age": "30d", "actions": { "allocate": { "number_of_replicas": 1 }, "forcemerge": { "max_num_segments": 1 } } }, "cold": { "min_age": "90d", "actions": { "allocate": { "require": { "box_type": "cold" } } } }, "delete": { "min_age": "180d", "actions": { "delete": {} } } } } }
Paso 2: Aplicar la Política a un Índice
Una vez definida la política, se puede aplicar a un índice o a un patrón de índices. Esto se hace mediante la API de Elasticsearch:
PUT _ilm/policy/my_policy { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50GB", "max_age": "30d" } } }, "warm": { "min_age": "30d", "actions": { "allocate": { "number_of_replicas": 1 }, "forcemerge": { "max_num_segments": 1 } } }, "cold": { "min_age": "90d", "actions": { "allocate": { "require": { "box_type": "cold" } } } }, "delete": { "min_age": "180d", "actions": { "delete": {} } } } } }
Paso 3: Asociar la Política a un Índice
Para asociar la política a un índice, se utiliza la API de gestión de índices:
Ejercicio Práctico
Ejercicio 1: Crear y Aplicar una Política de ILM
- Definir una política de ILM que mueva los índices a la fase "warm" después de 7 días y los elimine después de 30 días.
- Aplicar la política a un índice llamado
logs-2023
.
Solución
- Definir la política de ILM:
PUT _ilm/policy/logs_policy { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50GB", "max_age": "7d" } } }, "warm": { "min_age": "7d", "actions": { "allocate": { "number_of_replicas": 1 }, "forcemerge": { "max_num_segments": 1 } } }, "delete": { "min_age": "30d", "actions": { "delete": {} } } } } }
- Aplicar la política al índice
logs-2023
:
Resumen
En esta sección, hemos aprendido sobre la Gestión del Ciclo de Vida del Índice (ILM) en Elasticsearch, incluyendo los conceptos clave, cómo crear y aplicar políticas de ILM, y cómo asociar estas políticas a índices específicos. La ILM es una herramienta poderosa para automatizar la gestión de índices y mantener el rendimiento y la eficiencia del clúster.
En el siguiente módulo, exploraremos técnicas avanzadas para optimizar el rendimiento de búsqueda en Elasticsearch.
Curso de Elasticsearch
Módulo 1: Introducción a Elasticsearch
- ¿Qué es Elasticsearch?
- Instalando Elasticsearch
- Conceptos Básicos: Nodos, Clústeres e Índices
- Arquitectura de Elasticsearch
Módulo 2: Empezando con Elasticsearch
Módulo 3: Técnicas Avanzadas de Búsqueda
Módulo 4: Modelado de Datos y Gestión de Índices
- Mapeo y Analizadores
- Plantillas de Índices
- Alias y Reindexación
- Gestión del Ciclo de Vida del Índice
Módulo 5: Rendimiento y Escalabilidad
- Optimizando el Rendimiento de Búsqueda
- Escalando Elasticsearch
- Monitoreo y Mantenimiento
- Respaldo y Restauración
Módulo 6: Seguridad y Control de Acceso
- Asegurando Elasticsearch
- Autenticación y Autorización de Usuarios
- Control de Acceso Basado en Roles
- Auditoría y Cumplimiento
Módulo 7: Integraciones y Ecosistema
- Elasticsearch con Logstash
- Elasticsearch con Kibana
- Elasticsearch con Beats
- Elasticsearch con Otras Herramientas