tutorial

Monitoring LimeSurvey with Vigilmon

LimeSurvey powers your surveys — but if the web UI goes down or the database disconnects, respondents get errors and your data collection stops. Here's how to monitor every critical layer with Vigilmon.

LimeSurvey is the most widely used self-hosted survey platform, trusted by universities, NGOs, and enterprises to collect data without vendor lock-in. But self-hosted means you own the uptime: a crashed PHP-FPM process, a full database disk, or a failed mail relay all silently break data collection. Vigilmon gives you layered monitoring — web UI availability, admin login health checks, database connectivity, SSL alerts, and email delivery heartbeats — so you catch failures before respondents do.

What You'll Set Up

  • HTTP uptime monitor for the LimeSurvey web UI
  • Admin login page health check at /index.php/admin/authentication/sa/login
  • Database connectivity check (MySQL or PostgreSQL)
  • SSL certificate expiry alerts
  • Email delivery heartbeat to confirm survey invitations are sending

Prerequisites

  • LimeSurvey installed on Apache or nginx (typically port 80/443)
  • MySQL or PostgreSQL database
  • PHP mail or SMTP configured for survey invitation emails
  • A free Vigilmon account

Step 1: Monitor the LimeSurvey Web UI

Start with a basic availability check on the LimeSurvey homepage:

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

This catch PHP-FPM crashes, nginx misconfigurations, and server-level outages. A 200 from the LimeSurvey start page confirms the web stack is healthy.


Step 2: Health Check the Admin Login Endpoint

The admin authentication page at /index.php/admin/authentication/sa/login is a richer health signal than the public homepage — it exercises the PHP application layer and session handling. Add a second monitor targeting it:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Enter: https://surveys.yourdomain.com/index.php/admin/authentication/sa/login
  3. Set Check interval to 5 minutes.
  4. Set Expected HTTP status to 200.
  5. Under Response body check, add the keyword LimeSurvey to confirm the page rendered correctly (not a generic PHP error page).
  6. Click Save.

If LimeSurvey's database connection drops, this page returns a database error rather than 200 — catching the problem even if the web server itself is running fine.


Step 3: Monitor Database Connectivity

LimeSurvey's database is its most critical dependency. A full disk or crashed database daemon means all survey responses are lost. Use a Vigilmon TCP port check for fast database availability monitoring:

MySQL:

  1. In Vigilmon, click Add MonitorTCP Port.
  2. Enter your database server hostname and port 3306.
  3. Set Check interval to 1 minute.
  4. Click Save.

PostgreSQL:

Same steps, but use port 5432.

For deeper checks, add a health probe script on the LimeSurvey server:

#!/bin/bash
# /usr/local/bin/check-limesurvey-db.sh
DB_HOST="localhost"
DB_PORT="3306"
DB_USER="limesurvey"
DB_PASS="your_password"
DB_NAME="limesurvey"

if mysqladmin ping -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASS" --silent 2>/dev/null; then
  curl -s https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID
fi

Schedule with cron every 5 minutes. In Vigilmon, create a Cron Heartbeat with a 10-minute expected interval to alert if the ping stops arriving.


Step 4: SSL Certificate Alerts

LimeSurvey handles sensitive survey data — an expired certificate breaks respondent trust and modern browsers block access entirely. Add certificate expiry monitoring:

  1. Open the HTTPS monitor created in Step 1.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

If you use Let's Encrypt with Certbot, verify auto-renewal is configured:

# Check renewal timer
systemctl status certbot.timer

# Test renewal without actually renewing
certbot renew --dry-run

A 21-day Vigilmon alert window gives you three weeks to investigate renewal failures before survey respondents see browser warnings.


Step 5: Email Delivery Heartbeat

LimeSurvey sends survey invitations, reminders, and confirmation emails. If the SMTP relay fails, your outreach campaigns silently stop without any visible error in the UI. Set up a delivery heartbeat:

  1. In LimeSurvey admin, go to ConfigurationGlobal settingsEmail settings.
  2. Note your SMTP server and port (587 for STARTTLS, 465 for SSL).
  3. In Vigilmon, add a TCP Port monitor for your SMTP server on port 587 or 465.
  4. Set Check interval to 5 minutes.

For end-to-end delivery verification, use LimeSurvey's built-in Send test email feature from the mail settings page and check delivery in your inbox. Then create a cron heartbeat in Vigilmon and trigger a test email as part of a scheduled verification script:

#!/bin/bash
# Probe SMTP connectivity and ping Vigilmon on success
if nc -z -w5 smtp.yourdomain.com 587; then
  curl -s https://vigilmon.online/heartbeat/YOUR_SMTP_HEARTBEAT_ID
fi

Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, or a webhook for your on-call team.
  2. Set Consecutive failures before alert to 2 for HTTP monitors to avoid false alarms from transient PHP-FPM restarts.
  3. Set TCP port monitors to alert after 1 failure — database and SMTP failures are always actionable.
  4. Use Maintenance windows during LimeSurvey upgrades to suppress expected downtime alerts.

Summary

| Monitor | Target | What It Catches | |---|---|---| | HTTP uptime | https://surveys.yourdomain.com | PHP-FPM crash, web server down | | Admin login check | /index.php/admin/authentication/sa/login | Application error, DB disconnect | | TCP: database | :3306 or :5432 | Database daemon down, disk full | | SSL certificate | Your survey domain | Certificate expiry, renewal failure | | Cron heartbeat | SMTP probe script | Mail relay failure, SMTP port blocked |

LimeSurvey's value is in the data it collects — and data collection stops silently when any layer fails. With Vigilmon watching the web UI, admin endpoint, database, SSL, and email relay, you get complete visibility into every component that keeps your surveys running.

Monitor your app with Vigilmon

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

Start free →