title: "Monitoring Duplicati with Vigilmon: Web UI Health, Backup Job Heartbeats, Remote API & SSL Certificate Alerts" published: false description: How to monitor Duplicati backup software with Vigilmon — web UI availability, backup job heartbeat monitoring, remote API health checks, and SSL certificate alerts. tags: duplicati, backup, monitoring, disaster-recovery, self-hosted cover_image:
Duplicati is the open-source backup solution that encrypts and deduplicates your data to cloud storage, FTP, SSH, and local targets. Production Duplicati deployments protect databases, file servers, and application data — but a failed backup is often silent: the backup process crashes halfway through, the target storage becomes unreachable, or the encryption key is missing, and you don't find out until you need to restore. Vigilmon gives you external visibility into Duplicati's availability: the web UI, remote API health, backup job heartbeats, and SSL certificate expiry on your Duplicati server.
What You'll Build
- A monitor on Duplicati's web UI to detect server-level failures
- Backup job heartbeat monitors to detect silent backup failures
- An HTTP monitor on Duplicati's remote API endpoint to confirm API access
- SSL certificate monitoring for your Duplicati web server domain
- An alerting setup that pages you when backups stop running
Prerequisites
- A running Duplicati instance with the web server enabled (default port 8200)
- Duplicati accessible externally (or via a reverse proxy) for monitoring
- At least one configured backup job running on a schedule
- A free account at vigilmon.online
Step 1: Understand Duplicati's Web Interface and API
Duplicati's built-in web server (enabled by default) serves both the management UI and a REST API. The server listens on port 8200 by default:
curl http://localhost:8200/
# Returns the Duplicati web UI HTML
# Query the server info API
curl http://duplicati.example.com:8200/api/v1/serverinfo
# Returns JSON with version, OS, machine name
If you expose Duplicati behind a reverse proxy (nginx, Caddy, Traefik), the external URL for monitoring will be different from the internal port.
The Duplicati API requires a passphrase for remote access. Set it with --webservice-password=yourpassword in the server startup arguments. For monitoring, use the unauthenticated ping endpoint:
curl http://duplicati.example.com:8200/alive
# Returns HTTP 200 when the server is alive (no auth required)
Step 2: Create a Vigilmon HTTP Monitor for the Web Server
- Log in to Vigilmon → Add Monitor → HTTP.
- URL:
https://duplicati.example.com/alive(orhttp://on port 8200 for internal monitoring). - Check interval: 60 seconds.
- Response timeout: 15 seconds.
- Expected status:
200. - Click Save.
This monitor catches:
- Duplicati process crashes or unexpected restarts
- System reboots that fail to restart the Duplicati service
- Out-of-memory kills when large backup jobs consume excessive RAM
- Network interface failures that take the web server offline
- Systemd service failures after package updates
Alert sensitivity: Set to trigger after 2 consecutive failures (to avoid alerts from brief Duplicati restarts during auto-updates).
Step 3: Set Up Backup Job Heartbeat Monitoring
The most important thing to monitor with any backup system is not the server health — it's whether backups are actually completing successfully. Duplicati does not natively push heartbeats, but you can configure it to call a Vigilmon heartbeat URL after each successful backup job.
Create a Heartbeat Monitor in Vigilmon
- Go to Add Monitor → Heartbeat.
- Name: "Duplicati Daily Backup" (or specific job name).
- Expected interval: match your backup schedule (e.g., 86400 seconds for daily backups, 3600 for hourly).
- Grace period: 3600 seconds (allow 1 hour late before alerting).
- Click Save — Vigilmon gives you a heartbeat ping URL.
Configure Duplicati to Ping After Each Backup
In Duplicati's job settings, navigate to Advanced options → Run Script After and add a script that calls the heartbeat URL after a successful backup:
Linux/macOS (run-after script):
#!/bin/bash
# Only ping on success (exit code 0 from Duplicati)
if [ "" = "Backup" ] && [ "" = "Success" ]; then
curl -fsS -m 10 --retry 3 "https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID" > /dev/null 2>&1
fi
Windows PowerShell (run-after script):
if ( -eq "Backup" -and -eq "Success") {
Invoke-WebRequest -Uri "https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID" -UseBasicParsing
}
Save the script and configure it in Duplicati's job advanced settings:
- Run script after job: path to the script above
- Script level: run on success only
When the backup completes successfully, it pings Vigilmon. If the ping doesn't arrive within the expected interval + grace period, Vigilmon alerts you — meaning the backup either failed, hung indefinitely, or never ran.
Step 4: Create Separate Heartbeats per Backup Job
For multiple backup jobs (databases, file shares, application data), create a separate heartbeat monitor for each:
| Backup Job | Heartbeat Interval | Grace Period | |------------|-------------------|--------------| | Daily full server backup | 24 hours | 2 hours | | Hourly database backup | 1 hour | 30 minutes | | Weekly offsite archive | 7 days | 12 hours |
Create each in Vigilmon → Add Monitor → Heartbeat and configure the corresponding run-after script in each Duplicati job with the matching heartbeat URL.
Step 5: Monitor the Duplicati Remote API
If you use Duplicati's REST API for automation (triggering backups, checking status from scripts), monitor API access separately from the web UI:
# With authentication (replace credentials with your actual password)
curl -H "Authorization: Basic <base64-encoded-credentials>" \
https://duplicati.example.com/api/v1/backups
- Add Monitor → HTTP.
- URL:
https://duplicati.example.com/api/v1/serverinfo. - Check interval: 300 seconds.
- Response timeout: 15 seconds.
- Expected status:
200. - Keyword:
"ServerVersion"(present in a healthy serverinfo response). - Click Save.
Note: if your API requires authentication, Vigilmon supports custom request headers — add Authorization: Basic <base64-credentials> in the monitor's advanced headers settings.
Step 6: Add SSL Certificate Monitoring
If Duplicati's web UI is exposed via HTTPS (recommended for any remote access), monitor the certificate:
- Add Monitor → SSL Certificate.
- Domain:
duplicati.example.com. - Alert threshold: 14 days before expiry.
- Click Save.
Certificate expiry on backup management UIs is disruptive because it blocks remote administration and may also affect the backup job scripts that verify TLS when pushing to HTTPS storage targets.
Step 7: Configure Alert Channels
Backup failures are high-severity but rarely need a 3am page. Configure tiered alerting:
- Go to Alerts → Channels → Add Channel.
- Email: route all backup heartbeat failures to the infrastructure team.
- Slack: send web server down alerts to
#infra-ops, heartbeat failures to#backup-alerts. - PagerDuty: page on-call only if 2+ consecutive backup jobs miss their heartbeat (suggesting systemic failure, not a one-off hiccup).
Recommended notification rules:
- Web server down → Slack immediately (1 failure)
- Heartbeat missed (backup didn't run) → email + Slack immediately
- Heartbeat missed 2x → PagerDuty page
- SSL certificate < 14 days → Slack (low urgency)
Step 8: Verify Your Backup Monitoring Setup
Test the heartbeat monitors by manually running the ping URL from your Duplicati server:
# Test the heartbeat URL directly
curl -fsS "https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID"
The monitor in Vigilmon should update to show "Last ping received" with the current timestamp. Then wait for the next scheduled backup run and confirm the heartbeat is received automatically.
For the web server monitor, confirm it shows Up in the Vigilmon dashboard:
curl -s https://duplicati.example.com/alive
What You've Built
Your Vigilmon setup now covers four independent failure modes for Duplicati:
| Monitor | Failure Mode Caught |
|---------|-------------------|
| HTTP /alive | Duplicati process crashes, service failures, system reboots |
| Heartbeat (per job) | Backup job failures, hangs, missed schedules, silent errors |
| HTTP /api/v1/serverinfo | API access failures, authentication issues |
| SSL Certificate | Certificate expiry blocking HTTPS remote management |
The heartbeat monitors are the most critical — they tell you whether backups are actually protecting your data, not just whether the Duplicati process is running.