
Cuando una empresa tiene 20, 50 o 200 servidores, buscar un error abriendo archivos /var/log máquina por máquina deja de ser viable. La solución es centralizar los registros y convertir millones de líneas aparentemente inútiles en información que pueda buscarse en segundos.
OpenSearch permite construir precisamente esa plataforma utilizando software libre: recibir logs de servidores, aplicaciones, contenedores y dispositivos de red; almacenarlos de forma centralizada; buscar errores; crear paneles; detectar comportamientos anómalos y generar alertas cuando algo importante sucede.
El proyecto OpenSearch documenta actualmente una arquitectura de análisis de logs basada en Fluent Bit, Data Prepper, OpenSearch y OpenSearch Dashboards. Data Prepper recibe y transforma los eventos antes de almacenarlos, mientras Dashboards proporciona la capa de consulta, investigación y visualización.
El objetivo no es guardar logs por guardar. El verdadero valor aparece cuando alguien pregunta: “¿qué ocurrió a las 02:17?”, “¿desde qué IP intentaron entrar?”, “¿qué servidor comenzó a fallar primero?” o “¿qué cambió antes de que el sistema dejara de responder?” y la respuesta puede encontrarse en segundos.
1. El problema: cada servidor guarda una parte diferente de la historia
Imaginemos una empresa con esta infraestructura:
| Sistema | Información que genera |
|---|---|
| Linux | systemd, SSH, kernel, sudo, autenticaciones y servicios. |
| Nginx / Apache | Peticiones HTTP, errores 404/500, IP, URL y tiempos de respuesta. |
| Aplicaciones | Excepciones, errores, transacciones y eventos del negocio. |
| Docker / Kubernetes | Logs de contenedores, pods, servicios y aplicaciones. |
| Firewall / VPN | Conexiones, bloqueos, accesos remotos y actividad sospechosa. |
| Bases de datos | Errores, consultas lentas, conexiones y problemas operativos. |
Cuando cada sistema conserva sus propios registros, investigar un incidente obliga al administrador a conectarse a varias máquinas y reconstruir manualmente la secuencia de acontecimientos.
Un servidor centralizado cambia completamente ese escenario.
2. Qué vamos a construir con OpenSearch
En lugar de representar la arquitectura con una larga cadena de flechas, podemos dividirla en cuatro capas:
| Capa | Herramienta | Función |
|---|---|---|
| 1. Recolección | Fluent Bit | Lee los logs de servidores, contenedores y aplicaciones. |
| 2. Procesamiento | Data Prepper | Recibe, transforma, estructura y enriquece eventos. |
| 3. Almacenamiento y búsqueda | OpenSearch | Indexa millones de eventos y permite buscarlos rápidamente. |
| 4. Investigación | OpenSearch Dashboards | Búsquedas, gráficos, dashboards, investigación y alertas. |
Esta arquitectura coincide con el flujo de log analytics documentado oficialmente por OpenSearch. Fluent Bit puede enviar los eventos mediante HTTP a Data Prepper, que dispone de procesadores como Grok para convertir logs sin estructura en campos útiles antes de escribirlos en OpenSearch.
3. ¿Qué puede responder este servidor?
Una vez centralizada la información, las preguntas cambian radicalmente.
| Pregunta | Datos que podemos buscar |
|---|---|
| ¿Qué aplicación está fallando? | ERROR, CRITICAL, exception, stack trace. |
| ¿Quién intenta entrar por SSH? | IP origen, usuario, failed password, host. |
| ¿Qué servidor produce más errores? | hostname + level=ERROR. |
| ¿Cuándo comenzó el incidente? | @timestamp y primera aparición del patrón. |
| ¿Tenemos errores HTTP? | status=500, 502, 503, 504. |
| ¿Hubo actividad sospechosa? | Autenticaciones fallidas, sudo, firewall, VPN y accesos. |
La diferencia fundamental es que el administrador deja de buscar archivos y comienza a buscar eventos.
4. OpenSearch 3.8 como base de la plataforma
A septiembre de 2026, OpenSearch 3.8 es la versión estable publicada más reciente en la rama 3.x reflejada por el proyecto. Fue publicada el 4 de agosto de 2026 e incluye nuevas capacidades relacionadas con búsqueda, IA y observabilidad.
Para producción es preferible fijar explícitamente la versión utilizada. La propia documentación muestra 3.8.0 como ejemplo y recomienda versiones explícitas para evitar actualizaciones inesperadas.
5. Preparar el servidor Linux
Para una prueba de concepto puede utilizarse una máquina relativamente pequeña, pero el almacenamiento debe dimensionarse según la cantidad de logs generados diariamente y el periodo de retención.
Antes de ejecutar OpenSearch en Linux, la documentación recomienda desactivar swap para mejorar el rendimiento y establecer vm.max_map_count en al menos 262144.
Para hacerlo permanente:
Agregar:
Y aplicar:
6. Crear una contraseña administrativa segura
Desde OpenSearch 2.12, una instalación nueva que utiliza la configuración de seguridad de demostración requiere definir una contraseña administrativa personalizada. La documentación también advierte que las credenciales y certificados de demostración no deben mantenerse en una instalación productiva.
Puede definir temporalmente la variable:
No coloque contraseñas reales en repositorios Git, scripts compartidos o documentación interna.
7. Empezar con Docker Compose
OpenSearch mantiene imágenes oficiales para OpenSearch y OpenSearch Dashboards y documenta Docker Compose como una de las formas más sencillas de levantar un laboratorio o definir un despliegue controlado.
La recomendación práctica es crear un directorio exclusivo:
Dentro del directorio deben mantenerse, como mínimo, los archivos de Docker Compose, configuración, certificados y posteriormente la configuración de Data Prepper.
Para iniciar los servicios:
Comprobar:
Y ante problemas:
Importante: nunca exponga directamente OpenSearch 9200 ni OpenSearch Dashboards 5601 a Internet utilizando una configuración de laboratorio. La documentación oficial advierte específicamente contra utilizar la configuración de demostración en hosts públicamente accesibles sin personalizar primero la seguridad.
8. Instalar Fluent Bit en los servidores que queremos monitorear
Ahora necesitamos recolectar los logs.
La idea no es instalar OpenSearch en cada servidor. En cada máquina colocamos un agente ligero encargado de leer los registros y enviarlos hacia la plataforma central.
OpenSearch utiliza Fluent Bit precisamente de esta forma en su arquitectura documentada de log analytics. Fluent Bit puede leer archivos y enviar los eventos mediante su salida HTTP hacia Data Prepper.
En un servidor Linux podríamos querer recopilar inicialmente:
| Origen | Ejemplo |
|---|---|
| Sistema | /var/log/syslog |
| Autenticación | /var/log/auth.log |
| Nginx | /var/log/nginx/access.log |
| Errores Nginx | /var/log/nginx/error.log |
| Aplicación | /opt/app/logs/app.log |
Las rutas exactas dependen de la distribución y de cada aplicación.
9. No envíes solamente texto: agrega contexto
Este punto separa una plataforma útil de un gigantesco depósito de texto.
Cada evento debería identificar, cuando sea posible:
| Campo | Ejemplo |
|---|---|
| @timestamp | Momento exacto del evento |
| host.name | srv-web-03 |
| service.name | facturacion-api |
| environment | produccion |
| level | ERROR |
| source.ip | IP que originó la petición |
| message | Descripción original del evento |
Con campos estructurados podremos preguntar “muéstrame únicamente los errores de facturación en producción” en lugar de realizar búsquedas de texto imprecisas.
10. Data Prepper convierte líneas de texto en información
Data Prepper ocupa una posición estratégica. Puede recibir datos de Fluent Bit mediante HTTP, procesarlos y escribir los resultados en OpenSearch. Su procesador Grok permite extraer campos de formatos conocidos como logs de Apache o de formatos personalizados.
Una línea tradicional podría ser:
Después de procesarla podemos trabajar conceptualmente con campos independientes:
| Campo | Valor |
|---|---|
| clientip | 192.168.10.45 |
| verb | GET |
| request | /api/clientes |
| response | 500 |
| bytes | 928 |
La documentación oficial utiliza exactamente este enfoque para convertir logs web en documentos estructurados que posteriormente pueden consultarse desde OpenSearch.
11. Cómo organizar los logs de toda la empresa
No conviene guardar absolutamente todo en un único índice llamado simplemente logs.
Una organización más limpia puede separar la información por función:
Para datos temporales como logs, OpenSearch también ofrece data streams, diseñados para datos append-only basados en tiempo. Estos pueden combinarse con Index State Management para automatizar rollover y eliminación de los índices internos conforme envejecen.
12. Buscar un error que está afectando a toda la empresa
Una vez que los eventos aparecen en OpenSearch Dashboards podemos comenzar la investigación.
Desde OpenSearch 3.5, la página especializada de logs permite consultar información utilizando Piped Processing Language (PPL), filtrar eventos, realizar agregaciones, generar visualizaciones y añadirlas a dashboards.
Por ejemplo, una consulta conceptual para localizar errores de un servicio sería:
También podemos contar errores por servidor:
PPL está especialmente orientado al análisis secuencial de información de observabilidad como logs, métricas y trazas. OpenSearch también permite utilizar SQL cuando el equipo está más familiarizado con consultas relacionales.
13. Caso realista: la aplicación comenzó a fallar a las 10:30
Supongamos que los usuarios llaman a soporte porque el sistema de ventas está devolviendo errores.
En lugar de conectarnos inmediatamente a cinco servidores, realizamos esta investigación:
| Paso | Acción | Objetivo |
|---|---|---|
| 1 | Limitar tiempo a 10:20–10:40 | Reducir el universo de eventos. |
| 2 | Filtrar level=ERROR | Encontrar excepciones. |
| 3 | Agrupar por servicio | Determinar qué componente falla. |
| 4 | Agrupar por hostname | Saber si el problema afecta a una máquina concreta. |
| 5 | Buscar eventos inmediatamente anteriores | Encontrar la posible causa. |
Podríamos descubrir que a las 10:28 apareció:
Después comprobaríamos que el mismo patrón apareció en varios nodos.
La investigación deja de comenzar con “¿en qué servidor estará el problema?” y pasa a comenzar con “¿qué dicen todos los servidores juntos?”.
14. Detectar ataques SSH también resulta mucho más sencillo
Centralizar auth.log o los eventos equivalentes de systemd permite encontrar patrones que podrían pasar inadvertidos en una máquina individual.
Podemos analizar:
| Indicador | Posible interpretación |
|---|---|
| Muchos failed password | Fuerza bruta o credenciales incorrectas. |
| Una IP contra varios servidores | Escaneo o intento distribuido de acceso. |
| Acceso de root | Evento que merece revisión según la política. |
| Uso inesperado de sudo | Cambio administrativo o actividad que requiere validación. |
OpenSearch no convierte automáticamente cualquier conjunto de logs en un SIEM completo, pero proporciona componentes de búsqueda, análisis, seguridad y alertamiento sobre los que pueden construirse casos de monitoreo e investigación.
15. Crear alertas: no esperar a que alguien descubra el problema
Buscar manualmente sirve para investigar. Una empresa necesita además detectar determinadas condiciones automáticamente.
El sistema de Alerting de OpenSearch utiliza tres conceptos principales: monitor, trigger y action. El monitor ejecuta consultas de forma programada; el trigger determina cuándo existe una condición de alerta y la acción define qué debe suceder.
Podríamos crear alertas para:
| Regla | Ejemplo |
|---|---|
| Errores HTTP | Más de 50 respuestas 500 en cinco minutos. |
| SSH | Más de 20 autenticaciones fallidas desde una IP. |
| Aplicación | Aparición de CRITICAL. |
| Base de datos | Repetición de connection refused. |
| Seguridad | Acceso administrativo fuera del horario esperado. |
OpenSearch también admite monitores basados directamente en consultas PPL.
16. Crear un dashboard para operaciones
Un buen dashboard empresarial no necesita veinte gráficos. Necesita mostrar rápidamente qué requiere atención.
Un panel inicial podría contener:
| Indicador | Utilidad |
|---|---|
| Eventos por minuto | Detectar cambios repentinos de actividad. |
| Errores por servicio | Encontrar aplicaciones problemáticas. |
| Top servidores con errores | Priorizar investigación. |
| HTTP 500/502/503 | Monitorear servicios web. |
| Login fallidos | Detectar anomalías de autenticación. |
| IPs más activas | Apoyar análisis de tráfico y seguridad. |
La interfaz actual de Logs puede convertir agregaciones PPL en visualizaciones y guardarlas directamente en dashboards.
17. Controlar cuánto almacenamiento consumen los logs
Este es uno de los errores más habituales al crear una plataforma de logs: guardar absolutamente todo para siempre.
Si una empresa genera 50 GB diarios:
| Retención | Datos brutos aproximados |
|---|---|
| 7 días | 350 GB |
| 30 días | 1,5 TB |
| 90 días | 4,5 TB |
| 365 días | 18,25 TB |
Son cifras brutas simplificadas; el consumo real dependerá del mapeo, compresión, réplicas, índices y arquitectura.
OpenSearch incorpora Index State Management (ISM) precisamente para automatizar el ciclo de vida. Una política puede, por ejemplo, realizar rollover cuando un índice alcanza determinado tamaño, convertir información antigua en solo lectura, crear snapshots y eliminar datos al alcanzar la edad establecida.
Ejemplo de política empresarial:
0–7 días: búsqueda frecuente.
8–30 días: datos históricos consultables.
31–90 días: conservación según necesidades de investigación.
Más de 90 días: snapshot o eliminación dependiendo de requisitos legales y de negocio.
18. Cuidado con crear miles de shards pequeños
Más índices y shards no significan automáticamente mayor rendimiento.
La documentación de OpenSearch advierte expresamente que un número excesivo de shards puede sobrecargar el cluster y ofrece como regla general mantener tamaños de shard aproximadamente entre 10 y 50 GB.
Por eso, antes de crear un índice diferente para cada servidor, aplicación, departamento, día y entorno, conviene diseñar una estrategia coherente de data streams, templates, rollover y retención.
19. Proteger OpenSearch: los logs contienen información sensible
Un servidor de logs puede terminar almacenando direcciones IP, nombres de usuario, rutas internas, errores de aplicaciones, consultas, identificadores y datos operativos.
Por tanto, la plataforma debe tratarse como infraestructura sensible.
OpenSearch Security proporciona mecanismos para cifrado, autenticación, control de acceso y auditoría. TLS puede proteger tanto las conexiones cliente-nodo como la comunicación entre nodos del cluster.
Como mínimo, una implementación empresarial debería contemplar:
| Control | Aplicación |
|---|---|
| TLS | Cifrar comunicaciones. |
| RBAC | Separar administradores, operaciones, seguridad y usuarios de consulta. |
| Firewall | No publicar servicios internos innecesariamente. |
| Certificados propios | Eliminar certificados de demostración antes de producción. |
| Auditoría | Registrar operaciones relevantes sobre la plataforma. |
| Backups | Proteger índices y configuración frente a pérdida. |
OpenSearch dispone además de roles predefinidos y control granular de permisos. El rol all_access, por ejemplo, es un rol de superusuario y no debería convertirse en el permiso cotidiano de todos los operadores.
20. Activar auditoría del propio OpenSearch
También debemos saber quién está utilizando nuestra plataforma de logs.
OpenSearch puede registrar eventos como autenticaciones correctas, autenticaciones fallidas, privilegios insuficientes, operaciones autorizadas y excepciones TLS.
Esto permite responder preguntas como:
| 1. | ¿Quién accedió a la plataforma? |
| 2. | ¿Hubo autenticaciones fallidas? |
| 3. | ¿Qué operaciones administrativas fueron realizadas? |
| 4. | ¿Alguien intentó realizar una acción sin privilegios? |
Sin embargo, tampoco conviene habilitar indiscriminadamente cada categoría de auditoría: la propia documentación advierte que un volumen excesivo de auditoría puede afectar el rendimiento y consumir almacenamiento rápidamente.
21. OpenSearch también necesita backup
Centralizar todos los logs en OpenSearch y después no respaldar OpenSearch sería trasladar el punto de fallo.
Los snapshots permiten respaldar índices y estado del cluster. OpenSearch admite repositorios basados, entre otros, en sistemas de archivos compartidos, almacenamiento S3, HDFS y Azure Storage.
Además, los snapshots son incrementales: después del primer snapshot exitoso, se reutilizan datos existentes y se almacena lo que ha cambiado, lo que hace viable ejecutarlos con relativa frecuencia según las necesidades de recuperación.
Una réplica no sustituye un backup. Las réplicas ayudan a mantener disponibilidad frente al fallo de un nodo. Los snapshots permiten recuperar información frente a otros escenarios de pérdida y también se utilizan para migraciones entre clusters.
22. ¿Un solo servidor OpenSearch es suficiente?
Para aprender, desarrollar una prueba de concepto o centralizar un volumen pequeño de información, un único nodo puede ser perfectamente válido.
Para una plataforma empresarial crítica debemos pensar en cluster.
La documentación de OpenSearch recomienda para prácticamente todos los escenarios productivos utilizar tres nodos dedicados elegibles como cluster manager, idealmente distribuidos entre diferentes zonas, para mantener quorum y tolerancia a fallos.
| Entorno | Diseño orientativo |
|---|---|
| Laboratorio | 1 nodo OpenSearch + Dashboards. |
| Pequeña empresa | Dimensionar según GB/día, retención, réplicas y disponibilidad requerida. |
| Producción crítica | Cluster redundante, nodos dedicados de gestión y suficientes nodos de datos. |
No existe una cantidad universal de CPU, RAM o almacenamiento válida para todas las empresas. El dimensionamiento debe partir del volumen diario de datos, retención, complejidad de consultas, cantidad de usuarios, número de réplicas y crecimiento esperado.
23. OpenTelemetry abre la puerta a algo mayor que los logs
Una vez que centralizamos logs podemos avanzar hacia observabilidad completa.
Las versiones actuales de OpenSearch permiten trabajar conjuntamente con logs, métricas y trazas. Las interfaces de Observability permiten consultar logs mediante PPL, métricas mediante PromQL y trazas distribuidas para investigar aplicaciones complejas.
OpenSearch 3.6 introdujo además una arquitectura APM que utiliza OpenTelemetry Collector y Data Prepper para ingerir telemetría de aplicaciones.
Eso permite evolucionar desde:
| Nivel | Pregunta |
|---|---|
| Logs | ¿Qué error ocurrió? |
| Métricas | ¿CPU, memoria, latencia o tráfico cambiaron? |
| Traces | ¿En qué servicio de una transacción distribuida apareció el problema? |
Esta combinación permite acercarse mucho más rápidamente a la causa raíz de un incidente.
24. Errores frecuentes al construir un servidor de logs
| Error | Mejor práctica |
|---|---|
| Guardar todos los logs indefinidamente | Definir retención según valor y requisito. |
| Enviar solamente texto | Estructurar campos útiles. |
| Publicar 9200 en Internet | Red privada, firewall, TLS y autenticación. |
| Usar admin para todos | Crear roles por función. |
| Crear miles de índices diminutos | Diseñar templates, data streams y rollover. |
| No monitorear OpenSearch | Supervisar también el propio cluster. |
| No probar restauraciones | Realizar snapshots y pruebas periódicas de recuperación. |
25. Una arquitectura empresarial razonable
En una empresa mediana podemos organizar la solución sin necesidad de diagramas complejos:
| Componente | Responsabilidad |
|---|---|
| 50 servidores Linux | Generan logs de sistemas y aplicaciones. |
| Fluent Bit | Agente ligero instalado en los orígenes. |
| Data Prepper | Normalización, parsing y enriquecimiento. |
| OpenSearch cluster | Almacenamiento, indexación y búsquedas. |
| OpenSearch Dashboards | Investigación y visualización. |
| Alerting | Avisos automáticos. |
| Snapshot repository | Recuperación y respaldo. |
Es mucho más fácil de mantener que una colección de scripts que obliguen al equipo de TI a revisar manualmente archivos de logs en decenas de máquinas.
26. Checklist antes de ponerlo en producción
| 01 | Inventariar las fuentes de logs. |
| 02 | Calcular GB generados diariamente. |
| 03 | Definir retención. |
| 04 | Definir campos comunes y normalización. |
| 05 | Implementar TLS. |
| 06 | Crear roles y usuarios. |
| 07 | Definir data streams e índices. |
| 08 | Crear políticas ISM. |
| 09 | Construir dashboard operativo. |
| 10 | Crear alertas críticas. |
| 11 | Configurar snapshots. |
| 12 | Probar una restauración. |
Preguntas y respuestas
¿OpenSearch es adecuado para centralizar logs?
Sí. El propio proyecto mantiene funciones y documentación específicas para log ingestion, log analytics y observabilidad mediante Data Prepper, Fluent Bit y OpenSearch Dashboards.
¿Necesito instalar OpenSearch en cada servidor?
No. Lo habitual es utilizar agentes de recolección como Fluent Bit en los sistemas origen y mantener OpenSearch centralizado.
¿Puedo buscar logs de Nginx y aplicaciones al mismo tiempo?
Sí. Una vez indexados y correctamente estructurados pueden consultarse desde OpenSearch Dashboards y combinarse en investigaciones y visualizaciones.
¿Puedo monitorear Docker y Kubernetes?
Sí. Fluent Bit puede ejecutarse en entornos de contenedores y Kubernetes, y OpenTelemetry amplía las posibilidades para telemetría de aplicaciones distribuidas.
¿OpenSearch puede generar alertas?
Sí. Alerting permite crear monitores programados, triggers y acciones cuando los datos cumplen determinadas condiciones.
¿Puede utilizarse para investigar incidentes de seguridad?
Sí. Centralizar eventos de autenticación, sistemas, aplicaciones, firewalls y otros componentes facilita reconstruir cronologías y localizar actividad relevante. Para capacidades SIEM completas deben añadirse reglas, normalización, procedimientos y herramientas de seguridad según las necesidades de la organización.
¿Cuánto tiempo debo conservar los logs?
No existe una cifra universal. Debe determinarse según necesidades operativas, investigación de incidentes, capacidad de almacenamiento y obligaciones regulatorias. OpenSearch ISM permite automatizar ese ciclo de vida.
¿Necesito hacer backup si tengo réplicas?
Sí. Las réplicas proporcionan disponibilidad ante fallos de nodos, mientras que los snapshots cumplen una función de recuperación y migración diferente.
¿Puedo usar OpenSearch para logs, métricas y trazas?
Sí. La plataforma actual de observabilidad contempla las tres categorías y permite correlacionarlas para investigar sistemas distribuidos.
Recomendamos
Como complemento a esta implementación, resulta útil revisar en SomosLibres los contenidos dedicados al monitoreo de Linux y a las herramientas utilizadas por equipos de respuesta a incidentes y CSIRT.
En resumen
Crear un servidor centralizado de logs con OpenSearch puede cambiar radicalmente la forma en que una empresa resuelve problemas.
En lugar de conectarse servidor por servidor, revisar manualmente archivos y tratar de reconstruir qué ocurrió, el equipo dispone de un punto central desde el cual puede buscar errores, comparar eventos, investigar incidentes, crear dashboards y generar alertas automáticas.
Fluent Bit se encarga de recolectar. Data Prepper transforma. OpenSearch indexa y busca. OpenSearch Dashboards permite investigar. ISM controla el ciclo de vida y los snapshots proporcionan una capa de recuperación. Es una arquitectura completamente alineada con el stack de log analytics documentado actualmente por OpenSearch.
El verdadero cambio no es tecnológico: es operativo.
Cuando ocurre un incidente a las tres de la mañana, nadie quiere conectarse a veinte servidores y ejecutar grep esperando encontrar una pista. Una plataforma centralizada convierte todos esos registros dispersos en una sola fuente de investigación. Y cuando está bien diseñada, la pregunta deja de ser “¿dónde estará el log?” para convertirse en algo mucho más útil: “¿qué ocurrió exactamente?”

