tutorial

Overseerr Monitoring with Vigilmon: Uptime, Plex Health & Request Pipeline Checks

Monitor your Overseerr media request manager with Vigilmon — track web UI availability, the status API, Plex server connectivity, Radarr/Sonarr/Lidarr integration health, and heartbeats for request processing.

Overseerr is the request hub for your Plex media server. Your users submit movie and TV requests through it; Radarr, Sonarr, and Lidarr pick them up and start downloading. When Overseerr goes down — or worse, stays up but silently loses its Plex connection — requests vanish into the void and no one knows until someone complains in your Discord.

Vigilmon gives Overseerr the external monitoring layer it doesn't have built in: continuous health checks, media server connectivity assertions, integration health, and heartbeat monitoring to confirm your request processing pipeline is actually working end-to-end.

This tutorial covers everything you need to keep Overseerr monitored in production.

What You'll Build

  • An HTTP monitor on Overseerr's /api/v1/status health endpoint
  • A Plex connectivity assertion monitor
  • Radarr, Sonarr, and Lidarr integration health monitors
  • A heartbeat monitor to confirm request processing is running
  • SSL certificate monitoring for proxied deployments

Prerequisites


Step 1: Monitor the Status API

Overseerr exposes a health endpoint at /api/v1/status. No API key is required — it's publicly accessible and returns application metadata including Plex server connectivity.

Test it:

curl http://localhost:5055/api/v1/status

Expected response:

{
  "version": "1.33.2",
  "commitTag": "HEAD",
  "updateAvailable": false,
  "commitsBehind": 0,
  "restartRequired": false,
  "mediaServerOnline": true
}

The mediaServerOnline field is the key signal: false means Overseerr can't reach Plex. Requests will still be accepted but won't sync.

Set up the Vigilmon monitor:

  1. Log in to Vigilmon and click New Monitor → HTTP.
  2. Set URL to https://overseerr.yourdomain.com/api/v1/status.
  3. Set Check interval to 60 seconds.
  4. Set Expected status code to 200.
  5. Under Advanced → JSON body assertion, add two assertions:
    • Path: version | Operator: exists
    • Path: mediaServerOnline | Operator: equals | Value: true
  6. Save the monitor.

Now Vigilmon alerts you when Overseerr is down and when it loses its Plex connection.


Step 2: Monitor the Web UI

The API can return 200 while the React frontend fails to load. A corrupted build, bad reverse proxy config, or missing static file will leave the API healthy while users see a blank screen.

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://overseerr.yourdomain.com/.
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check:
    • Keyword present: Overseerr
  5. Set Check interval to 60 seconds.
  6. Save.

If the UI loads correctly, the HTML contains "Overseerr" in the title or body. A broken build or 502 from the proxy will fail this check.


Step 3: Monitor Plex Server Connectivity

Overseerr connects to Plex to sync libraries and mark requests as available. If the Plex server goes offline, Overseerr can't confirm that downloaded content is ready to watch.

You can monitor Plex directly with Vigilmon alongside the mediaServerOnline assertion:

  1. Click New Monitor → HTTP.
  2. Set URL to https://plex.yourdomain.com/identity (or http://your-server-ip:32400/identity).
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check:
    • Keyword present: MediaContainer
  5. Save.

The /identity endpoint on Plex returns XML and doesn't require authentication. It confirms the Plex Media Server process is alive and responding.


Step 4: Monitor Radarr, Sonarr, and Lidarr

Overseerr forwards movie requests to Radarr, TV requests to Sonarr, and music requests to Lidarr. When any of these services go offline, Overseerr queues incoming requests indefinitely with no visible error to users.

Radarr monitor:

  1. Click New Monitor → HTTP.
  2. Set URL to http://your-server-ip:7878/api/v3/system/status?apiKey=<radarr-api-key>.
  3. Set Expected status code to 200.
  4. Under Advanced → JSON body assertion:
    • Path: appName | Operator: equals | Value: Radarr
  5. Save.

Sonarr monitor: Same setup on port 8989, asserting appName equals Sonarr.

Lidarr monitor: Same setup on port 8686, asserting appName equals Lidarr.

Get your API keys from each application under Settings → General → Security.


Step 5: Heartbeat Monitor for Request Processing

A heartbeat monitor is a push-based check: your system pings Vigilmon on a schedule to prove it's alive. If Vigilmon doesn't receive a ping within the expected window, it fires an alert.

This is useful for confirming that Overseerr's background job loop is running — the process that checks Radarr/Sonarr for completed downloads and marks requests as available.

Set up the heartbeat:

  1. In Vigilmon, click New Monitor → Heartbeat.
  2. Set Name to Overseerr Request Processor.
  3. Set Expected interval to 5 minutes.
  4. Set Grace period to 2 minutes.
  5. Copy the generated heartbeat URL (e.g., https://vigilmon.online/ping/abc123).
  6. Save.

Then add a cron job or scheduled script on your Overseerr host that pings the URL every 5 minutes:

*/5 * * * * curl -s https://vigilmon.online/ping/abc123 > /dev/null

If Overseerr's host crashes, Docker stops the container, or the cron daemon fails, Vigilmon stops receiving pings and sends an alert within 7 minutes.


Step 6: SSL Certificate Monitoring

For HTTPS deployments behind Nginx, Caddy, or Traefik:

  1. Open any of your HTTPS Vigilmon monitors.
  2. Go to Advanced → SSL / TLS.
  3. Enable Check SSL certificate.
  4. Set Warn when expires in to 14 days.
  5. Save.

Vigilmon will alert you two weeks before expiry and immediately when a certificate becomes invalid.


Step 7: Alert Channels

Go to Notifications → New Channel and set up:

  • Email — for your Overseerr admin
  • Webhook — for Discord or Slack notifications in your media server community channel

Example Discord alert when Plex goes offline:

🔴 DEGRADED: overseerr.yourdomain.com
JSON assertion failed: mediaServerOnline = false
Region: EU-West
Triggered: 2026-03-05 14:08 UTC

What You've Built

| Scenario | How Vigilmon catches it | |---|---| | Overseerr process crash | HTTP monitor detects connection refused or 502 | | Plex server offline | mediaServerOnline JSON assertion fails | | Plex direct health check | /identity monitor detects Plex process down | | Radarr/Sonarr/Lidarr unreachable | Direct integration health monitors fire | | Request processor stalled | Heartbeat monitor misses expected ping | | Web UI broken | Keyword monitor misses "Overseerr" in HTML | | SSL certificate expired | TLS check on HTTPS monitor fires |


Overseerr is the front door to your self-hosted media stack. Vigilmon makes sure that door is always open — and that the entire pipeline behind it is working.

Start monitoring Overseerr today — register free at vigilmon.online.

Monitor your app with Vigilmon

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

Start free →