---
title: "How to monitor Docker on a Hetzner VPS | Sentinely"
description: "Hetzner's console only shows whole-VPS graphs. Monitor a Docker host on Hetzner with host metrics, uptime checks and heartbeats, without Prometheus."
url: https://sentinely.app/blog/monitor-docker-hetzner
---

# How to monitor Docker on a Hetzner VPS

Hetzner's console only shows whole-VPS graphs. Monitor a Docker host on Hetzner with host metrics, uptime checks and heartbeats, without Prometheus.

## The Problem: Docker on Hetzner VPS - Great, but Blind?

Hetzner provides excellent value for virtual private servers, making it a popular choice for developers deploying Docker containers. However, the default Hetzner Cloud interface offers limited insights into the actual performance of your Dockerized applications. You only see aggregate CPU and RAM usage of the _entire_ VPS, not the individual containers. This makes troubleshooting performance bottlenecks a nightmare. How do you know if your app is slow because of network latency, a CPU-hogging container, or a memory leak?

Without proper monitoring, you're flying blind.

## The "Hard" Way: Manual Configuration with cAdvisor, Prometheus, and Grafana

Traditionally, monitoring Docker containers on a VPS involved a complex setup using tools like cAdvisor, Prometheus, and Grafana.

1. **cAdvisor (Container Advisor):** You'd first need to deploy cAdvisor as a Docker container itself. This tool collects resource usage and performance characteristics from running containers.

Terminal

```
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  gcr.io/cadvisor/cadvisor:latest
```

2. **Prometheus:** Next, you'd install and configure Prometheus to scrape metrics from cAdvisor's HTTP endpoint. This involves editing `prometheus.yml` to define the scrape target.

YAML

```
scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['your_hetzner_vps_ip:8080']
```

3. **Grafana:** Finally, you'd set up Grafana, create a data source pointing to your Prometheus instance, and import or build dashboards to visualize the metrics.

This process is time-consuming, requires a deep understanding of each tool, and involves maintaining complex configuration files. It's a PhD in DevOps just to see if your app is healthy!

## The Simpler Way: Host Monitoring, Uptime Checks and Heartbeats with Sentinely

Sentinely does not replace cAdvisor's per-container breakdown. What it does is cover the three things that actually page you on a single Hetzner box, without running a monitoring stack next to your app:

1. **Install the Sentinely agent on the host.** In Sentinely, open **Pulse → Add server**, generate an agent API key, and run the displayed command over SSH:

Terminal

```
curl -fsSL https://sentinely.app/install.sh | sudo bash -s -- --key YOUR_API_KEY
```

The agent reports host-level CPU, memory, disk, network, load, services, processes and open ports. Because it pushes data out, you don't open any inbound ports on the VPS.

2. **Add an uptime check for each public container.** A Ping monitor on `https://your-app.example.com/health` tells you when the container stops answering, which is usually what you care about.

3. **Add a heartbeat for containers that run jobs.** If a worker or scheduled container should finish every hour, have it send a heartbeat when it succeeds. Sentinely alerts you when the heartbeat is late:

Terminal

```
curl -fsS -X POST -H "Content-Type: application/json" -d '{"status":"ok"}' https://sentinely.app/api/beat/YOUR_TOKEN
```

For a per-container view while debugging, `docker stats` on the host is still the quickest tool.

## Key Metrics to Watch

When running Docker on a Hetzner VPS, watch these host-level signals:

- **CPU usage and load:** sustained high load usually means one container is starving the others.
- **Memory and swap:** the kernel OOM killer will stop containers silently when memory runs out.
- **Disk usage:** images, volumes and logs fill disks faster than you expect. Alert well before 90%.
- **Network I/O:** unexpected spikes can mean a runaway client or abuse.
- **Endpoint health:** an uptime check per public service confirms containers are actually serving traffic.

## Conclusion

Full container observability with cAdvisor, Prometheus and Grafana is powerful but heavy for a single VPS. Sentinely covers the host, the endpoints and the scheduled jobs with one agent and a few monitors. [Start a 14-day trial](https://sentinely.app/auth/sign-up) and connect your first Hetzner server.

On this page

1. The Problem: Docker on Hetzner VPS - Great, but Blind?
2. The "Hard" Way: Manual Configuration with cAdvisor, Prometheus, and Grafana
3. The Simpler Way: Host Monitoring, Uptime Checks and Heartbeats with Sentinely
4. Key Metrics to Watch
5. Conclusion

Pulse

Watch the host your containers run on

One agent reports host health, running services and open ports, and alerts you when the machine under your containers gets into trouble.

[Start 14-day trial](https://sentinely.app/auth/sign-up) [Explore Pulse](https://sentinely.app/pulse)

Pulse

Watch the host your containers run on

One agent reports host health, running services and open ports, and alerts you when the machine under your containers gets into trouble.

[Start 14-day trial](https://sentinely.app/auth/sign-up) [Explore Pulse](https://sentinely.app/pulse)

## Keep reading

[DockerJan 26, 20242 min read ## Monitor a Docker host on Raspberry Pi Monitor a Raspberry Pi running Docker: host CPU, memory, disk and network with the ARM64 Sentinely agent, plus uptime checks and heartbeats for containers. Read the guide](https://sentinely.app/blog/monitor-docker-containers-on-raspberry-pi-with-sentinely) [Linux serversDec 16, 20252 min read ## How to monitor Debian 12 server performance Monitor CPU, memory, disk and services on Debian 12 Bookworm, comparing a Prometheus and Grafana stack with the one-command Sentinely agent install. Read the guide](https://sentinely.app/blog/monitor-debian-12-performance)
