docker.recipes

OpenObserve Observability

beginner

OpenObserve cloud-native observability platform for logs, metrics, and traces.

Overview

OpenObserve is a modern cloud-native observability platform designed to provide comprehensive monitoring capabilities for logs, metrics, and traces. Developed as a high-performance alternative to traditional solutions like Elasticsearch, it offers up to 140x better storage efficiency while maintaining full compatibility with OpenTelemetry standards. The platform features built-in alerting, SQL-based querying, and distributed tracing capabilities all within a single, lightweight application. This deployment runs OpenObserve as a single all-in-one container that includes all necessary components for a complete observability stack. The container integrates storage, indexing, querying, and visualization capabilities without requiring separate databases or services. OpenObserve uses its own optimized storage engine and provides a web interface accessible on port 5080 for managing and visualizing observability data. This configuration is ideal for teams looking to implement comprehensive observability without the complexity and resource overhead of traditional ELK or similar multi-component stacks. The single-container architecture makes it perfect for small to medium-scale deployments, development environments, or organizations seeking a cost-effective alternative to expensive SaaS observability solutions while maintaining enterprise-grade features.

Key Features

  • Ultra-efficient storage with up to 140x reduction compared to Elasticsearch while maintaining full-text search capabilities
  • Native OpenTelemetry support for ingesting logs, metrics, and distributed traces from applications
  • SQL-based query language for complex data analysis and custom dashboards without learning proprietary syntax
  • Built-in alerting system with support for multiple notification channels and threshold-based triggers
  • Real-time log streaming and tail functionality for live monitoring and debugging sessions
  • Multi-tenant architecture with role-based access control for secure data isolation
  • RESTful API for programmatic access to data ingestion, querying, and configuration management
  • Embedded visualization engine with customizable dashboards and chart types for operational insights

Common Use Cases

  • 1Application performance monitoring for microservices architectures using distributed tracing
  • 2Cost-effective log aggregation and analysis for startups and SMBs replacing expensive SaaS solutions
  • 3Development environment observability where teams need full-stack monitoring without infrastructure overhead
  • 4Edge computing and IoT monitoring where resource efficiency and low storage footprint are critical
  • 5Compliance and audit logging with long-term retention requirements due to superior compression ratios
  • 6Real-time operational dashboards for DevOps teams monitoring application health and system metrics
  • 7Troubleshooting and debugging workflows requiring correlation between logs, metrics, and traces in a single platform

Prerequisites

  • Docker and Docker Compose installed on the host system
  • Minimum 2GB RAM available for OpenObserve container operations and data processing
  • Port 5080 available on the host for web interface access
  • Environment variables ZO_ROOT_USER_EMAIL and ZO_ROOT_USER_PASSWORD configured for initial admin access
  • Sufficient disk space for log retention based on ingestion volume and retention policies
  • Basic understanding of observability concepts and OpenTelemetry instrumentation for application integration

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 openobserve:
3 image: public.ecr.aws/zinclabs/openobserve:latest
4 container_name: openobserve
5 environment:
6 - ZO_ROOT_USER_EMAIL=${ZO_ROOT_USER_EMAIL}
7 - ZO_ROOT_USER_PASSWORD=${ZO_ROOT_USER_PASSWORD}
8 - ZO_DATA_DIR=/data
9 volumes:
10 - openobserve_data:/data
11 ports:
12 - "5080:5080"
13 networks:
14 - openobserve-network
15
16volumes:
17 openobserve_data:
18
19networks:
20 openobserve-network:
21 driver: bridge

.env Template

.env
1# OpenObserve
2ZO_ROOT_USER_EMAIL=admin@example.com
3ZO_ROOT_USER_PASSWORD=your_secure_password

Usage Notes

  1. 1UI at http://localhost:5080
  2. 2140x less storage than Elasticsearch
  3. 3Supports OpenTelemetry
  4. 4Built-in alerting
  5. 5SQL-based query language

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 openobserve:
5 image: public.ecr.aws/zinclabs/openobserve:latest
6 container_name: openobserve
7 environment:
8 - ZO_ROOT_USER_EMAIL=${ZO_ROOT_USER_EMAIL}
9 - ZO_ROOT_USER_PASSWORD=${ZO_ROOT_USER_PASSWORD}
10 - ZO_DATA_DIR=/data
11 volumes:
12 - openobserve_data:/data
13 ports:
14 - "5080:5080"
15 networks:
16 - openobserve-network
17
18volumes:
19 openobserve_data:
20
21networks:
22 openobserve-network:
23 driver: bridge
24EOF
25
26# 2. Create the .env file
27cat > .env << 'EOF'
28# OpenObserve
29ZO_ROOT_USER_EMAIL=admin@example.com
30ZO_ROOT_USER_PASSWORD=your_secure_password
31EOF
32
33# 3. Start the services
34docker compose up -d
35
36# 4. View logs
37docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/openobserve-logs/run | bash

Troubleshooting

  • Container fails to start with permission errors: Ensure the data volume has proper write permissions or run with appropriate user mapping
  • Web interface shows 'Connection refused' at localhost:5080: Verify the container is running and port mapping is correct in docker-compose configuration
  • High memory usage during data ingestion: Adjust ZO_MEMORY_CACHE_MAX_SIZE environment variable to limit memory consumption based on available resources
  • Data not appearing after application instrumentation: Check OpenTelemetry endpoint configuration points to http://localhost:5080/api/default/v1/traces for traces and logs
  • Login fails with admin credentials: Verify ZO_ROOT_USER_EMAIL and ZO_ROOT_USER_PASSWORD environment variables are properly set and container has been restarted
  • Slow query performance on large datasets: Optimize queries using time range filters and consider partitioning strategies based on OpenObserve documentation

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space