Verification
Virtualization Agent verification
Purpose
Prove the Virtualization Agent is online, attached, and able to receive policy before you enforce on a live path.
Audience
Deployment engineers signing off a KVM host.
Edition
SHARED. GET /api/v1/dashboard/ebpf-health is Enterprise in the v1 router.
Status
SUPPORTED as an operator checklist. Not a performance proof.
Prerequisites
zwall-agent.serviceinstalled from the admitted release (or Communitybin/agent)- Manager ready
- Admin credentials
- libvirt workloads if you want a non-empty VM list
Required permissions
Root on the hypervisor. Admin on the Manager. Hosting 409s are expected if you point these checks at a Hosting Agent — use this checklist only on zwall-agent.service.
Procedure
- Unit and identity
systemctl is-active zwall-agent
systemctl show zwall-agent -p User -p ExecStart -p CapabilityBoundingSetExpect User=root, ExecStart=/opt/zcs/bin/zwall-agent --config /etc/zcs/agent.yml on Enterprise, capabilities including CAP_NET_ADMIN CAP_NET_RAW CAP_SYS_ADMIN.
- Manager inventory
zwallctl login --manager-url https://manager.example.com:8443 --username admin
zwallctl list-agents
zwallctl status --agent IDGET /api/v1/agents lists the Agent online. Community: a fourth Agent is rejected.
- Virtualization inventory
GET /api/v1/virtualization/vmsGET /api/v1/virtualization/interfaces
Non-empty on a libvirt host that has workloads. Empty on a host with no domains is not a failure.
- eBPF health
GET /api/v1/dashboard/ebpf-health (Enterprise admin). Confirm firewall programs, not Hosting observe.
- Testing mode before first drop
zwallctl test-flush-status
zwallctl test-flushInspect. A test rule in testing mode does not drop. An explicit block on this enforcement node does, after you disable testing mode when intended.
- Policy path
Assign a rule to this Agent id. Confirm sync (zwallctl list-rules). If you receive 409 cannot receive rules, the target is Hosting — stop.
- Process control
Use systemd to start/stop/restart. Do not expect zwallctl start / stop to work remotely.
Verification table
Scroll sideways to see the full table. Use the arrow keys when focused.
| Check | Pass |
|---|---|
| Unit active as root | active |
Agent in GET /api/v1/agents | online |
| VMs/interfaces | list or empty-with-reason |
| eBPF health (Enterprise) | firewall programs attached |
| Testing mode understood | status matches intent |
| Hosting units not used as drop engine on a panel host | N/A here; do not mix |
Expected result
Enforcement-capable Agent registered, programs attached, inventory visible, policy assignable. First drop only after testing mode is deliberately disabled.
Failure modes
Scroll sideways to see the full table. Use the arrow keys when focused.
| Result | Meaning |
|---|---|
| Unit inactive | journal; kernel preflight; config |
| Agent offline | enrollment/TLS/heartbeat (agents.timeout example 2m) |
| eBPF health empty | attach/integrity; wrong profile |
| 409 on rules | Hosting Agent id |
| VM list empty on busy hypervisor | libvirt URI / virtualization.enabled |
Troubleshooting
Security considerations
Do not disable TLS verification or artifact integrity to pass the checklist.
Limitations
Does not certify kernel matrix, UID/GID, edge mode, or HA Manager failover.