Scrutiny monitors your hard drives so you can catch failures before data loss. But if Scrutiny itself goes offline — or if its S.M.A.R.T. collector stops running — you lose that safety net without knowing it. The tool watching your hardware needs to be watched too.
Vigilmon provides the external uptime monitoring that keeps Scrutiny accountable — watching the web UI, API health, scheduled collector jobs, and SSL certificate. This tutorial walks you through complete Scrutiny monitoring with Vigilmon.
What You'll Build
- A Vigilmon HTTP monitor on Scrutiny's API health endpoint
- A web UI availability monitor with keyword verification
- A cron heartbeat monitor to verify the S.M.A.R.T. collector runs on schedule
- SSL certificate expiry alerts
- Alert channels for immediate notification
Prerequisites
- A running Scrutiny instance (hub + collector, typically on port 8080)
- A free account at vigilmon.online
Step 1: Monitor the API Health Endpoint
Scrutiny exposes an API health endpoint at /api/health. It returns {"success":true} when the server is operational and the database is accessible.
Test it from your terminal:
curl https://scrutiny.yourdomain.com/api/health
Expected response:
{"success": true}
This endpoint confirms that the Scrutiny hub process is running and the InfluxDB or SQLite database is reachable. If the database becomes corrupted or the Scrutiny process crashes, this endpoint returns a non-200 response or fails to connect.
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://scrutiny.yourdomain.com/api/health. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → Keyword check, add:
- Keyword present:
"success":true
- Keyword present:
- Save the monitor.
Vigilmon now polls your Scrutiny API every minute from multiple geographic regions.
Step 2: Monitor Web UI Availability
The /api/health endpoint confirms the backend hub is alive, but doesn't verify the Scrutiny dashboard renders correctly in a browser. A broken React bundle, a misconfigured reverse proxy stripping headers, or missing static assets can leave the API healthy while the dashboard shows a blank screen.
Add a keyword monitor on the web UI:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://scrutiny.yourdomain.com/(your Scrutiny dashboard root). - Set Expected status code to
200. - Under Advanced → Keyword check, configure:
- Keyword present:
Scrutiny
- Keyword present:
- Save.
The Scrutiny web interface includes the application name in its HTML. If the frontend assets fail to serve, this check catches the failure independently of the API monitor — distinguishing backend failures from frontend delivery issues.
Step 3: Monitor the S.M.A.R.T. Collector with Heartbeat Monitoring
The Scrutiny collector is the most critical component — it runs on each machine hosting drives and sends S.M.A.R.T. data to the hub on a scheduled basis. If the collector's cron job stops running (due to a failed service, a broken cron schedule, or a host reboot that didn't restore the collector), your drive health data goes stale without any alarm.
Vigilmon's cron heartbeat monitor catches this: if the collector doesn't phone home within the expected interval, Vigilmon alerts you.
Set up the heartbeat in Vigilmon:
- In Vigilmon, click New Monitor → Cron Heartbeat.
- Set Name to
Scrutiny Collector - hostname(repeat per host). - Set Expected interval to
1440minutes (24 hours) — or match your collector schedule if different. - Set Grace period to
60minutes (allows for minor schedule drift). - Copy the Ping URL provided (e.g.
https://vigilmon.online/heartbeat/abc123). - Save the monitor.
Wire the ping into your Scrutiny collector run:
If you run the Scrutiny collector as a systemd service, add a ping to the service's ExecStartPost:
# /etc/systemd/system/scrutiny-collector.service
[Service]
ExecStart=/usr/local/bin/scrutiny-collector-metrics run
ExecStartPost=/usr/bin/curl -sf https://vigilmon.online/heartbeat/abc123
If you run the collector via cron:
# /etc/cron.d/scrutiny-collector
0 */6 * * * root /usr/local/bin/scrutiny-collector-metrics run && curl -sf https://vigilmon.online/heartbeat/abc123
If you run Scrutiny via Docker Compose with the all-in-one image:
services:
scrutiny:
image: ghcr.io/analogj/scrutiny:master-omnibus
volumes:
- /run/udev:/run/udev:ro
devices:
- /dev/sda:/dev/sda
environment:
SCRUTINY_API_ENDPOINT: http://localhost:8080
# Add a post-collect ping to the healthcheck
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:8080/api/health && curl -sf https://vigilmon.online/heartbeat/abc123"]
interval: 6h
timeout: 30s
Now if the collector stops sending data for more than 25 hours, Vigilmon alerts you — catching silent collector failures before your S.M.A.R.T. monitoring goes dark.
Step 4: SSL Certificate Monitoring
Scrutiny served over HTTPS via Nginx, Caddy, or Traefik: an expired TLS certificate locks you out of your drive health dashboard. For an instance that holds early-warning data about impending disk failures, this is a dangerous blind spot.
Vigilmon automatically monitors SSL certificate validity on HTTPS monitors. Configure dedicated expiry alerts:
- Open any of your HTTPS Scrutiny monitors in Vigilmon.
- Go to Settings → SSL.
- Enable Alert when certificate expires within 14 days.
- Optionally enable Alert when certificate expires within 30 days for early warning.
You'll receive alerts like:
⚠️ SSL Warning: scrutiny.yourdomain.com
Certificate expires in 10 days (2026-07-15)
Step 5: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure your preferred alert delivery:
- Email — immediate alerts to your inbox
- Webhook — forward to Discord, Slack, or ntfy.sh for push notifications on mobile
A Scrutiny downtime alert looks like:
🔴 DOWN: scrutiny.yourdomain.com/api/health (HTTP 502)
Scrutiny API health check failed
Region: EU-West
Triggered: 2026-01-15 04:17 UTC
A missed collector heartbeat alert looks like:
🔴 MISSED: Scrutiny Collector - nas01
No heartbeat received in 25 hours
Expected interval: 1440 minutes
What You've Built
| Scenario | How Vigilmon catches it |
|---|---|
| Scrutiny hub process crash or OOM kill | /api/health returns non-200 or connection refused |
| Database corruption or connectivity failure | API health check fails (DB required) |
| Reverse proxy misconfiguration | HTTPS monitor detects 502 or TLS error |
| Web dashboard assets broken or missing | Keyword monitor on homepage fails |
| S.M.A.R.T. collector stops running on schedule | Heartbeat monitor fires after grace period |
| SSL certificate expired or expiring | SSL expiry alert triggers at threshold |
Scrutiny is your early warning system for hard drive failures. Vigilmon makes sure that warning system never goes silent. Monitor from outside your network, from multiple regions, with no agents to install.
Start monitoring Scrutiny today — register free at vigilmon.online.