Deploying the Observe Agent on Amazon Linux 1 Using Docker

Amazon Linux 1 does not support native installation of the Observe Agent or Fluent Bit due to missing system-level dependencies (such as systemd). The recommended and fully supported deployment method for this OS is to run the Observe Agent in a Docker container. This approach avoids OS-level limitations and provides a consistent deployment environment.

This guide walks through preparing configuration, running the agent in Docker, and verifying successful operation. It also includes optional notes for Jenkins environments.


Prerequisites

  • Amazon Linux 1 host with Docker installed
  • Access to your Observe tenant
  • An Observe ingest token
  • (Optional) Jenkins installed, if you plan to ingest Jenkins logs/metrics

1. Create Configuration Files

a. observe-agent.yaml

Create a file named observe-agent.yaml and populate it with the following content.
Replace ${TOKEN} and YOUR_TENANT_ID with appropriate values.

token: "${TOKEN}"
observe_url: https://YOUR_TENANT_ID.collect.observeinc.com/
application:
  RED_metrics:
    enabled: true
debug: false

forwarding:
  enabled: true
  endpoints:
    grpc: 0.0.0.0:4317
    http: 0.0.0.0:4318
  metrics:
    output_format: otel
  traces:
    max_span_duration: 1h

health_check:
  enabled: true
  endpoint: 0.0.0.0:13133
  path: /status

host_monitoring:
  enabled: true
  logs:
    auto_multiline_detection: false
    enabled: true
    exclude: []
    include:
      - /hostfs/var/log/**/*.log
      - /hostfs/var/log/syslog
      - /hostfs/var/lib/jenkins/**/*.log
      - /hostfs/var/lib/jenkins/jobs/**/log
  metrics:
    host:
      enabled: true
    process:
      enabled: true

internal_telemetry:
  enabled: true
  logs:
    enabled: true
    encoding: console
    level: info
  metrics:
    enabled: true
    host: 0.0.0.0
    level: detailed
    port: 8888

otel_config_overrides: {}
resource_attributes: {}
self_monitoring:
  enabled: true

Important:
Setting the forwarding endpoints to 0.0.0.0 (instead of localhost) is critical—this resolves common ingestion and connectivity issues when running in Docker.


b. .env File

Create a .env file in the same directory:

TOKEN=your_observe_token_here

2. Run the Observe Agent Container

Standard Networking

sudo docker run \
    --detach \
    --pid=host \
    --restart=unless-stopped \
    -v /proc:/hostfs/proc:ro \
    -v /var/lib/docker:/hostfs/var/lib/docker:ro \
    -v /var/log:/hostfs/var/log:ro \
    -v /var/lib/jenkins:/hostfs/var/lib/jenkins:ro \
    -v "${PWD}/observe-agent.yaml:/etc/observe-agent/observe-agent.yaml" \
    --env-file .env \
    -p 4317:4317 \
    -p 4318:4318 \
    -p 13133:13133 \
    YOUR_IMAGE_REGISTRY/observeinc/observe-agent:2.8.1

Alternative: Host Networking

If you encounter issues with Docker port binding or firewall behavior, switch to host networking:

sudo docker run \
    --detach \
    --pid=host \
    --restart=unless-stopped \
    --network host \
    -v /proc:/hostfs/proc:ro \
    -v /var/lib/docker:/hostfs/var/lib/docker:ro \
    -v /var/log:/hostfs/var/log:ro \
    -v /var/lib/jenkins:/hostfs/var/lib/jenkins:ro \
    -v "${PWD}/observe-agent.yaml:/etc/observe-agent/observe-agent.yaml" \
    --env-file .env \
    YOUR_IMAGE_REGISTRY/observeinc/observe-agent:2.8.1

3. Verify the Agent is Running

Check the container

sudo docker ps

Look for the Observe Agent container in the output.

Verify listening ports

sudo ss -ltnp | grep :4318
sudo ss -ltnp | grep :4317
sudo ss -ltnp | grep :13133

These confirm:

  • OTLP gRPC (4317)
  • OTLP HTTP (4318)
  • Health check endpoint (13133)