Sonarr is a self-hosted PVR and TV show download manager. It automatically monitors RSS feeds for new episodes, downloads them via your configured download clients, and organises them into your media library. When Sonarr goes down, new episodes stop being grabbed, download queues stall, and your media server serves a library that falls further behind with every missed check.
This tutorial covers production-grade uptime monitoring for Sonarr using Vigilmon. We will walk through:
- Monitoring Sonarr web UI availability
- Monitoring the
/api/v3/system/statushealth check endpoint - Monitoring download client connectivity
- SSL certificate alerts for your Sonarr instance
- Disk space monitoring via response content checks
Prerequisites
- Sonarr v3 or v4 running on Linux, Windows, Docker, or a NAS
- A Sonarr API key (found in Settings → General → Security)
- A free account at vigilmon.online
Part 1: Monitor Sonarr web UI availability
The simplest check is that the Sonarr web interface loads and returns HTTP 200. This confirms the application process is running and the web server is accepting connections.
Test manually
curl -I http://sonarr.example.com:8989
# Or if behind a reverse proxy with TLS:
curl -I https://sonarr.example.com
Expected: HTTP/1.1 200 OK
Add a Vigilmon HTTP monitor
- Log in to vigilmon.online and click Add Monitor.
- Choose HTTP(S) monitor.
- Enter your Sonarr URL:
https://sonarr.example.com(orhttp://your-server-ip:8989). - Set interval to 2 minutes.
- Add a keyword check: must contain
Sonarr. - Add your alert channel.
- Click Save.
The keyword check confirms the Sonarr application served the page — not a default nginx page left behind if Sonarr crashes and the reverse proxy serves an error page with HTTP 200.
Part 2: Monitor the system/status API endpoint
Sonarr exposes a /api/v3/system/status endpoint that returns detailed health information including version, OS, branch, and whether the application is healthy. This is more reliable than checking the web UI because it bypasses the frontend rendering layer and hits the API directly.
Test the status endpoint
curl -H "X-Api-Key: YOUR_API_KEY" https://sonarr.example.com/api/v3/system/status
Expected response:
{
"appName": "Sonarr",
"instanceName": "Sonarr",
"version": "4.0.9.2244",
"buildTime": "2026-01-15T00:00:00Z",
"isDebug": false,
"isProduction": true,
"isAdmin": false,
"isUserInteractive": false,
"startupPath": "/app/sonarr/bin",
"appData": "/config",
"osName": "ubuntu",
"branch": "main",
"authentication": "forms",
"sqliteVersion": "3.45.1",
"urlBase": "",
"runtimeVersion": "6.0.26",
"migrationVersion": 220
}
Add a Vigilmon HTTP monitor for the API
- Click Add Monitor → HTTP(S) monitor.
- Enter:
https://sonarr.example.com/api/v3/system/status - Set interval to 1 minute.
- Under Custom headers, add:
- Header name:
X-Api-Key - Header value: your Sonarr API key
- Header name:
- Add a keyword check: must contain
Sonarr. - Name the monitor
Sonarr API Status. - Click Save.
This monitor catches issues where the Sonarr process is running but the API layer is broken — a state that would appear healthy to a simple UI check.
Part 3: Monitor download client connectivity
Sonarr depends on download clients (qBittorrent, SABnzbd, NZBGet, Transmission, etc.) to actually fetch episodes. If the download client is unreachable, Sonarr queues episodes but never grabs them — often for hours before anyone notices.
Sonarr's health check API surfaces download client connection issues:
curl -H "X-Api-Key: YOUR_API_KEY" https://sonarr.example.com/api/v3/health
This returns an array of health issues:
[
{
"source": "DownloadClientCheck",
"type": "warning",
"message": "Unable to communicate with download client qBittorrent.",
"wikiUrl": "https://wiki.servarr.com/sonarr/system#download-clients"
}
]
Add a health check monitor
- Click Add Monitor → HTTP(S) monitor.
- Enter:
https://sonarr.example.com/api/v3/health - Set interval to 5 minutes.
- Under Custom headers, add
X-Api-Key: YOUR_API_KEY. - Add a keyword check: must NOT contain
DownloadClientCheck(use an inverse/negative keyword check if your plan supports it, or monitor for an empty array[]). - Name the monitor
Sonarr Download Client Health. - Click Save.
Alternatively, add a separate Vigilmon HTTP monitor pointing directly at your download client's web UI, so you get an alert the moment the download client itself goes down.
Part 4: SSL certificate monitoring
If you expose Sonarr through a reverse proxy with TLS (NGINX, Caddy, Traefik), an expired or misconfigured certificate means Sonarr becomes unreachable. Clients trying to connect over HTTPS fail immediately.
- In Vigilmon, click Add Monitor.
- Choose SSL monitor.
- Enter
sonarr.example.com. - Set alert threshold to 14 days before expiry.
- Add your alert channel.
- Click Save.
Add an SSL monitor for every domain or subdomain that fronts your Sonarr instance.
Part 5: Disk space monitoring via response content
Sonarr needs free disk space to download episodes. When a drive fills up, downloads fail and episodes queue up silently. The system/status API includes disk space data through a separate endpoint:
curl -H "X-Api-Key: YOUR_API_KEY" https://sonarr.example.com/api/v3/diskspace
Response:
[
{
"path": "/downloads",
"label": "Downloads",
"freeSpace": 107374182400,
"totalSpace": 2000398934016
},
{
"path": "/tv",
"label": "TV Shows",
"freeSpace": 536870912000,
"totalSpace": 4000797868032
}
]
While Vigilmon's HTTP monitors check availability rather than numeric thresholds, you can use keyword checks to confirm the disk space endpoint responds. For precise disk space alerting, pipe the Sonarr API response to a lightweight monitoring script that fires a Vigilmon heartbeat only when free space is above your threshold:
#!/bin/bash
# Run via cron every 15 minutes
FREE_GB=$(curl -s -H "X-Api-Key: YOUR_KEY" \
https://sonarr.example.com/api/v3/diskspace \
| jq '.[0].freeSpace / 1073741824')
if (( $(echo "$FREE_GB > 50" | bc -l) )); then
curl -X POST https://vigilmon.online/api/v1/heartbeats/YOUR_HEARTBEAT_ID
fi
If the heartbeat is not received within 20 minutes, Vigilmon alerts you — indicating either Sonarr is down or disk space dropped below 50 GB.
Summary
Your Sonarr deployment now has four monitoring layers:
- Web UI check — confirms Sonarr is running and serving the interface, polled every 2 minutes.
- API status check (
/api/v3/system/status) — confirms the Sonarr API is healthy, polled every minute. - Download client health — surfaces connectivity issues with qBittorrent, SABnzbd, and other clients before episodes stop downloading.
- SSL certificate alert — warns 14 days before your Sonarr domain certificate expires.
Vigilmon handles check scheduling, multi-region polling, alert routing, and uptime history. You know within minutes when Sonarr goes down — not after an entire season's worth of episodes go undownloaded.
Monitor your Sonarr instance free at vigilmon.online
#sonarr #selfhosted #monitoring #homelab #devops