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
}

Artículos Relacionados