← Volver al Generador Principal

Configuración de Docker Compose para Elasticsearch + Kibana Logging Stack

Cuándo usar esta combinación

Utiliza este stack para centralizar, indexar y visualizar registros (logs) y métricas de microservicios o infraestructura en tiempo real. Es la opción ideal cuando requieres capacidades avanzadas de búsqueda de texto completo (full-text search), análisis de trazas, detección de errores críticos y paneles de control interactivos para auditoría y observabilidad, desacoplando la persistencia de telemetría de las bases de datos transaccionales principales.


Variables de entorno críticas para producción

  1. ELASTIC_PASSWORD (Elasticsearch): Define la contraseña inicial del superusuario nativo elastic. En producción jamás debe quedar con el valor por defecto para evitar exposición total de los índices.
  2. XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY (Kibana): Clave criptográfica de mínimo 32 caracteres requerida para cifrar conectores, credenciales y alertas persistidas dentro de Kibana.
  3. ELASTICSEARCH_PASSWORD (Kibana): Credencial de autenticación que utiliza el usuario de servicio de Kibana (kibana_system) para comunicarse de forma segura con los nodos de Elasticsearch.

Consejo de Rendimiento y Seguridad (DevOps)

Bloqueo de memoria y asignación de Heap (JVM):
Configura bootstrap.memory_lock=true en Elasticsearch junto con los límites del sistema en Compose (ulimits.memlock: { soft: -1, hard: -1 }) para evitar que el sistema operativo mueva la memoria de la JVM al espacio de intercambio (swap). Complementa esto ajustando ES_JAVA_OPTS a un valor fijo para -Xms y -Xmx equivalente exactamente al 50% de la RAM disponible en el contenedor (sin exceder 31 GB), reservando el 50% restante para el cache del sistema de archivos del kernel (Lucene Page Cache). Asegúrate previamente de aplicar sysctl -w vm.max_map_count=262144 en el host.

Checklist de Seguridad antes de desplegar