All articles

Uptime Monitoring with Uptime Kuma: A Practical Guide

Learn how to set up Uptime Kuma for reliable uptime monitoring. This guide covers deployment, monitor types, retries, notifications, status pages, and practical maintenance.

Infrastructure Monitoring|Published |8 min read
A monitoring dashboard showing service availability status

Uptime Kuma is a lightweight tool for monitoring whether websites, APIs, and other services are reachable and responding as expected. It is quick to deploy, but the deployment location matters. If Uptime Kuma runs on the same infrastructure as the service it monitors, a server or network failure can take both the application and the monitoring system offline. A better setup places the monitor outside the environment it is checking.

What Uptime Kuma Does and What It Does Not Replace

Uptime Kuma is designed to check service availability from an external point of view. It can monitor endpoints on a schedule, record response time and uptime, send notifications when checks fail, and provide a status page. Because it is self-hosted and relatively lightweight, it can be practical for small development and operations teams.

Uptime Kuma is not a replacement for infrastructure monitoring. It does not provide the same server-level visibility into CPU, memory, disk, or long-term capacity metrics. A practical approach is to use a platform such as Zabbix for infrastructure and resource monitoring, while Uptime Kuma checks availability from outside the service and handles related notifications and status communication.

Run Uptime Kuma Outside the System It Monitors

The location of the monitoring instance is important. If Uptime Kuma shares the same server, hypervisor, network path, or cloud region as the application, it can be affected by the same failure. When the monitored environment becomes unavailable, the monitoring dashboard and notification path may become unavailable at the same time.

For public services, a small Uptime Kuma instance at another provider or in another region is usually sufficient. Internal services that cannot be reached from the public internet may need a second monitoring instance inside the network. In that case, keep an external monitor for the services that customers rely on whenever possible.

A monitoring system should remain available when the application it monitors becomes unavailable.

Choose the Uptime Kuma Monitor Type for Each Service

Uptime Kuma supports several monitor types, and the right choice depends on how a service can fail. A basic HTTP check may not detect an application that returns an error page with an HTTP 200 status code, so some services need a keyword, JSON, TCP, DNS, or push check instead.

Monitor typeUse it forNotes
HTTP(s)Public endpoints where the status code is meaningfulConfirm that the application actually returns an error status on failure before relying on this alone
HTTP(s) KeywordPages and APIs that can fail while still returning 200Match a string that only appears when the page rendered correctly, not a word from the layout
HTTP(s) Json QueryHealth endpoints that return a status field in JSONUseful when the endpoint reports degraded dependencies rather than a simple up or down
TCP PortServices without HTTP such as mail, database, or message brokersConfirms the port accepts connections, which is weaker evidence than a protocol-level check
PingBasic network reachabilityICMP is often filtered or deprioritised, so treat it as supporting evidence rather than proof
DNSResolution and record correctnessCatches registrar, propagation, and provider problems that an endpoint check reports only as a generic failure
PushCron jobs, backups, and scheduled processesThe job calls a URL on success, and the alert fires when the expected heartbeat does not arrive

Push monitors are useful for scheduled jobs that do not expose an endpoint to check. A backup job, for example, can send a heartbeat after a successful run. If the expected heartbeat does not arrive, Uptime Kuma can report the failure. HTTP monitors can also check TLS certificate expiry and provide advance notification.

Configure Retries and Notifications for Reliable Alerts

A single failed request does not always mean that a service is down. Temporary network errors can produce an isolated failed check, so sending an alert after the first failure can create unnecessary noise. Configure retries and a suitable retry interval so Uptime Kuma confirms repeated failures before treating them as an incident.

  • Set the check interval according to how quickly a failure needs to be known. Sixty seconds is a reasonable default, and shorter intervals mainly increase load without improving the response that follows.
  • Use retries with a shorter retry interval so a genuine outage is still confirmed within a minute or two while single dropped requests are ignored.
  • Configure the resend option so an unresolved incident notifies again periodically, which prevents a single missed message from becoming an unnoticed outage.
  • Attach at least two notification channels to critical monitors, because a broken integration or a rate-limited bot token otherwise results in complete silence.
  • Schedule maintenance windows before planned work so expected downtime does not page anyone or appear as an incident on the status page.
  • Route by importance rather than sending every monitor to the same channel, so the notifications that require immediate action are not buried among informational ones.

Use the Uptime Kuma Status Page for Service Communication

Uptime Kuma can also provide a status page that gives users a clear view of service availability. During an incident, this can reduce repeated requests for updates by showing which services are affected and whether the issue is being investigated or resolved.

The status page should be hosted independently from the infrastructure it reports on. Service names should also use terms that users understand instead of internal hostnames. For example, a customer should see a service such as 'Payment Service' rather than an internal name such as 'api-gateway-02'.

Uptime Kuma Operational and Maintenance Considerations

  • The application stores its configuration and history in a data directory, so that directory must be a persistent volume and must be included in backups. Recreating the container without it means rebuilding every monitor by hand.
  • Place the interface behind a reverse proxy with TLS and restrict administrative access, then enable two-factor authentication. The instance holds notification tokens and knows the layout of the environment.
  • Keep the version current. Updates are straightforward for a single-container deployment, and monitoring software that has not been updated in a year is an unnecessary risk on an internet-facing host.
  • Watch the combination of monitor count and check frequency rather than either number alone. Several hundred monitors at short intervals on a minimal instance will produce delayed checks that look like false alarms.
  • Review the monitor list quarterly. Decommissioned services that still have monitors create recurring alerts, and services added since the last review are usually the ones nobody is watching.

How to Set Up Uptime Kuma in Practice

  1. 1List the services that matter to users and the person responsible for each one, before creating any monitor. A check without an owner produces notifications that nobody is accountable for resolving.
  2. 2Deploy the instance outside the environment it will watch, with persistent storage, TLS, and restricted administrative access from the start rather than as a later hardening step.
  3. 3Create monitors for the most important user-facing flows first, using keyword or JSON checks where a status code alone would not detect a failure.
  4. 4Add push monitors for backups and scheduled jobs, since silent failures in these areas are usually discovered at the worst possible moment.
  5. 5Configure retries, resend behaviour, and at least two notification channels, then verify the alerting path by deliberately failing a test monitor rather than assuming it works.
  6. 6Publish a status page with service names the audience understands, and agree who updates the incident message during an outage.

What a Good Uptime Kuma Setup Looks Like

A well-configured Uptime Kuma deployment produces notifications that correspond to issues requiring attention. The monitoring instance remains independent from the systems it checks, planned maintenance is handled without unnecessary alerts, and the status page provides a simple source of service information. Over time, uptime data can also support service reviews and operational reporting.

Uptime Kuma is focused on availability rather than root-cause analysis. Its role is to provide a reliable indication that a monitored service has stopped responding or no longer meets the configured check, together with notifications through the channels the team uses.

Key takeaways

  • Deploy the monitor outside the infrastructure it watches. A monitoring instance that fails with the application reports nothing.
  • Match the monitor type to the failure mode. Keyword and JSON checks catch applications that fail while still returning a 200 status code.
  • Use push monitors as a heartbeat for backups and scheduled jobs, where silent failure is the normal failure mode.
  • Configure retries, resend behaviour, and a second notification channel, then test the alert path deliberately instead of assuming it works.

Related articles

More articles on software development, AI, cloud, and infrastructure.

PHP application code open in an editor during development
Backend Development|

PHP and Laravel in Production: Performance, Queues, and Deployment

Practical guidance for running PHP and Laravel in production, covering PHP-FPM and OPcache, database queries, queues, caching, deployment, and production security.

Server racks in a data centre under continuous monitoring
Infrastructure Monitoring|

Server Monitoring with Zabbix: A Practical Implementation Guide

Setting up Zabbix is only the first step. A monitoring system becomes useful when alerts are relevant, infrastructure is properly covered, and the team knows how to respond. This guide covers Zabbix architecture, server monitoring, trigger design, alerting, and an implementation approach that can scale with your infrastructure.

Looking for a software development partner?

Tell us about your project, what you need to build, and the challenges you are facing. We can discuss the technical approach, scope, timeline, and estimated cost.

Start a conversation