TL;DR — Resumen Rápido
Configure Elasticsearch para un robusto análisis de logs centralizado, resolución de fallos de nodos y optimización del ciclo de vida de índices.
Registro Centralizado con Elasticsearch
En la infraestructura moderna, las aplicaciones están distribuidas. Ingresar por SSH a máquinas individuales para buscar logs con grep ya no es viable.
Elasticsearch (parte de la pila ELK) resuelve esto recopilando, indexando y permitiendo búsquedas ultrarrápidas en todos sus logs de forma centralizada.
Instalación Paso a Paso
1. Agregar Repositorio e Instalar (Ubuntu/Debian)
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update && sudo apt install elasticsearch -y
2. Configurar el Tamaño del Heap de la JVM
Edite /etc/elasticsearch/jvm.options.d/heap.options:
-Xms4g
-Xmx4g
3. Configurar el Clúster
Edite /etc/elasticsearch/elasticsearch.yml:
cluster.name: prod-logs-cluster
node.name: es-node-01
network.host: 192.168.1.50
http.port: 9200
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
4. Iniciar el Servicio
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Gestión de Datos (ILM)
Cree una política ILM para evitar llenar los discos:
PUT _ilm/policy/logs_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": { "max_size": "50GB", "max_age": "30d" }
}
},
"delete": {
"min_age": "90d",
"actions": { "delete": {} }
}
}
}
}
Solución de Problemas de Salud del Clúster
Compruebe la salud: GET _cluster/health
Excepción de Uso de Disco (High Watermark)
Error: cluster_block_exception [FORBIDDEN/12/index read-only / allow delete]
Causa: El disco alcanzó el 95% de capacidad.
Solución: Libere espacio en disco y desbloquee manualmente los índices:
PUT _all/_settings
{
"index.blocks.read_only_allow_delete": null
}