Skip to content

Guide and tool

Server monitoring: what to measure and how to get it running in minutes

Server monitoring means continuously measuring load and availability and alerting automatically when something deviates, before users notice the fault. It takes two perspectives: an agent on the server for CPU, memory and disks, and a check from outside for what visitors actually experience.

As of 5 November 2026

web-01.example.com Ubuntu 24.04
CPU34%
RAM11.4 of 16 GB
Disk /184 of 200 GB

Notifications

shop.example.com is not responding Email14:02
Disk / on web-01 above 90% Webhook13:47
shop.example.com is reachable again Email14:06
A reproduction of the inping interface with example data

Metrics and thresholds

Which values should you monitor on a server?

CPU, memory, disk space, running services and whether the server is still reporting at all. The table shows what each value tells you and when an alert makes sense.

Value Starting point for the alert What it tells you
CPU usage above 90% for 5 minutes Preset in inping Is the server working at its limit? Short spikes are normal, sustained load is not.
Memory above 90% for 5 minutes Preset in inping Memory in use, not counting the file cache. When it fills up, the system ends processes or starts swapping.
Disks above 90%, immediately Preset in inping Disks fill steadily and do not recover by themselves. A full disk stops databases and logs.
Docker services not running, immediately Preset in inping A container that has stopped or is stuck in a restart loop.
Agent offline 3 missed reports, so 3 minutes at a 60-second interval Preset in inping The server has stopped reporting: a crash, the network, a stopped service.
Load your own rule, for example load above the core count for 15 minutes Our suggestion, as your own rule in inping Processes that want to run or are waiting. Staying above the number of CPU cores means work is piling up.
Swap your own rule, for example above 50% for 15 minutes Our suggestion, as your own rule in inping Constant swapping slows the whole server down and announces a memory shortage.

Why 5 minutes for the CPU but immediately for the disk?

A CPU may sit at 100% for a moment: a build or a backup is not an incident. Only sustained load is a problem, so the rule applies only when every value in the time window is above the limit. A disk, on the other hand, moves slowly and in one direction. When it reaches 90%, it will still be full five minutes later, so the alert goes out immediately.

When should you depart from the starting values?

Watch a normal week, then set the limits. 10% free is 200 GB on a 2 TB disk, but only 2 GB on a 20 GB disk: there, a rule in absolute bytes is better. A database server keeps a lot in memory on purpose and can sit higher than a web server. A rule in inping always reads the same way: when a value is above, below or equal to a limit, for a number of minutes.

Two perspectives

Agent or external check: which is better?

Neither on its own. The external check answers “Does it work?”, the agent answers “Why not?”. A server that has failed cannot report anything, and a website can be unreachable although its server is healthy.

How agent, runners and platform work togetherThe agent on your server and the runners send their results to the platform over outbound HTTPS. The runners check the website from outside. The platform decides and notifies by email or webhook.Your serverRunnersinping platformEmailWebhookWebsite and servicesAgent: CPU, memory,disks, packagesCheck each URLat the intervalyou setVerdict across all runners, alert rules,incidents: open once, close onceto team and contactssigned, to your systemHTTP(S)HTTPS, outboundResultsEvents

Three cases only the combination can explain

  • Website down, agent reports normal values: DNS, certificate, web server configuration or the route to it. The error type of the check narrows it down.
  • Website slow, memory at 97%: Memory is the likely cause. The agent shows which Docker service or which account is using it.
  • Website down, agent offline: The server or its network has failed. inping reports both as separate events.

Several runners do not count an outage twice: an incident opens when the platform's verdict across all runners is down, and closes when it is up again.

Approaches compared

Five ways to monitor a server

Each approach solves a different problem. inping combines the external check and the agent as a hosted service.

Approach What it sees Effort Limit
External HTTP check Availability, status code, response time and the kind of error, such as DNS, TLS or a timeout: what visitors experience. Nothing on the server, you only enter the URL. Tells you that something is broken, not why.
Agent on the server CPU, memory, disks, services, installed packages, scheduled jobs. Install once, then updates. A server that has failed reports nothing. You need an offline alert.
Agentless via SNMP, WMI or SSH Devices that cannot run software, such as switches and printers. No installation, but credentials and open ports. Usually less depth on applications. inping does not offer this approach.
Self-hosted suite Almost everything, for example with Zabbix, Icinga or Prometheus and Grafana. Your own server; upkeep, updates and alert paths are yours. If the monitoring goes down with the monitored network, it stays silent.
Hosted service Depends on the provider. inping combines external checks and an agent. Create an account, ready in minutes. Data sits with the provider, so check its location and the data processing terms.

We compare specific products in our comparison of monitoring tools.

What to look for in a server monitoring tool

Both perspectives

A check from outside and metrics from inside. Only together do they show whether a website is down and why.

Alerts that close

An alert should open once and close once. Anyone who gets a mail for every measurement soon stops reading them.

Independent of what it watches

Monitoring must not depend on the same machine or network as the monitored service, or it goes quiet when it matters.

Least privilege

The agent only needs read access and outbound HTTPS. If a tool asks for root or open ports, ask why.

Clear data location

Logs and hostnames can be personal data. The provider should disclose its location, deletion periods and data processing terms.

Setting up inping

How do I set up monitoring in a few minutes?

Four steps, with no open port and no need for root. The example shown is for Linux with systemd.

  1. 1. Create an account and a project

    Sign up and create one project per application. Enter the URLs that must be reachable. The checks run from then on.

  2. 2. Install the agent

    Under Agents → Add agent inping shows the finished command for your system, with a token that is valid for 24 hours and shown only once. Here it is with placeholders:

    curl -fsSL https://www.inping.io/install.sh | INPING_TOKEN=<token> sudo --preserve-env=INPING_TOKEN sh -s -- --project <project-id>=/srv/shop

    The script verifies the SHA-256 sum of the download, creates the user inping-agent and starts the service. Guides: Monitor a Linux server, Monitor a Windows server, Monitor Docker containers, and all systems in the installation guide.

  3. 3. Review the alert rules

    Every new server starts with the four preset rules from the table above and the offline alert. You add your own rules on the agent's page.

  4. 4. Decide on notifications

    Rules per project send events by mail to the team, to up to ten external addresses or to your clients' contacts, or as a signed webhook to your system. External addresses confirm by double opt-in first.

The result

What you see afterwards

All tiles reproduce the interface, here with example data.

shop.example.com 99.94%184 ms
1 min ago: 100 % · 170 ms
2 min ago: 100 % · 188 ms
3 min ago: 100 % · 205 ms
4 min ago: 100 % · 217 ms
5 min ago: 100 % · 224 ms
6 min ago: 100 % · 227 ms
7 min ago: 100 % · 224 ms
8 min ago: 100 % · 219 ms
9 min ago: 100 % · 212 ms
10 min ago: 100 % · 205 ms
11 min ago: 100 % · 201 ms
12 min ago: 100 % · 200 ms
13 min ago: 100 % · 203 ms
14 min ago: 100 % · 208 ms
15 min ago: 100 % · 215 ms
16 min ago: 100 % · 222 ms
17 min ago: 100 % · 227 ms
18 min ago: 100 % · 228 ms
19 min ago: 100 % · 225 ms
20 min ago: 100 % · 216 ms
21 min ago: 100 % · 202 ms
22 min ago: 100 % · 185 ms
23 min ago: 100 % · 166 ms
24 min ago: 100 % · 149 ms
25 min ago: 100 % · 133 ms
26 min ago: 100 % · 122 ms
27 min ago: 100 % · 116 ms
28 min ago: 100 % · 116 ms
29 min ago: 100 % · 119 ms
30 min ago: 100 % · 125 ms
31 min ago: 100 % · 131 ms
32 min ago: 100 % · 137 ms
33 min ago: 100 % · 140 ms
34 min ago: 100 % · 139 ms
35 min ago: 100 % · 136 ms
36 min ago: 100 % · 129 ms
37 min ago: 100 % · 121 ms
38 min ago: 100 % · 115 ms
39 min ago: 0 %
40 min ago: 0 %
41 min ago: 0 %
42 min ago: 100 % · 126 ms
43 min ago: 100 % · 141 ms
44 min ago: 100 % · 158 ms
45 min ago: 100 % · 177 ms
46 min ago: 100 % · 194 ms
47 min ago: 100 % · 208 ms
48 min ago: 100 % · 218 ms
49 min ago: 100 % · 222 ms
50 min ago: 100 % · 222 ms
51 min ago: 100 % · 218 ms
52 min ago: 100 % · 212 ms
53 min ago: 100 % · 206 ms
54 min ago: 100 % · 201 ms
55 min ago: 100 % · 200 ms
56 min ago: 100 % · 202 ms
57 min ago: 100 % · 207 ms
58 min ago: 100 % · 214 ms
59 min ago: 100 % · 222 ms
60 min ago: 100 % · 229 ms
61 min ago: 100 % · 232 ms
62 min ago: 100 % · 230 ms
63 min ago: 100 % · 224 ms
64 min ago: 100 % · 212 ms
65 min ago: 100 % · 196 ms
66 min ago: 100 % · 178 ms
67 min ago: 100 % · 160 ms
68 min ago: 100 % · 143 ms
69 min ago: 100 % · 130 ms
70 min ago: 100 % · 122 ms
71 min ago: 100 % · 119 ms
72 min ago: 100 % · 121 ms
73 min ago: 100 % · 126 ms
74 min ago: 100 % · 132 ms
75 min ago: 100 % · 137 ms
76 min ago: 100 % · 140 ms
77 min ago: 100 % · 140 ms
78 min ago: 100 % · 137 ms
79 min ago: 100 % · 131 ms
80 min ago: 100 % · 123 ms
81 min ago: 100 % · 114 ms
82 min ago: 100 % · 109 ms
83 min ago: 100 % · 106 ms
84 min ago: 100 % · 109 ms
85 min ago: 100 % · 117 ms
86 min ago: 100 % · 130 ms
87 min ago: 100 % · 147 ms
88 min ago: 100 % · 166 ms
89 min ago: 100 % · 184 ms
90 min ago: 100 % · 199 ms
Now90 minutes ago

Vulnerabilities in shop.example.com

example/http-client 2.1.0 → 2.1.4 Critical
example-parser 1.8.2 → 1.8.5 High
PHP 8.1 → 8.4 End of Life
All systems operational status.example.com
1 min ago: 100 %
2 min ago: 100 %
3 min ago: 100 %
4 min ago: 100 %
5 min ago: 100 %
6 min ago: 100 %
7 min ago: 100 %
8 min ago: 100 %
9 min ago: 100 %
10 min ago: 100 %
11 min ago: 100 %
12 min ago: 100 %
13 min ago: 100 %
14 min ago: 100 %
15 min ago: 100 %
16 min ago: 100 %
17 min ago: 100 %
18 min ago: 100 %
19 min ago: 100 %
20 min ago: 100 %
21 min ago: 100 %
22 min ago: 100 %
23 min ago: 100 %
24 min ago: 100 %
25 min ago: 100 %
26 min ago: 100 %
27 min ago: 100 %
28 min ago: 100 %
29 min ago: 100 %
30 min ago: 100 %
31 min ago: 100 %
32 min ago: 100 %
33 min ago: 100 %
34 min ago: 100 %
35 min ago: 100 %
36 min ago: 100 %
37 min ago: 100 %
38 min ago: 100 %
39 min ago: 0 %
40 min ago: 0 %
41 min ago: 0 %
42 min ago: 100 %
43 min ago: 100 %
44 min ago: 100 %
45 min ago: 100 %
46 min ago: 100 %
47 min ago: 100 %
48 min ago: 100 %
49 min ago: 100 %
50 min ago: 100 %
51 min ago: 100 %
52 min ago: 100 %
53 min ago: 100 %
54 min ago: 100 %
55 min ago: 100 %
56 min ago: 100 %
57 min ago: 100 %
58 min ago: 100 %
59 min ago: 100 %
60 min ago: 100 %
61 min ago: 100 %
62 min ago: 100 %
63 min ago: 100 %
64 min ago: 100 %
65 min ago: 100 %
66 min ago: 100 %
67 min ago: 100 %
68 min ago: 100 %
69 min ago: 100 %
70 min ago: 100 %
71 min ago: 100 %
72 min ago: 100 %
73 min ago: 100 %
74 min ago: 100 %
75 min ago: 100 %
76 min ago: 100 %
77 min ago: 100 %
78 min ago: 100 %
79 min ago: 100 %
80 min ago: 100 %
81 min ago: 100 %
82 min ago: 100 %
83 min ago: 100 %
84 min ago: 100 %
85 min ago: 100 %
86 min ago: 100 %
87 min ago: 100 %
88 min ago: 100 %
89 min ago: 100 %
90 min ago: 100 %

Beyond load, the agent reads installed packages and runtimes and, through the platform, compares them daily with known vulnerabilities, lists scheduled jobs and can send server logs if you want it to. More under Features and in the public security advisories.

To be honest

What inping is not the right tool for

So that you do not find out only after installing it.

  • No ping, port or SNMP checks. Uptime is measured over HTTP(S). For network devices without their own agent, see what we describe in Monitor UniFi and Monitor a Synology NAS.
  • No promised availability: inping currently offers no SLA, and the terms of use exclude any guarantee.
  • No legal guarantee. What stays with you on data protection is explained under GDPR server monitoring.

Frequently asked

Questions about server monitoring

What is the easiest way to monitor a server?

Combine an external HTTP check of your most important URLs with an agent on the server, and decide who is notified about which event. With inping that takes an account, a project with URLs and one install command.

Which thresholds make sense for server monitoring?

As starting values, inping sets these on every new server: CPU above 90% for 5 minutes, memory above 90% for 5 minutes, any disk above 90% and any service that is not running. They are starting values, not a standard: after a week of operation you can see what is normal for you and adjust the rules.

Can I monitor a server for free?

Yes. The Free plan of inping costs nothing and needs no payment details: 1 project, 2 agents, 1 own runner and 10 URLs per project, with a check interval from 60 seconds.

How often should a server be measured?

For most servers one measurement per minute is enough, which is the default of the inping agent. You can set anything from 10 seconds to one hour. Raw values stay for 7 days, hourly averages, minimums and maximums for 365 days.

Is a monitoring agent a security risk?

Any additional software is attack surface, so the way it is built matters. The inping agent runs under its own user, writes only to its state directory, opens no port and makes outbound HTTPS connections only. Updates are signed and verified before they are installed.

What happens when the server cannot reach the platform?

The agent keeps measuring, buffers the data for up to 24 hours by default (64 MB at most) and sends it as soon as the connection is back. The platform discards duplicates.

Can inping monitor ping, ports or SNMP?

No. The uptime checks of inping are HTTP(S) requests, and server values come from the agent. inping does not offer ping, plain port checks or SNMP. For pure network devices, a tool with SNMP is the better choice.

Which systems does the agent run on?

On Linux, macOS, Windows and FreeBSD (amd64 and arm64), and as a Docker image in a Compose file. On Linux and macOS it can also be installed without root, in your own user account.

Your first server is connected in minutes

Free and without payment details. The plans are listed under Pricing.