OpenObserve: logs, métricas y traces en una plataforma

Mascote LinuxPro usando o OpenObserve para analisar logs, métricas e traces

Cuando un servicio empieza a fallar, normalmente las señales están dispersas: métricas en Prometheus, logs en otro backend, traces en una tercera herramienta y alertas sin contexto. El OpenObserve intenta unificar ese trabajo en una plataforma open source para logs, métricas, traces, RUM, dashboards, alertas e incidentes. Escrito en Rust, consulta logs y traces con SQL, métricas con SQL o PromQL y utiliza Parquet con almacenamiento orientado a objetos para reducir el coste de retención.

Resumen en vídeo: la demostración oficial de dos minutos muestra la instalación y los primeros pasos de OpenObserve. URL: OpenObserve 2-Minute Demo: Quick Install and Setup.

Qué es OpenObserve

OpenObserve, también llamado O2, es una plataforma de observabilidad unificada. La idea no es reemplazar todos los agentes que recopilan telemetría, sino ofrecer un destino y una interfaz comunes para las señales: logs, métricas y trazas distribuidas. La plataforma también incluye cuadros de mando, alertas, pipelines de ingestión, gestión de incidentes, monitorización de usuario real (RUM) y recursos de observabilidad para aplicaciones de IA.

El proyecto es open source bajo AGPL-3.0. También hay una edición Enterprise y el servicio OpenObserve Cloud. Esto importa en la elección: la edición OSS es útil para quienes quieren control de la infraestructura y de la residencia de los datos; las funciones corporativas específicas, como SSO, RBAC granular, búsqueda federada y gestión de carga, pertenecen a la oferta Enterprise.

Por qué unificar logs, métricas y traces

Las tres señales responden a preguntas diferentes:

  • Métricas muestran tendencia y estado agregado: uso de CPU, tasa de errores, latencia y volumen de peticiones.
  • Los registros preservan el evento y su contexto: mensajes de la aplicación, errores, campos estructurados y auditoría.
  • Los traces siguen una solicitud a través de servicios, colas y bases de datos, haciendo visible dónde se invirtió el tiempo.

El valor de una plataforma unificada aparece en la investigación. Un pico de errores en el gráfico puede llevar a los traces de ese servicio y, desde ellos, a los logs del mismo periodo. Esto no elimina la necesidad de instrumentar bien la aplicación ni corrige una cardinalidad excesiva; solo reduce los cambios de contexto entre herramientas.

Si ya monitorizas máquinas Linux, empieza por nuestra guía de Prometheus y Node Exporter. OpenObserve puede complementar ese flujo al centralizar otras señales, pero no hay motivo para migrar con prisa una pila estable solo porque una plataforma reúne más funciones.

Cómo la arquitectura reduce el número de piezas

En modo de nodo único, OpenObserve utiliza SQLite para los metadatos y puede escribir localmente o en almacenamiento de objetos. Es la opción para laboratorio, desarrollo y cargas que no exigen alta disponibilidad. La documentación también contempla nodo único con S3, GCS, MinIO o Azure Blob: sigue siendo sencilla de operar, pero los archivos Parquet quedan en un almacenamiento más duradero.

En alta disponibilidad, la topología cambia: el proyecto separa los roles de Router, Ingester, Compactor, Querier y Scheduler. Kubernetes orquesta los nodos; PostgreSQL guarda los metadatos; NATS coordina el clúster; y el almacenamiento de objetos conserva los archivos Parquet. Esto escala mejor, pero no es “un binario sin operación”: es una arquitectura de producción que requiere capacidad, copias de seguridad, actualización planificada, red y observabilidad del propio backend.

Parquet es un formato columnar adecuado para consultas analíticas. Sumado al uso de almacenamiento de objetos, es la base de la afirmación del proyecto de hasta 140× menos coste de almacenamiento en comparación con Elasticsearch. Trata esa cifra como una referencia del proveedor, no como una garantía: el volumen, la retención, la compresión, los patrones de consulta, el índice y el coste de tu bucket determinan la factura real.

Características principales

Área Qué ofrece OpenObserve Punto de atención
Los registros Búsqueda textual, filtros, SQL y construcción visual de consultas. Define esquema, retención y campos útiles antes de enviar todo indiscriminadamente.
Métricas Consulta por SQL o PromQL, gráficos y alertas. La compatibilidad de consulta no sustituye la revisión de las reglas existentes.
Los traces Exploración de traces OpenTelemetry, waterfall, flame graph y service graph. El resultado depende de la propagación correcta del contexto entre servicios.
Dashboards y alertas Paneles, variables, visualizaciones, alertas e incidentes. Las alertas deben tener propietario, severidad, ruta y procedimiento de respuesta.
Pipelines Transformaciones de ingesta, normalización y conversión de logs en métricas. Prueba transformaciones en muestra; un parser incorrecto puede destruir el contexto.
RUM e IA Core Web Vitals, errores, reproducción de sesión y señales para aplicaciones GenAI/LLM. RUM y datos de IA exigen una atención redoblada a PII, consentimiento y retención.

Instalación rápida en Docker para laboratorio

El procedimiento siguiente utiliza la imagen OSS indicada por el repositorio del proyecto. Es para pruebas locales o una prueba de concepto; no exponga el puerto 5080 directamente en internet y no utilice una contraseña de ejemplo en un servidor accesible.

mkdir -p ~/openobserve/data
cd ~/openobserve

export ZO_ROOT_USER_EMAIL="admin@example.com"
export ZO_ROOT_USER_PASSWORD="$(openssl rand -base64 32)"

printf '%s\n' "$ZO_ROOT_USER_PASSWORD" > senha-inicial.txt
chmod 600 senha-inicial.txt

docker run -d \
  --name openobserve \
  --restart unless-stopped \
  -v "$PWD/data:/data" \
  -p 127.0.0.1:5080:5080 \
  -e ZO_DATA_DIR="/data" \
  -e ZO_ROOT_USER_EMAIL \
  -e ZO_ROOT_USER_PASSWORD \
  public.ecr.aws/zinclabs/openobserve:latest

Abre http://127.0.0.1:5080 en el propio host o haga un túnel SSH. Para un equipo, publique la interfaz detrás de un proxy inverso con TLS y autenticación adecuada. En producción, prefiera una etiqueta de imagen probada en lugar de latest y siga la página de releases.

El usuario root se define en el primer arranque. Guarde la credencial fuera del historial del shell y de archivos compartidos, por ejemplo en un gestor de secretos. Antes de eliminar la prueba, detenga el contenedor y elimine el directorio de datos de forma consciente: allí es donde se persistió la telemetría local.

Del laboratorio a producción

Una instalación de producción comienza con decisiones de datos, no con el comando de Docker:

  1. Elija la retención por tipo de señal. Los registros de depuración y la reproducción de sesión no necesitan tener la misma ventana que las métricas de capacidad.
  2. Planifique el almacenamiento. Para durabilidad y escalabilidad, usa un bucket compatible con el diseño recomendado por el proyecto; para HA, el almacenamiento local no es compatible.
  3. Usa OpenTelemetry cuando sea posible. Estandarizar la instrumentación y el contexto reduce la dependencia de agentes específicos.
  4. Separa organizaciones, streams y credenciales. No mezcles producción, homologación y datos sensibles sin una política clara.
  5. Trata el acceso como parte de la arquitectura. La comparación oficial indica que la OSS no proporciona RBAC granular; valida los requisitos de SSO, auditoría y permisos antes de abrir la plataforma a varios equipos.
  6. Prueba la restauración. Un backup no probado es solo una esperanza. Verifica los datos, los metadatos y las configuraciones necesarias para recuperar el entorno.

La guía oficial deja claro que el modo HA requiere Kubernetes, PostgreSQL, NATS y almacenamiento de objetos. Si el equipo no tiene la madurez necesaria para operar estos componentes, la edición Cloud o un nodo único bien delimitado puede ser una decisión más segura que una implementación HA infradimensionada.

Consultas, cuadros de mando y alertas

Los logs y traces se pueden explorar con SQL; las métricas pueden usar SQL o PromQL. La ventaja práctica es conservar lenguajes que muchos equipos ya conocen en lugar de obligar a usar un DSL propietario. Aun así, la migración de dashboards y alertas requiere revisión: nombres de métricas, labels, ventanas temporales, agregaciones y semántica de funciones deben validarse frente al resultado anterior.

Empieza por un panel pequeño y accionable: disponibilidad, tasa de error, latencia de percentiles y señales de saturación. Para cada alerta, documenta qué dashboard abrir, qué campos filtrar, quién atiende y qué acción se puede tomar. Alertar sobre todo es el camino más corto para que se ignoren las alertas.

Vídeo oficial: este tutorial del canal OpenObserve recorre la creación de dashboards. URL: Building Dashboards with OpenObserve: A Comprehensive Tutorial.

Open source, Enterprise y Cloud

La edición OSS es AGPL-3.0 y gratuita, con logs, métricas, traces, RUM, dashboards y alertas. Según la tabla oficial de descargas, tiene soporte básico de usuarios, pero sin RBAC granular: los usuarios tienen acceso completo. La edición Enterprise añade, entre otros elementos, SSO, roles personalizados, grupos, auditoría, búsqueda federada, control de carga de trabajo y funciones avanzadas de pipeline y seguridad.

En el momento de la consulta, la página comercial indica que la edición Enterprise self-hosted es gratuita hasta 50 GB/día de ingesta; por encima de eso y para soporte contratado, es necesario contactar con el equipo comercial. Para OpenObserve Cloud, la página muestra cobro por GB ingerido y consultado, además de retención estándar. Los precios, límites y funciones comerciales cambian: confirma la página de precios y la comparación OSS frente a Enterprise antes de cerrar presupuesto.

Cuándo tiene sentido — y cuándo no

OpenObserve es una buena opción para quien desea consolidar telemetría en torno a OpenTelemetry, SQL, PromQL y almacenamiento de objetos; para equipos que ya pagan caro por la retención de logs; o para quien prefiere operar una plataforma integrada en lugar de conectar varias piezas.

Puede que no sea la elección adecuada si el equipo solo necesita métricas de unos pocos hosts, si ya existe una plataforma con SLOs e integraciones maduras que cubre bien las necesidades, o si no hay capacidad para operar datos, copias de seguridad y actualizaciones. “Un binario” simplifica la primera prueba; no elimina la responsabilidad operativa, la gobernanza de acceso ni el coste de almacenamiento.

Un vídeo más: comparación con Splunk

Para una visión del posicionamiento del producto, este vídeo de WPoets TV recoge una conversación con OpenObserve sobre la comparación con Splunk. Es una fuente complementaria, no sustituye a una prueba de carga ni al cálculo de coste en tu entorno.

Fuentes oficiales y próximos pasos

El mejor siguiente paso es pequeño: ejecute el laboratorio, envíe una fuente de logs y una métrica que ya conozca, cree una única alerta y calcule la ingesta y la retención reales. Solo entonces decida si merece la pena ampliar la plataforma.