Opyntel
Hetzner

Hetzner server monitoring from inside the box: memory, disk and container alerts the Cloud console cannot see

Opyntel’s Hetzner monitoring uses an agent you install on your Hetzner servers to report memory, disk and containers. Your platform services sit in the same table, with alerts by email, Slack or SMS depending on your plan.

See how it works
Built in vs Opyntel

Hetzner on its own, and Hetzner with Opyntel

Feature by feature, the biggest gaps first: what Hetzner gives you, and what you get in one dashboard with Opyntel.

Every server at a glance

On Hetzner

Hetzner Console graphs such as CPU utilization and network traffic are read from the host server, not from inside your server, and cover what the host can see.

With Opyntel

Opyntel lists every Hetzner server with its state, memory, disk and load in one table, down and degraded first, so you see it all at a glance. Hetzner sits next to the other systems you run, from app platforms to other VPS hosts.

Memory and disk

On Hetzner

Hetzner explains that RAM usage needs access inside the cloud server, so the console cannot display a RAM graph of your server’s memory utilization.

With Opyntel

The Opyntel agent runs inside the server with one docker run command and reports memory, disk fill level and load, using outbound HTTPS only. Default rules alert when memory passes your threshold, a disk passes 85% or 95%, or a disk is on track to fill.

Containers

On Hetzner

Hetzner’s Docker CE app boots Ubuntu with Docker and the Docker Compose plugin preinstalled. Looking after the containers from there is up to you and Docker’s own tools.

With Opyntel

The agent reports CPU, memory and restarts for every container on the server, and alerts when a container goes down. Every alert notifies when it fires and again when it recovers, by email, Slack or SMS depending on your plan.

The total cost of your app

On Hetzner

Hetzner bills servers by the hour up to a monthly price cap, and the console shows usage for the current month. Cost alerts set per project email you when spending passes a limit; Hetzner calls them a convenience, not a spending limit.

With Opyntel

Opyntel reads your server list from the Hetzner API and shows a list-price cost estimate per server on Pro, added up with the spend of the other platforms you run into the total cost of your app. Monthly budget alerts and forecasts come with Enterprise.

Hetzner dashboard

The Hetzner console: what it shows and what it misses

The Cloud console is good at what the host can measure. Anything that needs a look inside the server, or across projects, is not there.

What the Hetzner dashboard shows

  • CPU, disk I/O and network graphs, measured by the hypervisor
  • Server status per project
  • Billing, cost alerts per project and traffic notices

What it does not show or alert on

  • Memory and disk usage inside the server
  • Threshold alerts on CPU, memory or disk
  • Several projects in one dashboard
  • Metrics history beyond 30 days
Hetzner vs Opyntel

What the console gives you, and what Opyntel adds

The Hetzner Cloud console draws its graphs from the host the server runs on. Opyntel adds what only the server itself can report.

CapabilityThe Hetzner Cloud consoleWhat Opyntel adds
CPU, network and disk I/O graphsThe Hetzner Cloud console

Graphs for CPU, network traffic and disk reads and writes, measured from the host outside your server. They do the job for those three.

What Opyntel addsCPU and network for every server and project in one view, read from the Hetzner Cloud API with a read-only token, and CPU, load and network from the agent.
Memory usageThe Hetzner Cloud console

The console shows no RAM graph. Hetzner explains that memory usage needs access to the cloud server, and Hetzner does not install software on yours.

What Opyntel addsThe agent reads memory from inside the server, charts it and alerts when it stays high.
Disk fill levelThe Hetzner Cloud console

The disk metrics Hetzner documents are reads and writes per second, which describe activity rather than how full the disk is.

What Opyntel addsThe agent reports used and free disk space, and alerts when a disk is nearly full or on track to fill.
Container healthThe Hetzner Cloud console

Console graphs come from the host, which has no view inside the server where your containers run.

What Opyntel addsPer-container CPU and memory and restart counts, so a crash-looping container shows up on the timeline.
AlertingThe Hetzner Cloud console

Cost alerts email you when a project passes a limit you set in the Usage section, and traffic notifications reach the project owner at 75% and 100% of included traffic.

What Opyntel addsRules on CPU, network, memory, disk and container state, plus monthly budgets on a list-price cost estimate on Enterprise, by email, Slack or SMS depending on your plan. Rules scope to a source, project or service.
History lengthThe Hetzner Cloud console

The Cloud API serves server metrics for the last 30 days.

What Opyntel addsOpyntel stores what it collects, with up to a year of hourly history.
Read-only accessThe Hetzner Cloud console

Hetzner API tokens are either Read, limited to GET requests, or Read & Write, which can also create, change and delete.

What Opyntel addsOpyntel only reads, enforced in code, and stores any token encrypted. The agent needs no Hetzner token and cannot reboot, resize or rebuild a server.
Dedicated (Robot) serversThe Hetzner Cloud console

Robot's server monitoring system emails you when a monitored ping or port check changes status. It has no CPU, memory or disk thresholds.

What Opyntel addsThe agent runs on a dedicated server the same way as on any Linux machine, with the same memory, disk and container metrics and alerts.
Hetzner alerts

What Hetzner alerts you about

Hetzner has no plan tiers: Hetzner Cloud and Robot dedicated servers, with their SysMon checks, alert on different things. Opyntel’s server alerts work the same on both.

AlertHetzner CloudDedicated (Robot, SysMon)Opyntel
Server downHetzner CloudNo down alert; server status shows in the consoleDedicated (Robot, SysMon)Email when a ping or port check changes statusOpyntelAlert when a server or container goes down or stops reporting.
CPUHetzner CloudGraph only, no threshold alertDedicated (Robot, SysMon)NoOpyntelThreshold rules on CPU and load, per server or container.
MemoryHetzner CloudNo graph and no alertDedicated (Robot, SysMon)NoOpyntelThe agent reads memory inside the server and alerts when it stays high.
DiskHetzner CloudReads and writes only, no fill level or alertDedicated (Robot, SysMon)NoOpyntelAlert when a disk is nearly full or on track to fill.
TrafficHetzner CloudEmail at 75% and 100% of included trafficDedicated (Robot, SysMon)NoOpyntelNetwork rules on any server, plus traffic overage in the cost estimate with a Cloud token.
SpendHetzner CloudCost alert when a project passes a limit you setDedicated (Robot, SysMon)NoOpyntelMonthly budgets on a list-price cost estimate, with a Hetzner Cloud token.
CertificateHetzner CloudNoDedicated (Robot, SysMon)HTTPS port check, no expiry warningOpyntelOpt-in HTTP and certificate checks.
Hetzner costs

What Hetzner costs you

How Hetzner Cloud bills and where a bill grows without anyone noticing.

What Hetzner bills on
Servers by the hour up to a monthly cap, outgoing traffic over the included amount in 100 MB blocks, snapshots per GB per month, Primary and Floating IPs.
Where surprise bills come from
A server is billed until you delete it, even when switched off. Unassigned IPv4s, old snapshots and traffic past the included amount keep billing too.
What the Opyntel spend view shows
With a Hetzner Cloud token, a list-price estimate for servers, backups, IPs, volumes, load balancers, snapshots and traffic overage, with monthly budget alerts.
Setup

How to set up Hetzner monitoring with Opyntel

Hetzner monitoring in four steps: from Hetzner to one dashboard with everything else you run.

  1. Optionally, create a Hetzner Cloud Read token
    For server states, CPU, network, server actions and a cost estimate, open your project in the Hetzner Console, then Security and API tokens, and generate a token with the Read permission, which allows only GET requests. The agent alone needs no token.
  2. Sign in to Opyntel
    Open your Opyntel dashboard and add a source. Accounts start from the waitlist, so join it to get yours.
  3. Paste the token if you made one, then start the agent
    Paste the token if you made one. For memory, disk fill level and per-container CPU and memory, run the docker run command your dashboard shows on each of your servers: the agent sends over outbound HTTPS only and opens no port. If Coolify manages the servers, add your Coolify instance too, with a Coolify API token that has the read permission.
  4. See Hetzner in one dashboard
    Hetzner monitoring lands next to the other platforms you run: every service and server sits in one dashboard, down and degraded first, with default alert rules on from the start.

Don’t see your platform? From your Opyntel account you can request an integration with more platforms. Until then, and tell us which one you run on.

Dashboard

All your Hetzner servers in one dashboard

Servers and the containers on them in one table.

Opyntel

Servers and containers from the agent land in one table, down and degraded first, with CPU and RAM. Services that Coolify manages appear beside them.

Services

Down and degraded first

Example data
Services
6
Down or degraded
2
Last sync
25 s ago
ServiceStatusProjectSourceCPURAMLast deploy
workerdownhel1-app-01Opyntel agent———
hel1-app-01degradedhel1-app-01Opyntel agent1.4 vCPU3.4 GB—
apideployingnbg1-api-01Coolify0.12 vCPU240 MBjust now
postgresoknbg1-api-01Opyntel agent0.31 vCPU1.8 GB—
nbg1-api-01oknbg1-api-01Opyntel agent0.52 vCPU2.6 GB—
proxyokfsn1-edge-01Opyntel agent0.03 vCPU58 MB—
FAQ

Hetzner questions, answered

Tokens, server types, the agent, outages and what Opyntel will not do.

The agent does not. It sends its own metrics out to Opyntel and uses no Hetzner credentials. If you also want server states, CPU and network, server actions such as reboots and a list-price cost estimate, you can add a read-only Hetzner Cloud token, and Opyntel only reads with it.

Yes. The agent runs on any Linux machine that can run Docker, so Hetzner dedicated servers and VPS from other providers work the same way.

It is a small collector that runs as one container. Its footprint depends on how many containers you run and which opt-in checks you turn on.

No. Opyntel is read-only. It can show that a server was rebooted or rebuilt and when, and it can alert you, but it cannot change anything on your servers or in your Hetzner account.

Host and container metrics, plus PostgreSQL stats if you turn them on. It collects no logs, and database credentials stay on the server.

No. With a Hetzner Cloud token Opyntel shows a list-price estimate for servers, backups, IPs, volumes, load balancers, snapshots and traffic overage, converted to USD. Your Hetzner invoice is the amount you pay.

Every source shows when it last reported. If the Hetzner Cloud connection stops answering, Opyntel flags it as failing and marks its data as stale, while the agent keeps reporting from inside the server. A failing connection with a healthy agent points at Hetzner; a silent agent points at the server.

In the Cloud Console, open the server and reboot it from Power, or run hcloud server reboot <name>; on the server itself, sudo reboot. Opyntel is read-only and never reboots servers, but it shows when one was rebooted and when it came back.

Hetzner Cloud includes an amount of outbound traffic with each server and bills what goes over it. With a read-only Hetzner Cloud token Opyntel reads the traffic used against that amount and alerts when it passes your threshold.

DigitalOcean alerts on memory and disk once its metrics agent is installed on a Droplet. Hetzner Cloud sends no CPU, memory or disk threshold alerts. The Opyntel agent reports the same metrics on both, so you can watch servers on either provider in one table.

Usually the Linux OOM killer, when a container or the whole server runs out of memory. Exit code 137 and OOM killed.

The console shows no disk fill level, so it usually surfaces as a failed deploy. Opyntel alerts before it fills. Find, free and grow a Hetzner disk.

Load counts processes waiting on CPU or disk, so compare it with the core count and check I/O wait. On shared vCPU plans, steal time from a busy host shows up too. Opyntel shows load and CPU per server. Linux load average explained.

The alerts your platform doesn’t send.

One dashboard for everything you run, with the alerts your platforms leave out. Read-only, nothing to install in your apps.

See how it works