Answer is a modern open-source Q&A community platform — think a self-hosted Stack Overflow alternative — built with Go and React. When your Answer instance goes down, users can't ask questions, teams lose access to internal knowledge bases, and search indexes go stale. Vigilmon monitors your Answer deployment from multiple geographic regions and fires an alert the moment anything fails, so you stay ahead of your community.
What You'll Set Up
- Vigilmon HTTP monitor for the Answer web UI
- A monitor for the Answer health endpoint
- A monitor for the search service availability
- An SSL certificate expiry alert
Prerequisites
- A running Answer instance (v1.x, Go-based)
- A free Vigilmon account
- Basic familiarity with your Answer deployment (Docker or binary)
Why Answer Needs External Monitoring
Answer is a Go application with a straightforward architecture: a single binary serving the API, a React SPA frontend, a MySQL or PostgreSQL database, and optionally an external search backend (Elasticsearch or Meilisearch) for full-text search. This simplicity is an asset — but it also means fewer built-in monitoring hooks.
The most common failure modes are: the Answer binary process dying (common after OOM kills), the database becoming unreachable, or the search backend going down (which degrades search results silently without breaking the UI). External monitoring from Vigilmon catches all three.
Step 1: Monitor the Answer Web UI
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your Answer URL, e.g.
https://community.yourdomain.com. - Set Check interval to
1 minute. - Set Expected status code to
200. - Click Save.
This confirms the Go binary is running, the frontend assets are being served, and the reverse proxy (Nginx or Caddy) is routing correctly. A process crash or OOM kill triggers an alert within one minute.
Step 2: Monitor the Answer Health Endpoint
Answer exposes a health check endpoint at /api/v1/health that verifies the application is running and the database is reachable.
- Click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter
https://community.yourdomain.com/api/v1/health. - Set Expected status code to
200. - In Expected body contains, enter
"status". - Click Save.
A healthy response looks like:
{
"data": {
"status": "available"
}
}
If the database becomes unreachable, the health endpoint returns a non-200 status or an error body. This monitor catches database connection failures that the web UI check misses — the React SPA may appear to load from browser cache even when the API is down.
Step 3: Monitor the Search Service
Full-text search is central to the Answer experience — finding previous questions, discovering related answers, and navigating the knowledge base all depend on the search backend. If Elasticsearch or Meilisearch goes down, search silently returns empty results while everything else appears healthy.
If You Use Meilisearch
Meilisearch exposes a health endpoint at /health:
- Click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter
https://search.yourdomain.com/health(or the internal URL if not publicly exposed). - Set Expected status code to
200. - In Expected body contains, enter
"status":"available". - Click Save.
If You Use Elasticsearch
Elasticsearch exposes a cluster health endpoint at /_cluster/health:
- Click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter
http://localhost:9200/_cluster/health(or your Elasticsearch URL). - Set Expected status code to
200. - In Expected body contains, enter
"status":"green"(or"yellow"if a single-node cluster is acceptable). - Click Save.
If Search Runs Internally (No Public Endpoint)
If your search backend is not reachable from Vigilmon's probes, add a TCP port monitor instead:
- Set Type to
TCP. - Enter your server hostname and set Port to
7700(Meilisearch default) or9200(Elasticsearch default). - Click Save.
Step 4: Monitor the SSL Certificate
Community platforms depend on HTTPS for login security and user trust. An expired certificate locks out every member with a browser security warning.
- In Vigilmon, click Add Monitor → SSL Certificate.
- Enter your Answer domain, e.g.
community.yourdomain.com. - Set Alert days before expiry to
21. - Click Save.
Vigilmon checks the certificate daily. You'll get an alert 21 days before expiry, giving you time to renew via Certbot or Caddy's automatic HTTPS before any member notices.
Step 5: Configure Alert Channels
Slack Webhook
- Create a Slack incoming webhook for your
#community-opschannel. - In Vigilmon, go to Alert Channels → Add Channel → Webhook.
- Paste the webhook URL and use this payload:
{
"text": "🚨 *{{monitor_name}}* is {{status}}!\nURL: {{url}}\nTime: {{timestamp}}"
}
- Attach this channel to all four Answer monitors.
Email Escalation
Add a secondary email alert channel for the community moderator or administrator. In Alert Channels → Add Channel → Email, enter the moderator's address and attach it to the web UI and health endpoint monitors — these are the most user-impacting failures.
Step 6: Verify the Setup
- Confirm the health endpoint: Run
curl https://community.yourdomain.com/api/v1/healthand verify the JSON response. - Confirm search health: Run
curl https://your-search-service/healthand confirm a healthy status before Vigilmon monitors it. - Simulate a failure: Stop the Answer binary (
sudo systemctl stop answerordocker stop answer) and confirm both the web UI and health endpoint monitors fire within one minute. - Restore and check recovery: Start Answer again and confirm Vigilmon sends a recovery notification.
Going Further
- Response time threshold: Answer is a Go application and should respond quickly. Set a warn at
500msand critical at2000ms— if response time climbs, it often indicates database query regressions or search backend latency. - User registration flow check: Add an HTTP monitor with a keyword check on
https://community.yourdomain.com/signUp— if the registration page returns an unexpected body (e.g. a maintenance message), Vigilmon detects it. - Notification email delivery: Answer sends email notifications for answers, mentions, and digests. If you self-host SMTP, add a Vigilmon cron heartbeat to your email delivery job so you catch delivery failures before users stop receiving notifications.
- Database backup heartbeat: Add a Vigilmon cron heartbeat to your database backup cron job — a community knowledge base is data you cannot regenerate, and silent backup failures are the most common disaster-recovery gap.
Your Answer community platform is now monitored comprehensively: web availability, application health, search service, and SSL certificate safety — with alerts reaching you before your community members notice a problem.