Install the agent on Docker
For a standalone Docker host (no Kubernetes), the ObserveKit agent runs as a single container that collects logs and metrics for every container on that host.
Prerequisites
- Docker on the host, and permission to run a container that mounts the Docker socket.
- Outbound HTTPS from the host to the ObserveKit server (e.g.
https://observekit-api.expeed.com).
1. Create the source
Sources → + Add Source, name it (e.g. build-host-01), choose Docker, click Create Source. The wizard emits a ready-to-run command with the source ID and API key already filled in:
docker run -d \ --name observekit-agent \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /var/lib/docker/containers:/var/lib/docker/containers:ro \ -e OBSERVEKIT_SERVER_ENDPOINT=https://observekit-api.expeed.com \ -e OBSERVEKIT_SERVER_SOURCE_ID=<source-id> \ -e OBSERVEKIT_SERVER_API_KEY=<api-key> \ <agent-image>
- The Docker socket (read-only) is how the agent discovers containers and reads their logs.
--restart unless-stoppedkeeps the agent running across reboots.<agent-image>is filled in by the wizard (it resolves the current released agent image).
2. Run it
Paste and run the command on the host.
3. Verify
docker logs -f observekit-agent
The source flips to CONNECTED on the Sources page within ~30s (the agent heartbeats). Container logs and metrics start flowing into [Log Explorer](/help/logs/searching-logs).
Configuration
Filtering and tuning work the same as Kubernetes, but the config lives on disk at /etc/observekit/agent.yaml instead of a ConfigMap. Edit it and restart:
docker restart observekit-agent
See [Agent configuration](/help/sources/agent-config) for the filter reference (namespaces don't apply on Docker, but level/label/container-name/message filters do).
Upgrade
docker pull <agent-image> docker rm -f observekit-agent # then re-run the docker run command from the wizard
Or open the source and use Regenerate Install Link for a fresh command.
Uninstall
docker rm -f observekit-agent
Delete the source in the UI to stop it accepting new data. Historical data stays queryable.
Not connecting?
See [Troubleshooting: I see no data](/help/getting-started/no-data).