Server monitoring · Linux
Server monitoring that installs in one line.
A small open-source agent watches disk, memory, load and a few security signals on your Linux servers, and e-mails you when something needs a look. No website needed, no port opened, no remote control.
On the server, as root
curl -fsSL https://approvalens.com/agent/install.sh | sudo bash -s -- --token <TOKEN>The token comes from your account. Add --dry-run to see every step without changing anything.
$2.99 per server per month · no website needed · cancel any time
Ubuntu 24.04 · 4 cores · up 41 days
full in about 19 days
last heartbeat 2 min agoNo open problems
What it watches
Four alerts worth waking up for
The agent samples the server every minute, sends a tiny heartbeat every 5 minutes and reports at once when a rule trips. The thresholds are built in, so there is nothing to tune.
1Disk filling up
A filesystem at 90%, or projected full within 48 hours at the rate of the last 6 hours. Inodes too.
2Memory, swap and load
Memory at 95% for 10 minutes, heavy swapping, load above twice the cores for 15 minutes.
3Server or agent silent
No heartbeat for 15 minutes: the server is down, offline or the agent stopped.
4Suspicious signals (heuristic)
Crypto-miner names, programs running from /tmp or deleted, new listening ports, new crontab lines, new SSH keys, new setuid files, changed PHP or JS files. A reason to look, not an antivirus verdict.
The e-mail you get
Approvalens · Server monitoring
db-1: disk / will be full in about 2 days
Detected 6 Oct 2026, 14:05 UTC:
- Disk / is 91% full (184 of 202 GB).
- It grew by about 380 MB an hour over the last 6 hours: at that rate it is full in about 2 days.
Open source
Read it before you run it as root
You are about to let a program onto your server, so you should be able to read it. The agent is about 3,000 lines of Go with no dependencies, MIT-licensed and built reproducibly: compile it yourself and the checksum matches ours.
- MIT licence
- Go standard library only, no dependencies
- Static binary, about 6 MB
- Reproducible builds
No remote control
It never runs a command or code it receives. The only thing it reads from our answer is the HTTP status code.
No open ports
It only makes outgoing HTTPS requests to approvalens.com. Nothing on it listens.
No file contents
Web root checks send names, times and sizes only; SSH keys travel as fingerprints.
No changes
It never kills, deletes or quarantines anything, and runs read-only under hard caps: 5% CPU and 64 MB of memory.
Measured on a test machine: 0.12% of one core, 12 MB of memory and about 230 KB of data a day.
Source code, hardening and checksumsPricing
$2.99 per server, per month
Each server is its own small subscription, so you pay for exactly what you watch. Add servers whenever you like and cancel one when you no longer need it; a subscription isn't tied to one machine, so you can swap servers freely.
Already monitoring a site? Every site subscription includes one server agent at no extra cost. Site monitoring
Cancel any time from your account. When your last subscription ends, the server keeps reporting for 7 more days, then pauses; its data is kept for 30 days after that.
| Servers | Per month |
|---|---|
| 1 server | $2.99 |
| 3 servers | $8.97 |
| 5 servers | $14.95 |
| 10 servers | $29.90 |
How to start
From sign-in to first heartbeat in about five minutes
- 1
Sign in
Sign in with Google on your account page and open Servers.
- 2
Add a server
Subscribe, name the server and copy its install line. The token is shown only once.
- 3
Run one line
Paste it into a root shell on the server. The script checks the binary's SHA-256 and starts a hardened systemd service.
- 4
Done
The server shows up in your account within a minute; the charts start filling in over the next 15 minutes.
Requirements: Linux with systemd · x86-64 or ARM64 · curl or wget
Questions
Which servers does it run on?
Any Linux server with systemd on x86-64 or ARM64: Ubuntu, Debian, RHEL, Rocky, Alma, Fedora and the like. The install script needs curl or wget.
Does it need root?
Installing does (it creates a user and a systemd service). The agent itself then runs as its own user with no privileges. Install with --root and it also reads other users' crontabs and SSH keys, keeping only two read-only capabilities.
Do I need a website or a site subscription?
No. Server monitoring is its own subscription, per server. If you do monitor a site, each site subscription already includes one server.
What happens when my server goes offline?
Fifteen minutes without a heartbeat and we e-mail you: the server is down, the network is out or the agent stopped. While it can't reach us, the agent keeps its messages for up to an hour and sends them later.
Is it an antivirus?
No. The security signals are heuristics: a known crypto-miner name, a program running from /tmp, a new SSH key. A match is a reason to look, not proof, and no match proves nothing.
Will it slow the server down?
Hardly. The target is under 1% of one core on average and under 30 MB of memory, and systemd enforces hard caps of 5% CPU and 64 MB. It sends a few hundred KB of data a day.
How do I remove it?
One line: run the install script with --uninstall. It stops the service and removes the binary, the config, the state folder, the unit and the user.