Meilisearch is the fast, open-source search engine teams embed into applications to deliver instant, typo-tolerant search results. Unlike a background database, Meilisearch sits in the hot path of user-facing search requests — if it goes down, your search bar returns errors instead of results. If TCP port 7700 becomes unreachable, every application making search API calls fails immediately. Vigilmon gives you external visibility into Meilisearch's health endpoint, version API, document index stats, TCP port, and SSL certificate so you're alerted before users notice search is broken.
What You'll Build
- A monitor on Meilisearch's
/healthendpoint - An HTTP monitor for the
/versionendpoint - A keyword check on
/statsto confirm indexes are populated - A TCP monitor for port 7700 availability
- SSL certificate monitoring for your Meilisearch domain
Prerequisites
- A running Meilisearch instance with a public or network-reachable domain
- HTTPS configured via a reverse proxy (e.g.,
https://search.example.com) - Port 7700 accessible from Vigilmon's monitoring infrastructure (or 443 if behind a reverse proxy)
- A free account at vigilmon.online
Step 1: Verify Meilisearch's Health Endpoint
Meilisearch exposes a dedicated health check at /health:
curl https://search.example.com/health
A healthy Meilisearch returns HTTP 200 with:
{"status":"available"}
This endpoint requires no authentication and is specifically designed for uptime monitoring. The available status means Meilisearch is running and ready to accept search and indexing requests.
Step 2: Create a Vigilmon HTTP Monitor for the Health Endpoint
- Log in to Vigilmon → Add Monitor → HTTP.
- URL:
https://search.example.com/health. - Check interval: 60 seconds.
- Response timeout: 10 seconds.
- Expected status:
200. - Keyword:
available. - Click Save.
This monitor catches:
- Meilisearch process crashes or unexpected restarts
- Database corruption that prevents Meilisearch from initializing
- Out-of-memory conditions (Meilisearch is memory-intensive for large indexes)
- Configuration errors after upgrades
The keyword available is Meilisearch's own status word — it's the most reliable signal that the engine is fully operational, not just responding.
Step 3: Monitor the Version Endpoint
The /version endpoint provides Meilisearch's version and build information. It is a lightweight, unauthenticated endpoint useful as a secondary health signal and for tracking which version is deployed:
curl https://search.example.com/version
A healthy response:
{
"commitSha": "b46889b5f0f2f8b91438a08a358ba8f05fc09fc1",
"commitDate": "2023-12-19T15:51:24Z",
"pkgVersion": "1.5.0"
}
- Add Monitor → HTTP.
- URL:
https://search.example.com/version. - Check interval: 5 minutes.
- Expected status:
200. - Keyword:
pkgVersion. - Label:
Meilisearch Version API. - Click Save.
Step 4: Monitor Index Stats for Document Count
The /stats endpoint returns information about all indexes, including document counts. You can use a keyword check to confirm your indexes are populated — an empty index after a deployment often signals a failed data ingestion pipeline:
curl https://search.example.com/stats \
-H "Authorization: Bearer <your-master-key>"
A response with populated indexes looks like:
{
"databaseSize": 447819776,
"lastUpdate": "2023-12-19T15:50:00Z",
"indexes": {
"products": {
"numberOfDocuments": 150000,
"isIndexing": false,
"fieldDistribution": {}
}
}
}
- Add Monitor → HTTP.
- URL:
https://search.example.com/stats. - Check interval: 5 minutes.
- Expected status:
200. - Keyword:
numberOfDocuments. - Custom header:
Authorization: Bearer <your-master-key>. - Label:
Meilisearch Index Stats. - Click Save.
If
/statsrequires authentication: Add theAuthorizationheader with your Meilisearch master key. Consider creating a dedicated monitoring API key with read-only access using the/keysendpoint.
This monitor catches silent failures in your indexing pipeline — Meilisearch is running and healthy, but the indexes are empty because the application that populates them has stopped.
Step 5: Create a TCP Monitor for Port 7700
Meilisearch listens on port 7700 by default. If you expose this port directly (without a reverse proxy), monitor it with a TCP check. If you're using a reverse proxy, the TCP check on port 443 is covered by your HTTP monitors — skip this step or use it as an additional layer.
- Add Monitor → TCP.
- Host:
search.example.com. - Port:
7700. - Check interval: 60 seconds.
- Response timeout: 10 seconds.
- Label:
Meilisearch TCP 7700. - Click Save.
When the TCP monitor fires but the HTTP health monitor is also failing, the Meilisearch process has stopped or the port is blocked. When only the TCP monitor fires, you have a firewall or network routing issue specific to port 7700.
Reverse proxy setup: If Meilisearch is behind nginx or Caddy on port 443, skip the port 7700 TCP monitor. The HTTP health monitor already validates end-to-end availability including the proxy layer.
Step 6: Monitor SSL Certificates
If Meilisearch is served over HTTPS via a reverse proxy, certificate expiry breaks every application making search API calls — typically with no user-facing fallback.
- Add Monitor → SSL Certificate.
- Domain:
search.example.com. - Alert when expiry is within: 30 days.
- Alert again: 14 days, 7 days, 3 days, 1 day.
- Click Save.
Step 7: Configure Alerting
In Vigilmon under Settings → Notifications, configure your alert channels:
| Monitor | Trigger | Action |
|---|---|---|
| /health | Non-200 or available missing | Check systemctl status meilisearch; inspect logs at journalctl -u meilisearch |
| /version | Non-200 or keyword missing | Secondary health check; verify process is running |
| /stats | Non-200 or numberOfDocuments missing | Check indexing pipeline; verify API key hasn't been rotated |
| TCP port 7700 | Connection refused or timeout | Check firewall rules; verify Meilisearch is bound to the right interface |
| SSL certificate | < 30 days to expiry | Renew certificate; check reverse proxy ACME configuration |
Alert after: 2 consecutive failures for HTTP monitors. 1 failure for TCP monitors.
Common Meilisearch Failure Modes and What Vigilmon Catches
| Scenario | Vigilmon monitor |
|---|---|
| Meilisearch process crash | /health unreachable; alert within 60 s |
| Out-of-memory kill (OOM) | /health unreachable; check dmesg for OOM killer events |
| Port 7700 blocked by firewall | TCP monitor fires; HTTP monitors may also fail |
| Empty indexes after indexing failure | /stats keyword check fails; health endpoint stays green |
| Meilisearch upgrade breaks API | /version returns unexpected format; investigate changelogs |
| SSL certificate expires | SSL monitor alerts at 30 days; all HTTPS search calls fail |
| Disk full → can't write indexes | Health check may degrade; indexing tasks fail |
| DNS misconfiguration | All HTTP and SSL monitors fire simultaneously |
Search is often the most used feature in an application — and one of the first things users notice when it breaks. Meilisearch's speed and simplicity make it easy to deploy, but external monitoring is what keeps it reliable. Vigilmon watches the health endpoint, version API, index stats, TCP port, and SSL certificate so you're alerted the moment Meilisearch stops serving search requests.
Start monitoring Meilisearch in under 5 minutes — register free at vigilmon.online.