tutorial

Pterodactyl Monitoring with Vigilmon: Game Panel, Wings Daemon & Server Port Checks

Monitor your Pterodactyl game server panel with Vigilmon — track web panel uptime, Wings daemon health, game server ports, API availability, and SSL certificate expiry.

Your Minecraft server went offline at 11 PM on a Friday. Twenty players in your Discord are posting "is the server down?" while you sleep. The Wings daemon crashed silently, and Pterodactyl's panel shows every server as offline. No one knew until morning.

Pterodactyl is the leading open-source game server management panel. It runs your game servers inside Docker containers managed by the Wings daemon, with a sleek web panel on top. When it works, it's invisible. When it breaks — the daemon crashes, the panel returns 502s, or a game port goes unreachable — your players notice immediately. Vigilmon gives you external monitoring so you catch those failures before your players do.

This tutorial walks through monitoring Pterodactyl end-to-end with Vigilmon.

What You'll Build

  • A Vigilmon HTTP monitor on the Pterodactyl web panel
  • An API health check monitor for the Pterodactyl application API
  • A TCP port monitor for the Wings daemon
  • TCP monitors for individual game server ports
  • SSL certificate expiry alerts

Prerequisites

  • A running Pterodactyl installation (panel + Wings daemon)
  • A free account at vigilmon.online

Step 1: Monitor the Pterodactyl Web Panel

The web panel is the first thing your admins and players interact with. If Nginx or the PHP-FPM process behind it crashes, the panel returns a 502 or 500 error. Vigilmon catches this before anyone submits a support ticket.

Test the panel health endpoint:

curl -I https://panel.yourdomain.com/

You should see a 200 OK response. Pterodactyl's login page reliably returns 200 when the stack is healthy — it's a good canary for database connectivity too, since the login page renders a CSRF token from the database.

Set up the Vigilmon monitor:

  1. Log in to Vigilmon and click New Monitor → HTTP.
  2. Set URL to https://panel.yourdomain.com/.
  3. Set Check interval to 60 seconds.
  4. Set Expected status code to 200.
  5. Under Advanced → Keyword check, add:
    • Keyword present: Pterodactyl
  6. Save the monitor.

The keyword check ensures the correct page is loading — not a CDN error page or a generic Nginx 200 response with no content.


Step 2: Monitor the Application API

Pterodactyl's Application API powers all panel automation — creating servers, managing users, and more. A broken API often indicates a database connection failure or PHP process issue even when the front page still loads from cache.

curl https://panel.yourdomain.com/api/application/servers \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Accept: application/json"

A healthy response returns a JSON object with a data array. If the database is unreachable, you'll get a 500 error.

Set up the API monitor:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://panel.yourdomain.com/api/application/servers?per_page=1.
  3. Add a request header:
    • Key: Authorization
    • Value: Bearer <your-application-api-key>
  4. Add a second header:
    • Key: Accept
    • Value: application/json
  5. Set Expected status code to 200.
  6. Under Advanced → Keyword check, add keyword present: "data".
  7. Save the monitor.

Generate an Application API key from Panel → Admin → Application API → Create New.


Step 3: Monitor the Wings Daemon

Wings is the node agent that actually runs your Docker containers. It communicates with the panel over HTTPS on port 8080 (or 443 if configured). If Wings crashes or the port becomes unreachable, all game servers go offline — even if the panel itself looks fine.

Wings exposes a health endpoint:

curl https://node.yourdomain.com:8080/api/system \
  -H "Authorization: Bearer <wings-token>"

For a simpler TCP-level check that doesn't require authentication, use Vigilmon's TCP monitor:

  1. Click New Monitor → TCP in Vigilmon.
  2. Set Host to your Wings node hostname (e.g., node.yourdomain.com).
  3. Set Port to 8080 (or your configured Wings port).
  4. Set Check interval to 60 seconds.
  5. Save the monitor.

This confirms TCP connectivity to Wings. A connection timeout means Wings is down, the firewall rule changed, or the Docker daemon it depends on has crashed.


Step 4: Monitor Individual Game Server Ports

Each game server listens on a specific port. Players connect directly to these ports — if a port is unreachable, the server is down from the players' perspective even if Wings and the panel are healthy.

For each active game server, add a TCP monitor:

  1. Click New Monitor → TCP in Vigilmon.
  2. Set Host to your node's public IP or hostname.
  3. Set Port to the game server's port (e.g., 25565 for Minecraft Java Edition, 19132 for Bedrock, 27015 for Valve games).
  4. Set Check interval to 60 seconds.
  5. Set a descriptive monitor name like Minecraft SMP — Port 25565.
  6. Save the monitor.

Repeat for each game server you want to track. Vigilmon's multi-region checks ensure you're not getting false positives from your own network — if three regions all fail to connect, the port is genuinely unreachable.

UDP game servers: Vigilmon's TCP monitor cannot check UDP ports. For UDP-only game servers (some Bedrock/Source Query setups), rely on the Pterodactyl panel status and use Vigilmon's TCP check on any companion TCP port the server exposes.


Step 5: SSL Certificate Monitoring

Pterodactyl's panel uses HTTPS, and an expired certificate locks out both your admins and any automated API consumers. Vigilmon automatically checks SSL certificate validity on all HTTPS monitors and alerts you before expiry.

To enable SSL alerts:

  1. Open your existing panel HTTP monitor in Vigilmon.
  2. Under Advanced → SSL, verify that Alert before expiry is enabled (default: 14 days).
  3. Optionally add a separate HTTPS monitor for your Wings node's HTTPS endpoint if it uses a different certificate.

You'll receive an alert 14 days before expiry — enough time to renew via Certbot or your cert manager before anything breaks.


Step 6: Alert Channels

Go to Notifications → New Channel in Vigilmon and configure:

  • Discord — paste your Discord server's incoming webhook URL for instant notifications in your staff or ops channel
  • Email — direct alerts to your server admin
  • Webhook — forward to PagerDuty or Opsgenie for on-call escalation

A typical Wings-down alert looks like:

🔴 DOWN: node.yourdomain.com:8080 (TCP)
Could not establish TCP connection
Regions: US-East, EU-West, AP-Southeast
Triggered: 2026-01-15 23:47 UTC

What You've Built

| Scenario | How Vigilmon catches it | |---|---| | Web panel returns 502/500 | HTTP monitor detects non-200 status | | Database unreachable (panel) | Keyword check misses "Pterodactyl" on login page | | Application API broken | API HTTP monitor returns non-200 | | Wings daemon crashed | TCP monitor on port 8080 fails to connect | | Game server port unreachable | TCP monitor on game port times out | | SSL certificate expired | HTTPS monitor reports TLS error | | DNS misconfiguration | HTTP monitor detects DNS resolution failure |


Pterodactyl is rock-solid when everything is running — but Wings crashes, Docker socket issues, and firewall regressions can take down every server on a node at once. Vigilmon's external monitors cover all the layers your panel dashboard can't see from the inside.

Start monitoring your Pterodactyl panel 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 →