tutorial

Monitoring Statping-NG with Vigilmon

Statping-NG is a self-hosted status page and uptime monitor — but who monitors the monitor? Here's how to watch Statping-NG's web UI, health endpoint, and API with Vigilmon, plus SSL and heartbeat alerts.

Statping-NG is a popular open-source status page and uptime monitoring tool written in Go, designed for Docker-friendly deployments with SQLite or PostgreSQL backends. It lets you publish a public status page showing the health of your services — but if Statping-NG itself goes down, your users see nothing and you hear nothing. Vigilmon adds the external observability layer that Statping-NG lacks: probing its own web UI, health endpoint, and REST API from outside your network, so the monitor always has a monitor.

What You'll Set Up

  • HTTP uptime monitor for the Statping-NG web dashboard (port 8080)
  • Health check monitor for the /health JSON endpoint
  • API availability monitor for the /api/services REST endpoint
  • SSL certificate alerts for HTTPS-proxied Statping-NG setups
  • Cron heartbeat for Statping-NG's own health check service (meta-monitoring)

Prerequisites

  • Statping-NG 0.90+ running on a server or in Docker (default port 8080)
  • A reverse proxy (nginx, Caddy, Traefik) if using HTTPS
  • A free Vigilmon account

Step 1: Monitor the Statping-NG Web Dashboard

The Statping-NG web UI serves both the admin interface and the public status page on port 8080 by default. This is the primary endpoint to monitor:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Statping-NG URL:
    • Direct: http://your-server:8080
    • Proxied: https://status.yourdomain.com
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If your Statping-NG instance requires a login to view the status page, monitor the root URL anyway — a 302 redirect to the login page still confirms the application is responding.


Step 2: Monitor the /health Endpoint

Statping-NG exposes a built-in /health endpoint that returns a JSON object confirming the application and database connection are healthy:

{"database":"ok","version":"v0.90.78"}

Add a dedicated Vigilmon monitor for this endpoint:

  1. Click Add MonitorHTTP / HTTPS.
  2. Set the URL to https://status.yourdomain.com/health (or http://your-server:8080/health).
  3. Set Expected HTTP status to 200.
  4. Enable Keyword check and enter "database":"ok" as the required string.
  5. Set Check interval to 1 minute.
  6. Click Save.

The keyword check catches the case where the HTTP server responds but the database backend is unhealthy — a partial failure that a plain HTTP status check would miss.


Step 3: Monitor the /api/services REST Endpoint

Statping-NG's REST API at /api/services returns a JSON array of all configured services. Monitoring this endpoint verifies that the API layer is functional, not just the frontend:

  1. Click Add MonitorHTTP / HTTPS.
  2. Set the URL to https://status.yourdomain.com/api/services.
  3. Set Expected HTTP status to 200.
  4. Enable Keyword check and enter "id" as the required string (present in every service object).
  5. Set Check interval to 5 minutes.
  6. Click Save.

If your Statping-NG API requires authentication, pass a static API key via the Authorization header using Vigilmon's Custom headers field:

Authorization: Bearer YOUR_STATPING_API_KEY

Step 4: SSL Certificate Alerts for HTTPS-Proxied Setups

Most production Statping-NG deployments sit behind a reverse proxy that terminates TLS. If the certificate expires, your public status page goes dark with a browser SSL error — exactly when users are already worried about service health.

  1. Open the HTTPS monitor you created in Step 1.
  2. Scroll to the SSL certificate section.
  3. Enable Monitor SSL certificate.
  4. Set Alert when certificate expires in less than 21 days.
  5. Click Save.

For multi-domain setups where the proxy serves Statping-NG on a custom domain:

# Verify your certificate expiry manually
echo | openssl s_client -connect status.yourdomain.com:443 2>/dev/null \
  | openssl x509 -noout -dates

A 21-day window gives you enough time to investigate and fix renewal failures before the certificate expires and your status page becomes inaccessible.


Step 5: Heartbeat Monitoring for Statping-NG's Own Health Check Service

Statping-NG can be configured to run its own internal health checks against your services on a schedule. If the Statping-NG process crashes or hangs, those internal checks stop silently. Use Vigilmon's cron heartbeat to detect this — Statping-NG pings Vigilmon after each successful check cycle.

Create the heartbeat monitor:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the name to Statping-NG health cycle.
  3. Set Expected ping interval to 5 minutes (match your Statping-NG check frequency).
  4. Copy the heartbeat URL (e.g. https://vigilmon.online/heartbeat/abc123).

Configure Statping-NG to ping the heartbeat:

Add a new service in Statping-NG that points to your Vigilmon heartbeat URL:

  1. In Statping-NG admin, go to ServicesAdd Service.
  2. Set Type to HTTP.
  3. Set URL to https://vigilmon.online/heartbeat/abc123.
  4. Set Check interval to 5 minutes.
  5. Disable public status display for this service (it's internal).
  6. Save.

Now Statping-NG hits the heartbeat URL every 5 minutes as part of its normal check cycle. If Statping-NG goes down, the heartbeat stops, and Vigilmon alerts you. This creates a mutual monitoring relationship: Vigilmon watches Statping-NG from outside, and Statping-NG confirms its own health cycle is running by pinging Vigilmon.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, PagerDuty, or a webhook.
  2. Set Consecutive failures before alert to 2 on the web UI monitor — a single missed probe due to a brief network blip is not an incident.
  3. Set Consecutive failures before alert to 1 on the /health endpoint monitor — a failed health check is always worth an immediate alert.

Group the three Statping-NG monitors together in a Vigilmon project so you get a unified status view.


Summary

| Monitor | Target | What It Catches | |---|---|---| | Web dashboard | https://status.yourdomain.com | Process crash, port down | | Health endpoint | /health with keyword check | Database disconnection | | REST API | /api/services | API layer failure | | SSL certificate | HTTPS domain | Certificate expiry | | Cron heartbeat | Vigilmon heartbeat URL | Check cycle stopped |

Statping-NG is excellent at monitoring your other services — but the monitor itself needs a monitor. With Vigilmon probing the web UI, health endpoint, and API from outside your network, and a cron heartbeat confirming Statping-NG's own check cycle is running, you get true end-to-end observability for your status page infrastructure.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →