diff --git a/docs/.pages b/docs/.pages index 0388e39c..75aaaab5 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,19 +1,6 @@ nav: -<<<<<<< HEAD -<<<<<<< HEAD -- Introduction: index.md -- Getting started: getting-started.md -- Quickstart: quickstart.md -- Enterprise Edition Installation: openobserve-enterprise-edition-installation-guide.md -- Releases: releases.md -- Example Queries: example-queries.md -- SQL Function Reference: sql_reference.md -- Architecture: architecture.md -======= -======= ->>>>>>> b992089 (nav bar modification:) - Overview: overview -- Architecture: architecture.md +- Architechture: architecture.md - Getting started: getting-started.md - Features: features - Enterprise Edition Installation Guide: openobserve-enterprise-edition-installation-guide.md diff --git a/docs/features/logs.md b/docs/features/logs.md index bb6edb98..6b7eef5e 100644 --- a/docs/features/logs.md +++ b/docs/features/logs.md @@ -6,7 +6,7 @@ OpenObserve provides powerful log management capabilities for collecting, storin Logs in OpenObserve offer comprehensive observability into your system's behavior, allowing you to track events, debug issues, and monitor application performance. Built with high performance and cost efficiency in mind, OpenObserve handles log ingestion and querying at scale. -![Logs Page](../images/features/logs-page.png) +![Logs Page](../images/features/logs-hero.png) *Logs Page view* ## Key Features diff --git a/docs/features/metrics.md b/docs/features/metrics.md index b35da9f3..652fa469 100644 --- a/docs/features/metrics.md +++ b/docs/features/metrics.md @@ -6,7 +6,7 @@ OpenObserve provides comprehensive metrics collection, storage, and visualizatio Metrics in OpenObserve enable you to track key performance indicators, monitor system health, and gain insights into your application's behavior over time. Designed for high-throughput environments, OpenObserve efficiently handles metrics ingestion, storage, and querying at scale while maintaining cost-effectiveness. -![Metrics Page](../images/features/metrics-page.png) +![Metrics Page](../images/features/metrics-hero.png) *Metrics Page view* ## Key Features diff --git a/docs/getting-started.md b/docs/getting-started.md index 1fcb36da..1d7bf7d1 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,148 +1,277 @@ -# Quickstart +# OpenObserve Quickstart Guide -You can get started with [OpenObserve Cloud](https://cloud.openobserve.ai) or a self hosted installation. +This guide will help you get started with OpenObserve. You can choose between [OpenObserve Cloud](https://cloud.openobserve.ai) (recommended) or a self-hosted installation. -OpenObserve Cloud is recommended for most users due to following benefits: +## Choose Your Installation Method -1. No effort in setting up a `Highly Available` installation and maintaining it. -1. OpenObserve Cloud with its generous free tier is quite a lot for most hobby users / smaller companies / startups. -1. Newer features and bug fixes are available earlier in OpenObserve Cloud. -1. And more... +=== "OpenObserve Cloud(Recommended)" -## OpenObserve Cloud + [OpenObserve Cloud](https://cloud.openobserve.ai) is the fastest way to get started and is recommended for most users because: -OpenObserve Cloud is offered as a hosted service backed by open source OpenObserve. It has the same features as that of OpenObserve with generous free tier with no effort on maintaining infrastructure for your own cluster. + - **Zero maintenance:** No need to set up, operate, or upgrade infrastructure — we handle it all for you. + - **Effortless scaling:** Easily handle growing data volumes without worrying about capacity planning or scaling issues. + - **Always up-to-date:** Get the latest features, improvements, and security patches automatically. -Let's go through it. +=== "Self-Hosted Installation" -1. Navigate to [https://cloud.openobserve.ai](https://cloud.openobserve.ai) -2. Use a social login to create an account or login - - ![Sign in page](./images/quickstart/signin.png) + Choose self-hosted if you need: -3. Now head over to `Ingestion` section and grab `CURL` command + - Full control over your data and infrastructure + - Custom configurations or integrations + - On-premises deployment requirements -![Ingestion](./images/quickstart/ingestion_credentials.png) -Now head over to [Load sample data](#load-sample-data) section +## Option 1: OpenObserve Cloud Setup +??? "Step 1: Create Your Account" -## Self hosted Installation + 1. Navigate to [https://cloud.openobserve.ai](https://cloud.openobserve.ai) + 2. Sign up using social login or create a new account -**Note**: Installation directions on this page is for single node installations. If you are looking for a `Highly Available` installation then head over to [HA deployment](./ha_deployment.md) section. + ![Sign in page](./images/quickstart/signin.png) -You would need ZO_ROOT_USER_EMAIL and ZO_ROOT_USER_PASSWORD environment variables when you start OpenObserve for the first time. You don't need them on subsequent runs of OpenObserve. +??? "Step 2: Get Your Ingestion Credentials" -=== "Windows" + 1. After logging in, navigate to the **Data Sources** section in the sidebar - Binaries can be downloaded from [releases](https://github.com/openobserve/openobserve/releases) page for appropriate platform. + ![Ingestion](./images/quickstart/ingestion_credentials.png) + 2. Copy the provided cURL command - it contains your unique credentials + 3. Your endpoint will look like: `https://api.openobserve.ai/api/[YOUR_ORG]/default/_json` - set ZO_ROOT_USER_EMAIL=root@example.com - set ZO_ROOT_USER_PASSWORD=Complexpass#123 - openobserve.exe + You are ready to ingest data. Now head over to [Load sample data](#load-sample-data) section. +## Option 2: Self-Hosted Installation - Now point your browser to [http://localhost:5080](http://localhost:5080) and login +> **Important**: These instructions are for single-node installations. For production high-availability setups, see our [HA deployment guide](./ha_deployment.md). -=== "MacOS/Linux Binaries" - You could run the below command to download latest version of OpenObserve for your platform. Alternatively you could download the binary from [releases](https://github.com/openobserve/openobserve/releases) page manually: +You'll need to set root user credentials (ZO_ROOT_USER_EMAIL and ZO_ROOT_USER_PASSWORD) on first startup only. They are not required for subsequent runs. + +=== "Windows" + + **Download and Install** + + 1. Download the Windows binary from our [releases page](https://github.com/openobserve/openobserve/releases) + 2. Open Command Prompt or PowerShell as Administrator + 3. Run the following commands: + + ```cmd + #command prompt + set ZO_ROOT_USER_EMAIL=root@example.com + set ZO_ROOT_USER_PASSWORD=Complexpass#123 + openobserve.exe + ``` - curl -L https://raw.githubusercontent.com/openobserve/openobserve/main/download.sh | sh + ```powershell + #powershell + $env:ZO_ROOT_USER_EMAIL="root@example.com" + $env:ZO_ROOT_USER_PASSWORD="Complexpass#123" + .\openobserve.exe + ``` + + !!! note + You can set email and password based on your preference - Once downloaded run it using below command: - ZO_ROOT_USER_EMAIL="root@example.com" ZO_ROOT_USER_PASSWORD="Complexpass#123" ./openobserve +=== "MacOS/Linux Binaries" + **Option A: Quick Install Script** + ```bash + # Download and install latest version automatically + curl -L https://raw.githubusercontent.com/openobserve/openobserve/main/download.sh | sh - Now point your browser to [http://localhost:5080](http://localhost:5080) and login + # Run OpenObserve + ZO_ROOT_USER_EMAIL="root@example.com" ZO_ROOT_USER_PASSWORD="Complexpass#123" ./openobserve + ``` - **Getting glibc error running binary** + **Option B: Manual Download** - ```shell - ./openobserve: `/lib/libm.so.6`: version `GLIBC_2.27` not found (required by ./openobserve) + 1. Download the appropriate binary from our [releases page](https://github.com/openobserve/openobserve/releases) + 2. Make it executable: `chmod +x openobserve` + 3. Run with environment variables as shown: + ```bash + # Run OpenObserve + ZO_ROOT_USER_EMAIL="root@example.com" ZO_ROOT_USER_PASSWORD="Complexpass#123" ./openobserve ``` - > Download the `musl` binary instead of regular binary from [releases](https://github.com/openobserve/openobserve/releases) page that has no external dependencies. This binary is not as performant as other binaries though. We recommend running the containerized version if performance is a concern for you and are unable to make the dependencies work. + !!! note + If you see an error like `version GLIBC_2.27 not found`, download the `musl` binary instead: + + - Look for files ending in `-linux-musl.tar.gz` on the releases page + - musl binaries have slightly lower performance but no external dependencies === "Docker" - Docker images are available at [https://gallery.ecr.aws/zinclabs/openobserve](https://gallery.ecr.aws/zinclabs/openobserve) + **Prerequisites**: Ensure Docker is installed and running on your system. - docker run -v $PWD/data:/data -e ZO_DATA_DIR="/data" -p 5080:5080 \ - -e ZO_ROOT_USER_EMAIL="root@example.com" -e ZO_ROOT_USER_PASSWORD="Complexpass#123" \ - public.ecr.aws/zinclabs/openobserve:latest + Docker images are available at: + + - Enterprise: [https://gallery.ecr.aws/zinclabs/openobserve-enterprise](https://gallery.ecr.aws/zinclabs/openobserve-enterprise) + - OSS : [https://gallery.ecr.aws/zinclabs/openobserve](https://gallery.ecr.aws/zinclabs/openobserve) + + + **Linux/macOS:** + ```bash + docker run -v $PWD/data:/data -e ZO_DATA_DIR="/data" -p 5080:5080 \ + -e ZO_ROOT_USER_EMAIL="root@example.com" -e ZO_ROOT_USER_PASSWORD="Complexpass#123" \ + public.ecr.aws/zinclabs/openobserve:latest + ``` + **Windows:** + ```cmd + # Windows Command Prompt + docker run -d --name openobserve -v %cd%/openobserve-data:/data -e ZO_DATA_DIR="/data" -e ZO_ROOT_USER_EMAIL="root@example.com" -e ZO_ROOT_USER_PASSWORD="Complexpass#123" -p 5080:5080 public.ecr.aws/zinclabs/openobserve:latest + ``` - Now point your browser to [http://localhost:5080](http://localhost:5080) and login + **Docker Image Options:** - **Error pulling image if you have AWS CLI installed?** + - `latest`: Compatible with most environments + - `latest-simd`: Optimized for systems with AVX512 (Intel) or NEON (ARM) for better performance - If you have AWS CLI installed and get login error then run below command: + !!! Troubleshooting + If you encounter AWS ECR login issues: + ```bash aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws + ``` - - *** Docker tags *** +=== "Kubernetes - Manifest" + + **Prerequisites**: Ensure `kubectl` is configured and you have cluster access. - - `public.ecr.aws/zinclabs/openobserve:latest` + 1. **Create namespace:** + ```bash + kubectl create namespace openobserve + ``` - Compatible with environments of most users + 2. **Deploy OpenObserve:** + ```bash + kubectl apply -f https://raw.githubusercontent.com/zinclabs/openobserve/main/deploy/k8s/statefulset.yaml + ``` - - `public.ecr.aws/zinclabs/openobserve:latest-simd` + 3. **Access the service:** + ```bash + kubectl -n openobserve port-forward svc/openobserve 5080:5080 + ``` - If you want to leverage OpenObserve's support for vectorization then you should use this image. OpenObserve supports `AVX512` on intel CPUs, or `NEON` on ARM CPUs. This will help you get higher performance. -=== "Kubernetes - Manifest" - Create a namespace: +## Verify Installation + +After installation, verify OpenObserve is running: + +1. Open your browser and navigate to: + - **Self-hosted**: [http://localhost:5080](http://localhost:5080) + - **Cloud**: [https://cloud.openobserve.ai](https://cloud.openobserve.ai) + +2. Log in with your credentials: + - **Self-hosted**: Use the email/password you set in environment variables + - **Cloud**: Use your account credentials + +3. You should see the OpenObserve dashboard + + +## Load Sample Data + +Let's load some real-world log data to explore OpenObserve's features. + +??? "Step 1: Download Sample Data" + + ```bash + # Download and extract sample Kubernetes logs + curl -L https://zinc-public-data.s3.us-west-2.amazonaws.com/zinc-enl/sample-k8s-logs/k8slog_json.json.zip -o k8slog_json.json.zip + unzip k8slog_json.json.zip + ``` + + **What's in the sample data**: This file contains real Kubernetes application logs with various log levels (info, warning, error) and structured JSON fields. + +??? "Step 2: Load Data into OpenObserve" + + **For OpenObserve Cloud**: + ```bash + # Use the cURL command from your Ingestion page + curl -u your-email@domain.com:your-password \ + -H "Content-Type: application/json" \ + https://api.openobserve.ai/api/YOUR_ORG/default/_json \ + -d "@k8slog_json.json" + ``` + + **For Self-Hosted Installation**: + ```bash + curl -u "root@example.com:Complexpass#123" \ + -H "Content-Type: application/json" \ + http://localhost:5080/api/default/default/_json \ + -d "@k8slog_json.json" + ``` + +??? "Step 3: Verify Data Upload" + + You should see output similar to: + ```json + {"code":200,"status":"ok","records":1000} + ``` + + If you see errors, check: + + - Your credentials are correct + - The JSON file was downloaded completely + - OpenObserve is running and accessible + + +## Search Your Data + +Now let's explore the data you just loaded. + +??? "Step 1: Access the Logs Interface" - kubectl create ns openobserve + 1. Navigate to your OpenObserve instance + 2. Click on **Logs** in the left sidebar + 3. Select **default** from the stream dropdown (top-left) - Create the deployment and port forward: + ![Logs page](./images/quickstart/logs_page.png) - kubectl apply -f https://raw.githubusercontent.com/zinclabs/openobserve/main/deploy/k8s/statefulset.yaml - Expose the openobserve service by port-forwarding: +??? "Step 2: Try These Sample Searches" - kubectl -n openobserve port-forward svc/openobserve 5080:5080 + **Basic searches** (click the **Run Query** button after each): - Now point your browser to [http://localhost:5080](http://localhost:5080) and login + 1. **View all logs**: Leave search box empty and click search + 2. **Find errors**: `level='error'` or `match_all('error')` -## Load sample data +*Congratulations! You now have OpenObserve running with sample data.* -We will use JSON API to load sample log data. -Below commands will download a sample file of real life log data, unzip it and load it in OpenObserve using the JSON ingestion API. +## Next Steps - Send Your Own Data -**Download sample data** +- **Application logs**: Use our [logging libraries](./ingestion/logs/otlp.md) for your applications +- **Metrics**: Set up [Prometheus integration](./ingestion/metrics/prometheus.md) +- **Traces**: Configure [OpenTelemetry](./ingestion/traces/opentelemetry.md) for distributed tracing -```shell -curl -L https://zinc-public-data.s3.us-west-2.amazonaws.com/zinc-enl/sample-k8s-logs/k8slog_json.json.zip -o k8slog_json.json.zip -unzip k8slog_json.json.zip -``` -**Load sample data** +## Troubleshooting Common Issues -*Note*: Replace the URL you got from OpenObserve Cloud and append it with `@k8slog_json.json` +??? "Can't access OpenObserve web interface" -```shell title="For OpenObserve Cloud" -curl -u user@domain.com:abqlg4b673465w46hR2905 -k https://api.openobserve.ai/api/User_organization_435345/default/_json -d "@k8slog_json.json" -``` + - Check if the process is running + - Verify port 5080 is not blocked by firewall + - For Docker: ensure port mapping is correct (`-p 5080:5080`) -```shell title="For self hosted installation" -curl http://localhost:5080/api/default/default/_json -i -u "root@example.com:Complexpass#123" -d "@k8slog_json.json" -``` +??? "Authentication errors" + - Verify your email/password combination + - For self-hosted: ensure environment variables were set correctly + - For cloud: check your account credentials -## Search for data +??? "Data not appearing" -Point your browser to [http://cloud.openobserve.ai](http://cloud.openobserve.ai) (for OpenObserve Cloud) / [http://localhost:5080](http://localhost:5080) (for self hosted) and login + - Verify the curl command returned success (200 status) + - Check the time range in the web interface + - Ensure you selected the correct stream/index -1. Visit `logs` page -1. Select the index `default` from drop down in the left -![Logs page](./images/quickstart/logs_page.png) -1. Type `match_all('error')` in search bar and click the search button on right. +??? "Performance issues" -Click on the "syntax guide" button next to the search bar to see examples on how to search. + - Consider using the SIMD Docker image for better performance + - Check available memory and CPU resources + - For large datasets, consider the high-availability deployment +If you're still having issues, Join our [Slack Community](https://short.openobserve.ai/community) for help diff --git a/docs/images/features/logs-hero.png b/docs/images/features/logs-hero.png new file mode 100644 index 00000000..6000c0a3 Binary files /dev/null and b/docs/images/features/logs-hero.png differ diff --git a/docs/images/features/metrics-hero.png b/docs/images/features/metrics-hero.png new file mode 100644 index 00000000..c8bfb39f Binary files /dev/null and b/docs/images/features/metrics-hero.png differ