tutorial

Monitoring Zabbix with Vigilmon: Platform Uptime, Web Frontend Health, API Availability & SSL Certificate Checks

How to monitor Zabbix network monitoring platform with Vigilmon — web frontend uptime, API availability, SSL certificate monitoring, and agent connectivity health checks for 2026.

Zabbix is one of the most widely deployed open-source monitoring platforms in enterprise infrastructure — collecting metrics from thousands of hosts, managing alerting, and driving dashboards for network operations teams. But Zabbix itself is infrastructure that can fail: the web frontend can go down, the Zabbix server process can crash, the database it depends on can become unreachable, and the API that integrations rely on can degrade. When Zabbix is unavailable, you lose visibility into your entire monitored environment — and have no way to know about incidents until a human notices. Vigilmon gives you an external, independent monitoring layer for Zabbix itself: web frontend availability, API health, SSL certificate expiry, and the Zabbix server process status endpoint.

What You'll Build

  • A monitor on the Zabbix web frontend to catch UI and Apache/Nginx failures
  • An API endpoint health check confirming the Zabbix JSON-RPC API is responding
  • An API authentication smoke test verifying the API can process requests
  • SSL certificate monitoring for your Zabbix frontend domain
  • Alerting configured for a monitoring-critical system

Prerequisites

  • Zabbix server (6.x or 7.x) with the web frontend installed and accessible via HTTPS
  • An API user in Zabbix with read-only access for health checks (recommended)
  • A free account at vigilmon.online

Step 1: Monitor the Zabbix Web Frontend

The Zabbix web frontend is served by Apache or Nginx. A PHP-FPM crash, a web server misconfiguration after an update, or a filesystem issue can take down the frontend while the Zabbix server process continues running. Monitor the login page directly:

curl -I https://your-zabbix.example.com/zabbix/

A healthy response returns 200 with the Zabbix login page. Add the monitor:

  1. Log in to VigilmonAdd Monitor → HTTP.
  2. URL: https://your-zabbix.example.com/zabbix/.
  3. Check interval: 60 seconds.
  4. Expected status: 200.
  5. Keyword: Zabbix (appears in the page title of a healthy login page).
  6. Label: Zabbix Web Frontend.
  7. Click Save.

URL path: Zabbix is commonly installed at /zabbix/ or at the web root /. Adjust the URL to match your installation path. If Zabbix is the only application on the host, the URL may simply be https://your-zabbix.example.com/.


Step 2: Monitor the Zabbix JSON-RPC API

Zabbix exposes a JSON-RPC 2.0 API that integrations, automation tools, and dashboards use to query and configure the platform. An unauthenticated probe of the API endpoint confirms the endpoint is reachable and the PHP layer is processing requests:

curl -X POST https://your-zabbix.example.com/zabbix/api_jsonrpc.php \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"apiinfo.version","params":[],"id":1}'

A healthy response returns the API version number:

{
  "jsonrpc": "2.0",
  "result": "7.0.0",
  "id": 1
}

This endpoint requires no authentication — apiinfo.version is the one method callable without a session token. Add the monitor:

  1. Add Monitor → HTTP.
  2. URL: https://your-zabbix.example.com/zabbix/api_jsonrpc.php.
  3. Method: POST.
  4. Request body:
    {"jsonrpc":"2.0","method":"apiinfo.version","params":[],"id":1}
    
  5. Request headers: Content-Type: application/json.
  6. Check interval: 60 seconds.
  7. Expected status: 200.
  8. Keyword: result (present in all valid API responses).
  9. Label: Zabbix API - Version Check.
  10. Click Save.

Why this matters independently: The web frontend can render the login page via static file serving while PHP-FPM (which handles the API) is broken. This API check confirms PHP processing is working even when the frontend appears up.


Step 3: Add an Authenticated API Smoke Test

The version check confirms the API is reachable but does not verify that authentication and database connectivity are working. Add an authenticated smoke test using a read-only Zabbix API user:

First, create a dedicated monitoring user in Zabbix:

  1. In the Zabbix UI, go to Users → Create User.
  2. Username: vigilmon-monitor, Role: Guest (read-only access sufficient).
  3. Set a strong password.

Then verify authentication works from the command line:

curl -X POST https://your-zabbix.example.com/zabbix/api_jsonrpc.php \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
      "username": "vigilmon-monitor",
      "password": "your-password"
    },
    "id": 1
  }'

A successful response returns a session token string in result. Add the monitor:

  1. Add Monitor → HTTP.
  2. URL: https://your-zabbix.example.com/zabbix/api_jsonrpc.php.
  3. Method: POST.
  4. Request body:
    {
      "jsonrpc": "2.0",
      "method": "user.login",
      "params": {"username": "vigilmon-monitor", "password": "your-password"},
      "id": 1
    }
    
  5. Request headers: Content-Type: application/json.
  6. Check interval: 5 minutes.
  7. Expected status: 200.
  8. Keyword: result (present when login succeeds; absent when it fails with an error key).
  9. Label: Zabbix API - Auth Smoke Test.
  10. Click Save.

What this catches that the version check does not: If Zabbix's database becomes unreachable, apiinfo.version still returns successfully (it is cached in PHP) while user.login will fail with a database error. This is one of Zabbix's most common failure modes during MySQL/PostgreSQL issues.


Step 4: Monitor SSL Certificates

Zabbix's web frontend is a high-value monitoring target — teams rely on it during incidents. An expired TLS certificate locks out every person and integration that needs to check monitoring status at exactly the moment they most need it:

curl -v https://your-zabbix.example.com 2>&1 | grep -i "expire"

Add SSL monitoring with generous early warnings:

  1. Add Monitor → SSL Certificate.
  2. Domain: your-zabbix.example.com.
  3. Alert when expiry is within: 30 days.
  4. Alert again: 14 days, 7 days, 3 days, 1 day.
  5. Click Save.

If your Zabbix instance uses a certificate managed by your internal PKI or a wildcard certificate, set the alert threshold higher (60 days) since internal certificate renewals often involve manual approval processes.


Step 5: Monitor the Zabbix Server Status Page

If your Zabbix installation exposes a server status or ping endpoint (common in containerized deployments), add a direct probe of the Zabbix server process health. In Docker Compose deployments, Zabbix often exposes a health endpoint:

curl http://your-zabbix-host:8080/  # Zabbix server health in Docker deployments

For bare-metal or VM deployments, use the Zabbix web service ping if enabled:

curl https://your-zabbix.example.com/zabbix/ping

Add a monitor if the endpoint is available in your deployment:

  1. Add Monitor → HTTP.
  2. URL: https://your-zabbix.example.com/zabbix/ping (adjust to your deployment).
  3. Check interval: 60 seconds.
  4. Expected status: 200.
  5. Label: Zabbix Server - Process Health.
  6. Click Save.

Step 6: Configure Alerting

In Vigilmon under Settings → Notifications, configure alert channels for your operations team:

| Monitor | Trigger | Action | |---|---|---| | Zabbix Web Frontend | Non-200 or Zabbix keyword missing | Web server or PHP-FPM down; check Apache/Nginx status on the Zabbix host | | Zabbix API - Version Check | Non-200 or result missing | PHP processing broken; restart PHP-FPM or check PHP error logs | | Zabbix API - Auth Smoke Test | Non-200 or result missing | Database connectivity broken; check MySQL/PostgreSQL status | | Zabbix Server - Process Health | Non-200 or timeout | Zabbix server process crashed; check zabbix_server service status | | SSL Certificate | < 30 days to expiry | Renew certificate; if internal PKI, initiate renewal approval process immediately |

Alert sensitivity: Set all Zabbix monitors to alert after 1 consecutive failure. Zabbix is a monitoring-critical system — when it is down, you have zero visibility into the rest of your infrastructure. There is no graceful degradation to wait for.

On-call escalation: Route Zabbix monitor alerts to your highest-urgency notification channel. An alert that says "your monitoring system is down" should wake someone up.


Common Zabbix Failure Modes and What Vigilmon Catches

| Scenario | Vigilmon monitor | |---|---| | PHP-FPM process crash after update | API Version Check fires; Web Frontend may stay green (static files still served) | | MySQL/PostgreSQL database unreachable | Auth Smoke Test fires; Version Check stays green | | Apache/Nginx web server crash | Web Frontend fires; all other HTTP monitors follow | | Zabbix server process crash (separate from web) | Server Process Health monitor fires; frontend may stay up | | SSL certificate expires | SSL monitor alerts at 30-day threshold; frontend becomes inaccessible to browsers | | Disk full on Zabbix host | Zabbix server crashes; Server Process and API monitors fire | | Network partition isolating Zabbix host | All monitors fire simultaneously | | Zabbix update breaks PHP compatibility | API Version Check and Auth Smoke Test fire with PHP errors | | Zabbix database migration fails mid-upgrade | Auth Smoke Test fires; Version Check may stay green | | Apache/Nginx misconfiguration after config change | Web Frontend fires with unexpected status code |


Why Monitor Zabbix with an External Tool

There is an inherent blind spot in any monitoring system: it cannot alert you to its own unavailability. Zabbix's internal alerting goes silent the moment Zabbix itself fails — which is precisely when you need alerting most. Vigilmon acts as a watchdog for your watchdog: an independent external monitor that has no dependency on Zabbix's availability and will alert your team through a separate channel (Slack, PagerDuty, email) the moment Zabbix becomes unreachable.

This is not redundancy for its own sake. It is the monitoring equivalent of having a backup generator — you build it hoping to never need it, and it pays for itself the first time your primary system fails.


Zabbix is enterprise-grade monitoring infrastructure, but even enterprise infrastructure has failure modes. Vigilmon provides the independent external layer that Zabbix cannot provide for itself: web frontend availability, API health including database connectivity, SSL certificate expiry, and server process status — all monitored from outside your network by infrastructure that has no dependency on your Zabbix installation.

Start monitoring Zabbix in under 5 minutes — register free at vigilmon.online.

Monitor your app with Vigilmon

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

Start free →