← Back to blog

Monitoring Your Own Server From Another City

Maria Ilinca Bostan

A monitoring agent running on the server it monitors cannot tell you the server is down. It is a small, obvious point that most small setups get wrong, and it is why the second cheapest machine you should ever buy is a watcher in a different city.

This is a practical layout for one or two servers: what to measure, what to alert on, where to put the watcher, and what it costs. Nothing here needs a managed monitoring product.

Four layers, in the order they pay off

  1. External checks. Does the site answer, in how long, with the right status code, and is the certificate still valid. This layer catches the outages your customers would report, and it has to run somewhere else.
  2. Host metrics. Processor, memory, disk space, disk latency, network. An exporter on each machine and a collector that scrapes it. Disk space alone justifies the whole exercise.
  3. Application metrics. Queue depth, error rate, slow queries, worker health. The numbers that explain why the external check got slow.
  4. Logs. Kept long enough to investigate yesterday, rotated hard enough not to fill the disk.

Layer one plus disk space alerting catches the majority of real incidents on a small estate. Build those first and resist the temptation to assemble dashboards nobody reads.

Put the watcher somewhere else

A probe in the same city as the thing it probes shares a fate with it. Our virtual machines run in five cities, so pair them deliberately.

Your server is inPut the watcher inSeparation
FrankfurtAmsterdam3 ms, different facility operator and exchange
AmsterdamFrankfurt3 ms the other way
ViennaWarsawBoth under 7 ms from the hub, different regions
WarsawViennaAs above, reversed
BucharestFrankfurt10 ms, and the hub is unlikely to be down with it

If the watcher and the server share a city, your alerting is still better than nothing, it just cannot distinguish "the site is broken" from "the site is unreachable".

What a watcher costs

Less than most people expect, because probing is cheap. The work is a few requests a minute plus whatever history you keep.

PlanRAMSSDBucharestFrankfurt or ViennaGood for
Ion2 GB20 GB€4.50€6.00External checks on a handful of endpoints, alerting, a status page
Pulse4 GB40 GB€6.50€9.50The above plus a metrics collector with a few weeks of history
Core8 GB60 GB€11.00€17.00Metrics, dashboards and a modest log store for several machines

Retention is a disk question, not a memory one. Extra disk comes in 50 GB units at €4 per unit per month, up to three units, which is usually cheaper than moving up two plans. Traffic is unmetered, so scraping every fifteen seconds forever costs nothing. Per city prices for the whole range are in our price by location breakdown.

What to alert on, and what to ignore

Every alert that fires without requiring action trains you to ignore the next one. A short list that earns its place:

  • The site did not answer twice in a row, from two locations. One failed probe from one place is usually the network, not the server.
  • Disk above 80 percent, and disk growth rate. The rate matters more than the level, because it tells you whether you have hours or weeks.
  • Certificate expiring within a fortnight. Renewals fail silently more often than anyone admits.
  • Memory pressure, and the out of memory killer firing. A process that was killed and restarted looks perfectly healthy afterwards, which is why an application that disappears under load is usually a memory problem rather than a connectivity one.
  • Silence. A job that should run hourly and has not run for three hours. Absence of activity is the hardest failure to notice and the easiest to alert on.
  • Backup did not complete. The alert you hope never matters, on the day it does. See automating backups.

Deliberately not on the list: processor above some percentage. A busy server is doing its job, and load that matters shows up as slow responses in layer one.

Where alerts should arrive

Somewhere you will see them outside working hours, and not only in email. Email is fine as a record and poor as an alarm. A chat channel, a push notification or a phone call depending on how much the outage costs. Whatever you choose, test it by breaking something on purpose once, because an untested alert path is the same as no alert path.

Using hourly machines around risky work

During a migration, a provider move or a large deploy, a second pair of eyes is worth having and does not need to be permanent. Every plan is available by the hour at the monthly price divided by 720 plus the location fee divided by 720. An Ion is €0.0063 an hour in Bucharest, so a probe box watching from a third city for a 12 hour maintenance window is eight cents.

Delete it afterwards, since a powered off machine still holds its disk and its address, and keep the permanent watcher on a monthly cycle because 720 hourly units cost exactly one month.

Where to start

Buy the smallest plan in a city your production is not in. Put external checks and alerting on it this week. Add host metrics next week. That order gives you the alerts that matter first, and the graphs that explain them second. Plans are on the VPS page, and if you already run a pair of servers, our note on pairing two locations covers the failover half of the same problem. The arithmetic behind how much downtime is worth preventing is in what the uptime nines actually cost.

Ready in under a minute

Deploy your first server now.

No contracts, no minimums. Start on an Ion KVM VPS at €0.0063 an hour and move to a monthly bare-metal server the day you outgrow it.

$ voxa deploy --plan ion --location amsterdam

KVM VPS billed hourly, capped monthly · Dedicated billed monthly · No setup fee

Included on every plan
Free IPv4 + IPv6
Every VPS
Unmetered traffic
1–10 Gbps
DDoS mitigation
2.5 Tbps
Root / IPMI access
Included
Setup fee
€0.00
Minimum term
None