Whether a server is a physical machine, a virtual machine or a cloud instance, the questions are the same: is it up, is it running out of anything, and are the services on it healthy? Server monitoring answers them continuously and alerts someone when the answer changes.
Key metrics
| Area | Metrics | What they tell you |
|---|---|---|
| CPU | Utilization, load average, iowait, steal time | Whether the server is busy, waiting on disk, or losing CPU to other tenants on the same host |
| Memory | Used and available memory, swap use, out-of-memory kills | Whether processes are about to be killed or slowed by swapping |
| Disk | Space and inodes used, read/write throughput, latency | Whether the disk will fill up, or is too slow for the workload |
| Network | Throughput, errors, dropped packets, connection counts | Saturated links and connection leaks |
| Processes and services | Running processes, their CPU and memory, restarts | Which process is using the resources, and whether a service has died |
| Availability | Uptime, reboots, health check results | Whether the server and its services are reachable |
Agent-based vs. agentless monitoring
- Agent-based: a small program on the server collects detailed metrics, process lists and logs, and sends them out. This gives the most detail and works through firewalls, since the agent connects outwards.
- Agentless: the monitoring system polls the server remotely over SNMP, WMI or SSH, or reads metrics from a cloud provider's API. Nothing is installed, but less detail is available.
Alerting that works
- Alert on trends that need action, such as "disk will be full in 24 hours", rather than on a fixed percentage that may be normal for that server.
- Require a condition to last a few minutes before paging, so short spikes don't wake anyone.
- Pair resource alerts with application signals. High CPU that doesn't slow any request can wait until morning.
Server monitoring vs. infrastructure monitoring
Server monitoring is one part of infrastructure monitoring, which also covers containers, networks, storage and cloud services. See what is infrastructure monitoring, storage monitoring and network performance management.
Server monitoring with Atatus
Atatus infrastructure monitoring uses one agent on Linux, macOS and Windows to collect CPU, memory, disk, load, network and per-process metrics, groups hosts on a map by label, and adds plugins for NGINX, Apache, HAProxy, MySQL, PostgreSQL, MongoDB, Redis and Memcached. Alerts go to email, Slack, PagerDuty and the other alerting channels.