First Verification
Purpose
Prove a freshly installed system is actually running — process, database, console, Agent heartbeat, and the correct observation vs enforcement profile — not merely that a unit is enabled.
Audience
The engineer who just finished Manager and Agent install.
Edition
SHARED probes. Hosting checks are ENTERPRISE_ONLY. GET /api/v1/dashboard/ebpf-health is Enterprise.
Status
SUPPORTED.
Prerequisites
Manager unit or bin/manager started. At least one Agent if you intend to verify fleet. Admin credential from the supported secret contract.
Required permissions
Root for systemctl. Admin JWT for APIs. zwallctl --manager-url set to the real origin (example https://manager.example.com:8443).
Procedure — Manager
systemctl is-active zwall-manager(or confirm the Community process).GET /health/live—{"status":"alive","timestamp":...}unless draining/updating (503). Not a database check.GET /health/ready—status: ready,database: ok. 503 listschecks(listener_admission_incomplete,database: timeout/unavailable/not_configured, optional cluster/blocking keys).GET /healthandGET /api/v1/health— compatibility only; prefer live/ready.- Open
/loginand authenticate (username/password, optional TOTP). JSON login returnstoken,expires_at,username,role— notsession_token. - Optional:
GET /api/v1/auth/statuswith the session cookie. - If
metrics.enabled:GET /metricsas admin. Unauthenticated scrape must fail.
curl -k https://manager.example.com:8443/health/live
curl -k https://manager.example.com:8443/health/ready
zwallctl login --manager-url https://manager.example.com:8443 --username admin
zwallctl pingProcedure — Agent (any profile)
- Unit active:
zwall-agentor Hosting loader + Hosting Agent. Do not expect both jobs on one shared hosting node. zwallctl list-agentsafter login.GET /api/v1/agentsshows the Agent. Community: fourth Agent rejected.- Heartbeat continuing (console status /
last_heartbeat; offline afteragents.timeoutexample2m).
Procedure — Virtualization Agent
- Unit
zwall-agentactive as root. GET /api/v1/virtualization/vmsand/interfaces— non-empty on a libvirt host with workloads.GET /api/v1/dashboard/ebpf-health(Enterprise).- Optional
zwallctl status --agent ID. - Policy path: create a rule or block; confirm sync. Use testing mode before first drop (
zwallctl test-flush-status). Do not test first-drop on a Hosting profile.
Procedure — Hosting Agent (Enterprise)
systemctl is-active zwall-hosting-ebpf-loadersystemctl is-active zwall-hosting-agentorzwall-hosting-agent-v2- Socket
/run/zwall-hosting-ebpf/observer.sock GET /api/v1/agents/:id/hosting/status— sources explained (permission_blocked/source_not_present/active);observation_onlyGET /api/v1/agents/:id/hosting/events— category-safe projection- Drops remain zero for observation programs
- Negative: restart API and rule assign return 409
Verification
All applicable rows in the tables above pass. CLI default port 8080 is not a pass if the Manager listens on 8443.
Expected result
Control plane ready, Agents listed, Hosting observing or Virtualization able to enforce — not both jobs silently mixed.
Failure modes
Scroll sideways to see the full table. Use the arrow keys when focused.
| Split | Next |
|---|---|
| live fail | Manager unavailable |
| ready database fail | PostgreSQL / credentials / ssl_mode |
| Agent missing | Enrollment, Agent cannot enroll |
| Hosting empty | Hosting validation |
| No eBPF health | Virtualization verification |
Troubleshooting
Diagnostics, Troubleshooting index.
Security considerations
-k is for untrusted lab certs only. Do not disable Agent verify_tls to pass this checklist.
Limitations
Does not certify OS/kernel matrix, secret custody, or backup.