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/
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
To get your Content API key:
- Go to Ghost Admin → Settings → Integrations
- Click Add custom integration
- 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/
This checks that Ghost's admin frontend is serving. It should return a redirect (302) or the login page (200).
Setting Up Vigilmon
- Log in at vigilmon.online
- Click Add Monitor
- Enter your Ghost blog URL:
https://yourblog.com/ - Set Monitor Type to HTTP/HTTPS
- Set Check Interval to 60 seconds
- Under Advanced Options:
-
Expected Status Code:
200 -
Response Body Must Contain: your blog name (e.g.,
My Blog) — optional
-
Expected Status Code:
- 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:
- Go to Alert Channels → Add Channel
- Options: Email, Slack webhook, PagerDuty, Opsgenie, custom webhook
- 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:
- In Vigilmon, go to Status Pages → Create Status Page
- Add your Ghost monitors to the status page
- 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)