Appearance
Self-Monitoring (Zabbix)
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
- 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
- Zabbix 7.0:
- Create (or pick) a host for the SeyalRun stack and link the imported SeyalRun Platform template (no agent interface needed).
- Set the template macros on that host:
{$SEYALRUN.MONITOR.URL}=https://<edge-host>:<EDGE_HTTPS_PORT>/webhook/zabbix/monitor{$SEYALRUN.MONITOR.TOKEN}= the stack'sZABBIX_WEBHOOK_HMAC_SECRET(secret-text macro)
- Within a minute the master item polls the endpoint; discovery then populates health, request-rate, error-rate, and uptime items for every service.
