VM Based Installation

Prerequisites

Hardware Requirements

  • 4 vCPU or more

  • 16 GB RAM minimum

  • 50 GB disk space

  • Static private IP address for handling VM restarts

Operating System

Ensure one of the following operating systems is installed:

  • Ubuntu 20.04 LTS or later (recommended)

  • Red Hat Enterprise Linux 8 or later

  • Amazon Linux 2

Network Requirements

  • Outbound internet access for downloading packages

  • Access to container registries

  • Ability to expose required ports (9000, 10001-10009)

Installation Steps

1. Access Observo Settings

  1. Navigate to Observo Cloud interface

  2. Go to Settings → Site section

  3. Download the helm configuration file

2. Download Installation Script

  1. Download the observo_installer script

  2. Copy it to your VM

  3. Make it executable:

chmod +x observo_installer

Installer variables and defaults

These environment variables are read by the observo_installer script. If not provided, these defaults from the script are used:

SITE_VERSION="${SITE_VERSION:-2.4.2}"
MANAGER_VERSION="${MANAGER_VERSION:-2.4.4}"
UI_VERSION="${UI_VERSION:-release-main-2025-06-24-15-18-24}"
HELM_VERSION="${HELM_VERSION:-v3.17.2}"
CERT_MANAGER="${CERT_MANAGER:-v1.17.0}"
OBSERVO_DATA_DIR (unset by default)
OBSERVO_AIRGAPPED (defaults to false)
  • When OBSERVO_AIRGAPPED=false (default):

    • Used: HELM_VERSION (Helm version installed), CERT_MANAGER (GitHub manifest/CRDs version), OBSERVO_DATA_DIR (relocates k3s data if set).

    • Pull source: Site Helm chart is pulled from public OCI (oci://public.ecr.aws/observo-public/observo-site). Manager install is disabled by this script in non-airgapped mode (would also pull from public if supported).

    • Not used: SITE_VERSION, MANAGER_VERSION, UI_VERSION.

  • When OBSERVO_AIRGAPPED=true:

    • Used: SITE_VERSION, MANAGER_VERSION, UI_VERSION, HELM_VERSION, CERT_MANAGER, OBSERVO_DATA_DIR.

    • Pull source: Uses local, bundled artifacts (e.g., ./helm_charts/observo-site-<SITE_VERSION>.tgz, ./helm_charts/observo-manager-<MANAGER_VERSION>.tgz, and local cert-manager manifest files).

Override example:

# Airgapped: enabled (uses local/bundled artifacts). Overrides: SITE_VERSION, MANAGER_VERSION, UI_VERSION, OBSERVO_DATA_DIR.
OBSERVO_AIRGAPPED=true SITE_VERSION="2.9.5" MANAGER_VERSION="2.10.10" UI_VERSION="release-main-v0.89.2" OBSERVO_DATA_DIR="/opt" ./observo_installer _install_helm

# Non-airgapped (default): no need to set OBSERVO_AIRGAPPED. Overrides: OBSERVO_DATA_DIR only.
# Install k3s with data under /opt (optional)
OBSERVO_DATA_DIR="/opt" ./observo_installer install_k3s

3. Install Kubernetes (k3s)

./observo_installer install_k3s

This command:

  • Installs k3s Kubernetes distribution

  • Configures required system settings

  • Sets up container runtime

  • Prepares storage configuration

4. Deploy Observo Site

./observo_installer install_site $(pwd)/<site>.yaml

Replace <site>.yaml with your downloaded helm configuration file.

5. Verify Installation

Check pod status:

kubectl get pods -n observo-client

Expected output:

NAME                                   READY   STATUS    RESTARTS   AGE
control-agent-7d6d84f4f-xw9k9          1/1     Running   0          2m
data-plane-7d6d84f4f-xw9k9             1/1     Running   0          2m
pattern-extractor-7d6d84f4f-xw9k9      1/1     Running   0          2m
telemetry-collector-7d6d84f4f-xw9k9    1/1     Running   0          2m

Check services:

kubectl get svc -n observo-client

6. Configure Host Access

The installation script automatically configures nginx to route traffic to the Observo services. Verify the configuration:

sudo systemctl status nginx

Post-Installation Steps

1. Verify Site Status

  • Check site status in Observo Cloud interface

  • Status indicator should turn green

  • Verify data collection is working

2. Test Connectivity

Test HTTP endpoint:

curl -v http://localhost:10001/health

Test UDP endpoint:

nc -zu localhost 10001

3. Configure Firewall (if needed)

Allow required ports:

sudo ufw allow 10001:10009/tcp
sudo ufw allow 10001:10009/udp

System Configuration

Resource Limits

The installer automatically configures system limits. Verify the settings:

# Check file descriptor limits
cat /proc/sys/fs/inotify/max_user_watches
cat /proc/sys/fs/inotify/max_user_instances

Network Configuration

Verify proxy settings:

cat /etc/nginx/conf.d/stream/tcp-proxy.conf

For additional assistance, refer to:

Installer variables and defaults

These environment variables are read by the observo_installer script. If not provided, the following defaults from the script are used:

SITE_VERSION="${SITE_VERSION:-2.4.2}"
MANAGER_VERSION="${MANAGER_VERSION:-2.4.4}"
UI_VERSION="${UI_VERSION:-release-main-2025-06-24-15-18-24}"
HELM_VERSION="${HELM_VERSION:-v3.17.2}"
CERT_MANAGER="${CERT_MANAGER:-v1.17.0}"
OBSERVO_DATA_DIR (unset by default)
OBSERVO_AIRGAPPED (defaults to false)
  • When OBSERVO_AIRGAPPED=false (default):

    • Used: HELM_VERSION (controls Helm version installed), CERT_MANAGER (GitHub manifest/CRDs version), OBSERVO_DATA_DIR (relocates k3s data if set).

    • Not used: SITE_VERSION, MANAGER_VERSION, UI_VERSION (manager install is disabled; site installs from public OCI and does not use these tags).

  • When OBSERVO_AIRGAPPED=true:

    • Used: SITE_VERSION (site chart tgz and image tags), MANAGER_VERSION (manager chart tgz and related images), UI_VERSION (passed to manager chart), HELM_VERSION (local tar used if bundled), CERT_MANAGER (local manifest file name), OBSERVO_DATA_DIR (k3s data dir).

You can override any variable per-command, for example:

# Airgapped: enabled (uses local/bundled artifacts). Overrides: SITE_VERSION, MANAGER_VERSION, UI_VERSION, OBSERVO_DATA_DIR.
OBSERVO_AIRGAPPED=true SITE_VERSION="2.9.5" MANAGER_VERSION="2.10.10" UI_VERSION="release-main-v0.89.2" OBSERVO_DATA_DIR="/opt" ./observo_installer _install_helm

# Non-airgapped (default): no need to set OBSERVO_AIRGAPPED. Overrides: OBSERVO_DATA_DIR only.
# Install k3s with data under /opt (optional)
OBSERVO_DATA_DIR="/opt" ./observo_installer install_k3s

Common Issues

Control Agent sometimes will be in Init:0/1 status

alt text

It is important to note that cert-manager is a pre-requisite for observo sites. it is recommended to have cert-manager installed in the cluster

  • In this case, execute the command below to install Cert manager

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.18.0/cert-manager.yaml
  • Version of the Cert Manager can vary and inorder to apply the latest version please follow the link - https://cert-manager.io/docs/installation/

Last updated

Was this helpful?