OsTicket is one of the world's most widely deployed open-source customer support ticketing systems. Built on PHP and MySQL, it runs IT helpdesks and customer service portals for organizations of every size. When OsTicket goes down — whether from a database failure, a broken PHP configuration, or an expired SSL certificate — support tickets silently queue up while your team scrambles. Vigilmon gives you real-time uptime monitoring for OsTicket's web UI, REST API, and scheduled cron tasks before a single ticket is lost.
What You'll Set Up
- HTTP monitor for the OsTicket login page and web UI availability
- REST API endpoint monitor for
/api/tickets/with API key auth header check - Database connectivity check via HTTP response keyword
- SSL certificate expiry alerts for HTTPS OsTicket installations
- Heartbeat monitor for OsTicket's automated cron tasks (ticket escalation, SLA enforcement, email polling)
Prerequisites
- OsTicket 1.17+ installed and accessible over HTTP or HTTPS
- OsTicket API key (generated in Admin Panel → API → Add New API Key)
- A free Vigilmon account
Step 1: Monitor the OsTicket Web UI
The OsTicket login page (/index.php) is the primary availability signal for the entire application. If it returns anything other than HTTP 200, staff cannot log in and customers cannot submit tickets.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your OsTicket URL:
https://support.yourdomain.com/index.php - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
For a more meaningful check, enable Keyword match on the same monitor and set it to a string that only appears when OsTicket renders successfully, such as:
Please sign in to continue
This confirms that PHP executed correctly and the page returned actual helpdesk content — not a PHP fatal error page that still returns HTTP 200.
Step 2: Monitor the OsTicket REST API
OsTicket 1.9+ ships with a REST API at /api/tickets/. Monitoring this endpoint confirms that the API layer is healthy independently of the web UI.
- Click Add Monitor in Vigilmon.
- Set Type to
HTTP / HTTPS. - Enter the API endpoint:
https://support.yourdomain.com/api/tickets/ - Add a custom request header:
- Header name:
X-API-Key - Header value: your OsTicket API key
- Header name:
- Set Expected HTTP status to
200(or201depending on your OsTicket version). - Set Check interval to
5 minutes. - Click Save.
The API endpoint validates both PHP execution and routing. A monitor here will catch misconfigured .htaccess rewrites, missing API keys, and broken URL routing that the UI check alone would miss.
Step 3: Check Database Connectivity via Keyword Match
OsTicket's login page only renders fully when the MySQL database is reachable. A database connection failure produces a blank page or a PHP error — but the HTTP status code may still be 200. Use a keyword match to detect this silently broken state.
Add a Keyword match to your web UI monitor (from Step 1):
- Keyword:
osTicket Support Ticket System - Match type:
Must contain
This string appears in the <title> tag of a healthy OsTicket page. If MySQL is down, the page will be empty or show a PHP exception, and the keyword will be absent — triggering an alert.
Alternatively, create a dedicated monitor pointed at OsTicket's diagnostic page (if enabled in your installation) or a lightweight PHP health script you place alongside OsTicket:
<?php
// healthcheck.php — place in your osTicket web root
require_once 'bootstrap.php';
$conn = db_connect();
if (!$conn) {
http_response_code(503);
echo 'db_error';
exit;
}
echo 'ok';
Then monitor https://support.yourdomain.com/healthcheck.php with keyword ok.
Step 4: SSL Certificate Alerts
An expired SSL certificate causes every browser to block access to your helpdesk with a security warning. Let's Encrypt certificates expire every 90 days; manual certificates can expire silently if renewal is forgotten.
Enable SSL monitoring on your existing web UI monitor:
- Open the monitor created in Step 1.
- Under SSL Certificate, enable Monitor certificate expiry.
- Set Alert threshold to
21 days before expiry. - Click Save.
A 21-day window gives you three full weeks to renew before customers see browser warnings. For Let's Encrypt setups, check that your certbot renew cron job is active:
sudo certbot renew --dry-run
If your OsTicket is behind a reverse proxy (nginx, Apache), make sure you're monitoring the public domain, not a backend IP — Vigilmon checks the certificate the browser actually receives.
Step 5: Heartbeat Monitoring for OsTicket Cron Tasks
OsTicket relies on scheduled cron jobs for critical background operations:
- Email polling: fetches incoming support emails and converts them to tickets
- SLA enforcement: escalates overdue tickets and sends SLA violation alerts
- Ticket auto-close: closes tickets that have been resolved and idle
If these cron jobs stop running — due to a misconfigured crontab, a PHP CLI crash, or a permission issue — tickets silently pile up with no escalation. Vigilmon's cron heartbeat catches this.
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Name it
OsTicket Cron. - Set Expected ping interval to
10 minutes(matching your cron schedule). - Copy the heartbeat URL (e.g.
https://vigilmon.online/heartbeat/abc123).
Edit your crontab to ping Vigilmon after each successful cron run:
crontab -e
Add the following (adjust the path to your OsTicket installation):
*/10 * * * * php /var/www/osticket/api/cron.php && curl -s https://vigilmon.online/heartbeat/abc123
The && ensures the heartbeat is only sent when cron.php exits with code 0. If the PHP process crashes or exits with an error, the heartbeat is suppressed and Vigilmon alerts after the interval passes.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add your preferred channels: email, Slack, PagerDuty, or webhook.
- Set Consecutive failures before alert to
2on the web UI monitor — transient nginx hiccups can cause single-probe failures that self-resolve. - For the API monitor, set Consecutive failures to
1— API failures are less likely to be transient and indicate a real problem. - For the cron heartbeat, use the default alert on first missed ping — a missed cron run is always worth investigating immediately.
Add a maintenance window if you upgrade OsTicket during off-hours:
# Suppress alerts for 30 minutes during upgrade
curl -X POST https://vigilmon.online/api/maintenance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"monitor_id": "abc123", "duration_minutes": 30}'
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | https://support.domain.com/index.php | PHP crash, nginx down, login broken |
| REST API | /api/tickets/ + X-API-Key header | API routing failure, auth config broken |
| DB keyword | osTicket Support Ticket System in page | MySQL down, silent DB connection error |
| SSL certificate | Public helpdesk domain | Certificate expiry before customers see warnings |
| Cron heartbeat | Heartbeat URL | Email polling stopped, SLA enforcement dead |
OsTicket is the front door to your support operations. With Vigilmon watching the web UI, API, database connectivity, SSL certificate, and cron jobs, you'll know the moment something breaks — before your support team or customers do.