OctoPrint gives you a browser-based control panel for your 3D printer — live camera feeds, print queue management, plugin ecosystem, and remote control from any device. When it goes down, prints stall silently and you lose hours of filament and time. Vigilmon keeps watch on your OctoPrint instance, alerting you the moment the web interface drops, the API stops responding, or a scheduled print fails to complete.
What You'll Set Up
- Web UI availability monitor at the default
:5000port - API health check using the
/api/versionendpoint with your API key - Printer connectivity status via API response content
- SSL certificate alerts if OctoPrint is proxied behind nginx
- Heartbeat monitoring to confirm scheduled prints finish successfully
Prerequisites
- OctoPrint running on a Raspberry Pi, local server, or VPS
- Your OctoPrint API key (Settings → API → API Key)
- A free Vigilmon account
Step 1: Monitor the Web UI Availability
OctoPrint's web interface runs on port 5000 by default. Add a basic availability monitor so you're alerted if the server stops responding:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your OctoPrint URL:
http://192.168.1.100:5000(or your domain if proxied). - Set Check interval to
2 minutes. - Set Expected HTTP status to
200. - Click Save.
If OctoPrint is only accessible on your local network, deploy a Vigilmon agent on the same network so checks reach it without VPN complexity.
Step 2: Check the OctoPrint API Health Endpoint
OctoPrint's REST API provides a /api/version endpoint that returns version information. This is more reliable than checking the UI because it confirms the application layer is responding, not just the web server.
The API requires authentication via the X-Api-Key header:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Enter
http://192.168.1.100:5000/api/version. - Expand Request Headers and add:
- Header:
X-Api-Key - Value:
your_octoprint_api_key
- Header:
- Set Expected HTTP status to
200. - Under Response body check, enter
apito confirm the JSON response contains the expected field. - Click Save.
A healthy response looks like:
{"api": "0.1", "server": "1.9.3", "text": "OctoPrint 1.9.3"}
If the API key is wrong or OctoPrint is starting up, this check will catch it before the UI failure does.
Step 3: Monitor Printer Connectivity Status
OctoPrint exposes printer connection state at /api/printer. You can use Vigilmon's response body check to alert when the printer goes offline:
- Add another HTTP / HTTPS monitor for
http://192.168.1.100:5000/api/printer. - Add the
X-Api-Keyheader as in Step 2. - Under Response body check, enter
Operationalto confirm the printer is connected and ready. - Set Expected HTTP status to
200. - Set Check interval to
5 minutes— printer connectivity changes more slowly than web UI health.
When the printer disconnects (USB cable pull, firmware crash, power cycle), the response body changes and Vigilmon alerts you immediately instead of you discovering it mid-print.
Step 4: SSL Certificate Alerts for Proxied Instances
If you've placed OctoPrint behind an nginx reverse proxy with a Let's Encrypt certificate for remote access, certificate expiry is a real risk — especially on home servers where renewal cron jobs can drift.
- Open your OctoPrint HTTP monitor (created in Step 1 with your domain URL).
- Enable Monitor SSL certificate in the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
A 21-day window gives you enough runway to investigate and manually renew with:
sudo certbot renew --force-renewal
sudo systemctl reload nginx
Step 5: Heartbeat Monitoring for Scheduled Prints
Long prints often run unattended and on a schedule — kicked off by OctoPrint's built-in scheduler or a plugin like OctoPrint-PrintScheduler. Use Vigilmon's cron heartbeat to confirm each scheduled print completes successfully.
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the expected interval to match your print schedule (e.g.
480minutes for an 8-hour print). - Copy the heartbeat URL:
https://vigilmon.online/heartbeat/abc123. - In OctoPrint, install the GCODE Scripts plugin or use the existing after-print script. Add a curl call at the end of your print GCODE:
Using OctoPrint's After print job done script (Settings → GCODE Scripts):
@curl https://vigilmon.online/heartbeat/abc123
Or use the OctoPrint-Webhooks plugin to POST to the heartbeat URL when the PrintDone event fires.
If the print crashes, the printer loses power, or OctoPrint itself dies mid-job, the heartbeat never arrives and Vigilmon alerts after the expected window passes.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add your preferred notification method: email, Slack, Discord, or a webhook to your home automation system.
- Set Consecutive failures before alert to
2on the web UI monitor — OctoPrint can take 10–15 seconds to restart after a plugin crash. - Keep Consecutive failures before alert at
1for the printer connectivity monitor — a disconnected printer needs immediate attention.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | http://octopi:5000 | OctoPrint server crash, Raspberry Pi reboot |
| API health | /api/version with API key | Application layer failure, startup failure |
| Printer status | /api/printer body: Operational | USB disconnect, firmware crash |
| SSL certificate | Proxied domain | Let's Encrypt renewal failure |
| Cron heartbeat | Heartbeat URL | Failed or stalled print job |
OctoPrint turns a basic 3D printer into a remotely managed, networked device — but that convenience disappears the moment the software crashes. With Vigilmon covering the web interface, API health, and print job completion, you'll catch failures in minutes instead of discovering ruined prints after the fact.