Skip to content

Self-Monitoring (Zabbix)

Every Phase-1 service exposes GET /health and GET /metrics — both JSON. /metrics is a flat libs/obsmetrics snapshot (requests_total, errors_total, uptime_seconds, plus optional service extras) built for Zabbix HTTP polling + JSONPath preprocessing.

Monitoring is agentless: zabbix-integration-service serves GET /webhook/zabbix/monitor (through edge-proxy, authenticated by the X-Monitor-Token header carrying ZABBIX_WEBHOOK_HMAC_SECRET), which concurrently aggregates every service's health + metrics into one JSON payload. The template polls it with a single HTTP-agent master item; all discovery and per-service items are dependent JSONPath slices of that payload — one HTTP request per interval, regardless of service count. No sidecar container, no Docker-socket exposure.

Import steps

  1. In Zabbix, import the template matching your server version:
    • Zabbix 7.0: monitoring/zabbix-templates/7.0/seyalrun-platform.yaml
    • Zabbix 8.0: monitoring/zabbix-templates/8.0/seyalrun-platform.yaml
  2. Create (or pick) a host for the SeyalRun stack and link the imported SeyalRun Platform template (no agent interface needed).
  3. Set the template macros on that host:
    • {$SEYALRUN.MONITOR.URL} = https://<edge-host>:<EDGE_HTTPS_PORT>/webhook/zabbix/monitor
    • {$SEYALRUN.MONITOR.TOKEN} = the stack's ZABBIX_WEBHOOK_HMAC_SECRET (secret-text macro)
  4. Within a minute the master item polls the endpoint; discovery then populates health, request-rate, error-rate, and uptime items for every service.

What's intentionally not monitored

Error-log tailing (an agent-only capability) was retired along with the sidecar container — 5xx rates surfaced from /metrics cover the alerting need without requiring a log-shipping agent per host.

This is a separate feature from the Zabbix frontend module, which embeds SeyalRun's UI inside Zabbix — self-monitoring only reports platform health as Zabbix items/triggers and requires no module install.

Secure. Controlled. Automated. — Released under the Apache License 2.0.