If you want to know whether your services are up and whether your servers are healthy, you can do it with open-source tools you host yourself. Start with an uptime checker such as Uptime Kuma or Kuvasz to test endpoints from outside, add a lightweight metrics agent such as Beszel or Glances for CPU, memory, disk and container stats, and grow into alerting and status pages as your fleet grows.

Step 1: Define what you need to watch

Before installing anything, write down three things:

  • Which public endpoints must answer (website, API, login page).
  • Which hosts must stay healthy (CPU, memory, disk, network).
  • Who must be told when something breaks, and through which channel.

This list decides which category of tool you need. Uptime checks answer "is it reachable?" Resource monitoring answers "is the machine under stress?" Alerting answers "who gets woken up?"

Step 2: Set up uptime checks on a single VPS

For one server, a self-hosted uptime monitor is enough. Uptime Kuma is a self-hosted monitoring tool in the self-hosted web apps category, licensed under MIT, with a large community. Run it in a container on a machine other than the one you are watching, because a monitor on the same host goes silent when that host fails.

For each endpoint:

  1. Add an HTTP(s) monitor with the full URL.
  2. Set a check interval you can live with, for example one minute.
  3. Set the expected status code.
  4. Attach at least one notification channel.

If you also need to watch SSL certificate expiry, Kuvasz is an open-source uptime and SSL monitoring service, licensed under AGPL-3.0, which also supports status pages, YAML-based configuration and a REST API.

Step 3: Add server metrics

Uptime checks do not show why a service slowed down. Add a metrics agent on each host.

Lightweight agent for homelabs and small servers

Beszel is a lightweight, self-hosted server monitoring tool, licensed under MIT, with historical metrics, Docker container stats and configurable alerts. A typical setup has a hub and an agent on each host. Install the agent on every server, register it with the hub, and set alert thresholds for CPU, memory and disk.

Interactive inspection on the command line

Glances is an open-source cross-platform system monitoring CLI tool, a top/htop alternative. It also offers a web UI and a REST API, and covers CPU, memory, disk, network and containers. Run it directly on a host when you need to investigate a live problem, or query its REST API from scripts.

Step 4: Scale to a small fleet

When you have several servers, move from per-host checks to a central view:

  • Run one hub or dashboard that collects metrics from all agents.
  • Keep uptime checks running from a location outside your network.
  • Tag hosts by role (web, database, worker) so alerts can be filtered.
  • Store historical data long enough to compare this week with last week.

Beszel's hub-and-agent model fits this step. Uptime Kuma can monitor many endpoints from one instance, and its status pages let you share the results.

Step 5: Add alerting that reaches people

Alerts only help when they arrive. Nightingale is open-source, self-hosted alerting for metrics, logs and databases, licensed under Apache-2.0. It is listed in the MCP servers category because it includes a built-in AI agent and an MCP server. Use it when you need alert rules across several data sources rather than per-host thresholds.

Whatever tool you choose, test each alert once: stop a test service, confirm the notification arrives, then restore it.

Step 6: Investigate performance problems

When a host is healthy but a service is slow, metrics alone may not show the cause. Pyroscope is a continuous profiling platform, licensed under AGPL-3.0, from Grafana, for finding performance issues down to a single line of code. It belongs to the developer tools category and suits teams running application code they can instrument.

Step 7: Consider a broader situational view

For infrastructure tracking across many external sources, worldmonitor is a real-time global intelligence dashboard in the MCP servers category, licensed under AGPL-3.0, with news aggregation and infrastructure tracking. It is a different kind of tool from host monitoring, so treat it as a complement rather than a replacement.

Recommendation

For a single VPS, run Uptime Kuma on a separate machine for endpoint checks and Beszel or Glances for host metrics. For a small fleet, keep the same checks, centralize metrics in one hub, and add Nightingale when you need alert rules across several sources. Browse more options in the Observability category and the open-source publishers directory.