tutorial

Monitoring OctoPrint with Vigilmon

OctoPrint is your self-hosted 3D printer control panel — but a crashed web interface means failed prints you won't catch until hours later. Here's how to monitor OctoPrint availability, API health, and scheduled print completion with Vigilmon.

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 :5000 port
  • API health check using the /api/version endpoint 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:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your OctoPrint URL: http://192.168.1.100:5000 (or your domain if proxied).
  4. Set Check interval to 2 minutes.
  5. Set Expected HTTP status to 200.
  6. 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:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Enter http://192.168.1.100:5000/api/version.
  3. Expand Request Headers and add:
    • Header: X-Api-Key
    • Value: your_octoprint_api_key
  4. Set Expected HTTP status to 200.
  5. Under Response body check, enter api to confirm the JSON response contains the expected field.
  6. 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:

  1. Add another HTTP / HTTPS monitor for http://192.168.1.100:5000/api/printer.
  2. Add the X-Api-Key header as in Step 2.
  3. Under Response body check, enter Operational to confirm the printer is connected and ready.
  4. Set Expected HTTP status to 200.
  5. 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.

  1. Open your OctoPrint HTTP monitor (created in Step 1 with your domain URL).
  2. Enable Monitor SSL certificate in the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. 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.

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the expected interval to match your print schedule (e.g. 480 minutes for an 8-hour print).
  3. Copy the heartbeat URL: https://vigilmon.online/heartbeat/abc123.
  4. 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

  1. Go to Alert Channels in Vigilmon and add your preferred notification method: email, Slack, Discord, or a webhook to your home automation system.
  2. Set Consecutive failures before alert to 2 on the web UI monitor — OctoPrint can take 10–15 seconds to restart after a plugin crash.
  3. Keep Consecutive failures before alert at 1 for 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.

Monitor your app with Vigilmon

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

Start free →