Linux VPS

Server monitoring basics: what to watch and which tools to use

The metrics every server should be monitored for (uptime, CPU, RAM, disk, I/O, network, services, SSL), sensible alert thresholds, and free tools from htop to Netdata and Uptime Kuma.

BeginnerLinux VPS and dedicated servers3 min read

Server monitoring tells you something is wrong before your visitors do. A full disk, a memory leak or an expired certificate can all be caught early with a few checks and alerts. This guide covers the server monitoring basics: what to measure, when to alert, and free tools to do it.

Before you start

You need SSH access for on-server tools. External uptime checks work for any site, including shared hosting.

What to monitor

MetricWhy it mattersSuggested alert
Uptime (HTTP/ping)Is the site reachable from outside?Fails from 2+ locations
CPU and load averageSaturation slows every requestLoad above thread count for 10+ min
Memory and swapSwapping and OOM killsAvailable RAM under 10%, swap in use growing
Disk space and inodesFull disks break databases, mail and logsOver 85% used
Disk I/O waitSlow storage stalls everythingiowait high for several minutes
Network trafficAttacks, bandwidth overageUnusual spikes
ServicesWeb, database, mail processesProcess down
SSL certificate expiryBrowsers block expired certsUnder 14 days left
RAID/SMART healthFailing disks on dedicated serversAny degraded array or SMART error

Quick checks from the command line

  • uptime – load averages for 1, 5 and 15 minutes.
  • htop – live CPU, memory and processes.
  • free -h – RAM and swap.
  • df -h and df -i – disk space and inodes.
  • iostat -x 5 (package sysstat) – disk utilisation and wait times.
  • systemctl --failed – services that crashed.
  • journalctl -p err -b – errors since the last boot.

Free monitoring tools

External uptime monitoring

Run checks from outside your server so they still work when it is down. Uptime Kuma is a self-hosted dashboard you can run on a separate small VPS; many hosted services also offer free tiers with email alerts.

Netdata

Real-time, per-second dashboards for CPU, memory, disks, network and many services, with built-in alerts. Install it with the official script from the Netdata website and restrict its port to your IP.

Prometheus and Grafana

The standard for monitoring many servers: node_exporter exposes metrics, Prometheus stores them and Grafana draws dashboards. More setup, but very flexible.

Monit

A small daemon that checks processes, files and ports, and restarts a service automatically if it dies.

sysstat (sar)

Records historical CPU, memory and I/O so you can see what happened at 3 a.m. Enable it with systemctl enable --now sysstat and query with sar.

Set up alerts sensibly

  1. Alert on symptoms users feel (site down, slow responses) first.
  2. Require a condition to last a few minutes so short spikes do not page you.
  3. Send alerts to a channel someone actually reads.
  4. Review alerts monthly and remove noisy ones.

Troubleshooting with monitoring data

  • Load high, CPU idle: processes are waiting on disk – check iowait.
  • Memory slowly climbing until restart: likely a leak in an app or too many workers.
  • Disk full overnight: look for huge logs with du -sh /var/log/*.

FAQ: server monitoring basics

Do I need monitoring on shared hosting?

An external uptime check is still useful. Resource usage is shown in cPanel, and the host monitors the server itself.

Should the monitor run on the same server?

Metrics collection can, but uptime checks and alerting should run elsewhere so they survive an outage.

What is a good load average?

Below the number of CPU threads is healthy. Check yours with nproc.

Next steps

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.