DEV Community

Vigilmon
Vigilmon

Posted on

How to Monitor Your Ghost Blog with Vigilmon

How to Monitor Your Ghost Blog with Vigilmon

Ghost is a powerful open-source CMS for professional publishers — but whether you're self-hosting Ghost on a VPS or using Ghost(Pro), your blog can go down without warning. This guide shows you how to set up uptime monitoring for your Ghost site with Vigilmon.

What Can Go Wrong with Ghost?

  • Node.js process crashes — Ghost runs on Node.js and can crash or consume too much memory
  • MySQL/SQLite issues — database unavailability causes Ghost to throw 500 errors
  • Nginx/reverse proxy issues — misconfigured proxying causes 502 Bad Gateway
  • Ghost Content API failures — the API layer can fail independently of the frontend
  • SSL certificate expiry — your Let's Encrypt cert renews automatically, but can fail
  • Ghost(Pro) outages — managed hosting isn't immune to downtime
  • Email delivery failures — Ghost's mail configuration can break silently

External uptime monitoring catches all of these before your readers notice.

Monitoring Options for Ghost

Option 1: Monitor the Blog Homepage

The simplest approach — monitor your blog's homepage directly:

https://yourblog.com/
Enter fullscreen mode Exit fullscreen mode

Vigilmon will:

  • Send an HTTP GET request every 60 seconds
  • Check for a 200 status code
  • Optionally verify your blog title appears in the response body
  • Check SSL certificate validity

Option 2: Monitor the Ghost Content API

Ghost exposes a public Content API that powers the frontend. Monitoring it directly gives you better signal about Ghost's health:

https://yourblog.com/ghost/api/content/posts/?key=YOUR_CONTENT_API_KEY&limit=1
Enter fullscreen mode Exit fullscreen mode

To get your Content API key:

  1. Go to Ghost Admin → Settings → Integrations
  2. Click Add custom integration
  3. Copy the Content API Key

The endpoint returns JSON with your latest post — a good health signal.

Option 3: Monitor the Admin Panel (Self-Hosted)

For self-hosted Ghost, monitor the admin panel's login page:

https://yourblog.com/ghost/
Enter fullscreen mode Exit fullscreen mode

This checks that Ghost's admin frontend is serving. It should return a redirect (302) or the login page (200).

Setting Up Vigilmon

  1. Log in at vigilmon.online
  2. Click Add Monitor
  3. Enter your Ghost blog URL: https://yourblog.com/
  4. Set Monitor Type to HTTP/HTTPS
  5. Set Check Interval to 60 seconds
  6. Under Advanced Options:
    • Expected Status Code: 200
    • Response Body Must Contain: your blog name (e.g., My Blog) — optional
  7. Click Save

Add a second monitor for your Content API:

  • URL: https://yourblog.com/ghost/api/content/posts/?key=YOUR_KEY&limit=1
  • Expected Status Code: 200
  • Response Body Must Contain: "posts"

SSL Certificate Monitoring

Ghost(Pro) and most self-hosted configurations use Let's Encrypt TLS certificates. These expire every 90 days — but auto-renewal can silently fail.

Vigilmon automatically monitors your SSL certificate and alerts you when it's approaching expiry (configurable threshold — default 30 days). No separate configuration needed; it's built into every HTTPS monitor.

Alert Configuration

In Vigilmon, configure alerts to reach you through your preferred channel:

  1. Go to Alert ChannelsAdd Channel
  2. Options: Email, Slack webhook, PagerDuty, Opsgenie, custom webhook
  3. Set your alert threshold: e.g., "alert after 2 consecutive failures across 2+ regions"

Multi-Region Monitoring: Why It Matters for Ghost

Vigilmon's multi-region consensus model is particularly important for Ghost blogs:

  • Ghost sometimes takes a few seconds to warm up after inactivity (Node.js process restart)
  • A slow response from one region might be a transient spike, not a real outage
  • An alert only fires when 3+ globally distributed probe nodes simultaneously confirm failure

This means you won't be woken up at 3am by a false alert because one probe node had a brief network hiccup.

Monitoring Self-Hosted Ghost on a VPS

For Ghost self-hosted behind Nginx:

Monitor 1: Public blog

  • URL: https://yourblog.com/
  • Catches: Nginx proxy issues, Ghost process failures, SSL problems

Monitor 2: Content API

  • URL: https://yourblog.com/ghost/api/content/posts/?key=YOUR_KEY&limit=1
  • Catches: Ghost API layer failures (even if the frontend partially serves)

Monitor 3: Server port (optional)

  • For direct Node.js health, monitor your app port if it's publicly accessible

Public Status Page for Your Readers

If your blog has subscribers or a dedicated readership, Vigilmon's public status page lets you communicate incidents proactively:

  1. In Vigilmon, go to Status PagesCreate Status Page
  2. Add your Ghost monitors to the status page
  3. Share the URL with your readers (e.g., status.yourblog.com)

When Ghost goes down, your status page stays up (it's hosted on Vigilmon's infrastructure, not yours) and automatically updates to show the outage.

Complete Ghost Monitoring Setup

Monitor URL Interval What It Catches
Blog homepage https://yourblog.com/ 60s Everything — front to back
Content API /ghost/api/content/posts/?key=... 60s API layer specifically
Admin panel https://yourblog.com/ghost/ 5min Admin interface availability
SSL cert Auto (via HTTPS monitors) Daily Certificate expiry

Conclusion

Ghost is reliable CMS software, but no software is immune to downtime. External uptime monitoring with Vigilmon ensures you're the first to know when your blog goes down — not your readers, not via a panicked tweet, but via an instant alert to your email or Slack.

Monitor your Ghost blog with Vigilmon for free — 2-minute setup, no credit card.

Top comments (0)