tutorial

Monitoring Fluidd and Klipper 3D Printer Infrastructure with Vigilmon

Fluidd is a popular Vue.js PWA front-end for Klipper 3D printer firmware — but a downed Moonraker API or crashed Klipper process means failed prints you won't know about. Here's how to monitor every layer of your Fluidd stack with Vigilmon.

Fluidd is a sleek, open-source progressive web app (PWA) that gives you real-time control over your Klipper-based 3D printer — webcam feeds, configuration editing, print job management, and live parameter tuning, all from a browser tab. But the Fluidd UI is only the outermost layer. Underneath it sits Moonraker (the REST API server), Klipper (the firmware/MCU communication daemon), and a file storage backend for your G-code library. Any layer failing means failed prints, and none of these services monitor themselves. Vigilmon closes that gap, watching every component of your Fluidd stack and alerting you before a runaway print wastes filament.

What You'll Set Up

  • Fluidd web UI (nginx) availability monitoring
  • Moonraker API server health check (port 7125)
  • Klipper firmware process liveness via Moonraker's printer info endpoint
  • Printer state API response time tracking (/printer/info)
  • Webcam stream availability (mjpg-streamer / camera-streamer)
  • Moonraker component update service health
  • Print job history API endpoint monitoring
  • SSL certificate expiry alerts for remote access setups

Prerequisites

  • Fluidd installed and serving on port 80 via nginx
  • Moonraker running on port 7125 on the same host
  • Klipper connected to your printer MCU
  • A free Vigilmon account

Step 1: Monitor the Fluidd Web UI (nginx)

Fluidd's static assets are served by nginx on port 80 (or 443 with TLS if you've set up remote access). This is your first health signal — if nginx is down, nothing is reachable.

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Fluidd URL: http://printer.local or https://fluidd.yourdomain.com.
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

For a keyword check confirming the PWA shell loaded correctly, enable Keyword match and enter Fluidd — the page title present in the HTML response.


Step 2: Monitor the Moonraker API Server (Port 7125)

Moonraker is the bridge between Fluidd and Klipper. If Moonraker is unreachable, Fluidd displays no printer data even if nginx is healthy. Moonraker exposes a JSON REST API on port 7125.

HTTP monitor for Moonraker's server info endpoint:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://printer.local:7125/server/info
  3. Check interval: 1 minute.
  4. Expected HTTP status: 200.
  5. Enable Keyword match: "result" (Moonraker wraps all responses in a result key).
  6. Click Save.

A successful response looks like:

{
  "result": {
    "klippy_connected": true,
    "klippy_state": "ready",
    "components": ["database", "file_manager", "klippy_apis", "machine"]
  }
}

If klippy_connected is false, Moonraker is running but Klipper has crashed — the keyword check catches this if you match on "klippy_state":"ready".


Step 3: Monitor Klipper Firmware via the Printer Info Endpoint

The /printer/info endpoint reports Klipper's internal state and is the canonical health signal for the firmware process:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://printer.local:7125/printer/info
  3. Check interval: 2 minutes.
  4. Expected HTTP status: 200.
  5. Enable Keyword match: "state":"ready".
  6. Click Save.

This endpoint returns a non-200 or error body when Klipper is in an error/shutdown state, giving you early warning before a print job is queued to a non-functional printer.

You can also monitor response time to catch Klipper sluggishness before it affects prints:

  • Enable Response time threshold and set an alert at 2000 ms — a healthy Klipper response is typically under 200 ms.

Step 4: Monitor the Webcam Stream

If you use mjpg-streamer, camera-streamer, or crowsnest for your webcam feed, monitor its HTTP endpoint to catch camera disconnections:

For mjpg-streamer (default port 8080):

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://printer.local:8080/?action=snapshot
  3. Check interval: 5 minutes.
  4. Expected HTTP status: 200.
  5. Expected content type: image/jpeg.
  6. Click Save.

For camera-streamer:

http://printer.local:1984/api

Use a 200 status check against the camera-streamer API endpoint. A failed webcam doesn't stop printing, but it breaks remote monitoring — you won't see that the print is spaghetti until it's too late.


Step 5: Monitor the Print Job History API

Moonraker maintains a print history log accessible via its API. A timeout or error here often signals a corrupted Moonraker database:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://printer.local:7125/server/history/list?limit=5
  3. Check interval: 10 minutes.
  4. Expected HTTP status: 200.
  5. Enable Keyword match: "result".
  6. Click Save.

Step 6: Monitor the Moonraker Update Manager

Moonraker's update manager component (/machine/update/status) tracks component versions. If it becomes unavailable, you lose the ability to update Klipper, Fluidd, or Moonraker safely from the UI:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://printer.local:7125/machine/update/status
  3. Check interval: 15 minutes.
  4. Expected HTTP status: 200.
  5. Enable Keyword match: "result".
  6. Click Save.

Step 7: SSL Certificate Alerts for Remote Access

If you've exposed Fluidd externally via a reverse proxy with Let's Encrypt certificates:

  1. Open the HTTP monitor for your Fluidd domain.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

A lapsed TLS certificate blocks all remote access to your printer — you lose the ability to pause or cancel prints remotely.


Step 8: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add your preferred channel (Slack, email, or webhook).
  2. Set Consecutive failures before alert to 2 on the Moonraker and Klipper monitors — brief connectivity blips on a LAN are common during printer movements.
  3. For the Fluidd nginx monitor, 1 failure is enough to alert — nginx doesn't flap.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Fluidd web UI | http://printer.local | nginx crash, failed deploy | | Moonraker server | :7125/server/info | Moonraker process crash | | Klipper state | :7125/printer/info | Klipper error/shutdown | | Webcam stream | :8080/?action=snapshot | Camera disconnect | | Print history API | :7125/server/history/list | Database corruption | | Update manager | :7125/machine/update/status | Component update service failure | | SSL certificate | Fluidd domain | TLS expiry blocking remote access |

Klipper-based 3D printing rigs are surprisingly complex distributed systems. A single crashed daemon can silently ruin a multi-hour print. With Vigilmon watching each layer — nginx, Moonraker, Klipper state, and the webcam — you get the full-stack visibility to catch failures before filament hits the floor.

Monitor your app with Vigilmon

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

Start free →