Self-hosted monitoring tools answer three different questions: is it up, did the job run, and what is this box doing right now. Start there, because the tools overlap far less than they look like they do. Uptime Kuma, Gatus and Checkmate actively probe endpoints over HTTP, TCP, ping and DNS from wherever you run them. Healthchecks does the opposite — it waits for your cron jobs and backups to ping it and alerts when one goes quiet, which is the only way you find out a nightly backup stopped running weeks ago. Beszel and Glances watch machines instead of endpoints: Beszel collects CPU, memory, disk and container stats from a small agent per host, while Glances is a terminal view of the single box it runs on. The second axis is how much you are agreeing to operate. Gatus is one Go binary and a YAML file; Uptime Kuma is one container; Checkmate wants MongoDB beside it; Zabbix is a server, a database, a PHP frontend and an agent on every host, and only repays that at real scale. And if what you actually want is the full metrics, logs and traces stack — Grafana, Prometheus, SigNoz — that is observability, and it has its own hub.