Docker

The Observe Agent is available as a Docker image. The official image is available on Docker Hub. You can see the latest tags available here.

Warning

Observe Agent v1.0.0 includes breaking changes. Learn more about these changes in Upgrade to Observe Agent v1.0.0

Setup

To run the Observe Agent Docker Image directly in a Docker runtime, you can run the following command

docker run \
--mount type=bind,source=/proc,target=/hostfs/proc,readonly \
--mount type=bind,source=/snap,target=/hostfs/snap,readonly \
--mount type=bind,source=/var/lib,target=/hostfs/var/lib,readonly \
--mount type=bind,source=/var/log,target=/hostfs/var/log,readonly \
--mount type=bind,source=/var/lib/docker/containers,target=/var/lib/docker/containers,readonly \
--mount type=bind,source=/var/log/pods,target=/var/log/pods,readonly \
--mount type=bind,source=$(pwd)/observe-agent.yaml,target=/etc/observe-agent/observe-agent.yaml \
--pid host \
observeinc/observe-agent:latest

Compose

You can also run the Observe Agent Docker Image via Docker Compose.

The following file is a basic Docker Compose file that runs the Observe Agent container. You can extend this file to also run other containers that can then send telemetry to and be monitored by the Observe Agent container.

# compose-debian-host.yaml
services:
  agent:
    image: "observeinc/observe-agent:latest"
    pid: host
    volumes:
      # Used for hostmetrics
      - type: bind
        source: /proc
        target: /hostfs/proc
        read_only: true
      - type: bind
        source: /snap
        target: /hostfs/snap
        read_only: true
      - type: bind
        source: /var/lib
        target: /hostfs/var/lib
        read_only: true
      # Used for filelog
      - type: bind
        source: /var/log
        target: /hostfs/var/log
        read_only: true
      # Symlinks dont work by default on docker containers so we need to add each of the 
      # directories containing symlink targets individually for docker to be able to follow them
      - type: bind
        source: /var/log/pods
        target: /var/log/pods
      - type: bind
        source: /var/lib/docker/containers
        target: /var/lib/docker/containers
      # Load agent from current directory
      - type: bind
        source: ${PWD}/observe-agent.yaml
        target: /etc/observe-agent/observe-agent.yaml

To run this Compose file, you’ll need to first create an observe-agent.yaml configuration file. For more information, see Configuration. Then, from the directory containing the observe-agent.yaml and compose-debian-host.yaml files, run the following command:

docker compose -f compose-debian-host.yaml -p observe-agent up