Telemetry and Policy Flow
Purpose
Map what travels Manager → Agent (policy) and Agent → Manager (telemetry) without promising lossless, exactly-once, or immutable compliance-grade audit.
Concept
The Manager is the control plane you host. Agents are node runtimes. Operators never program eBPF maps by hand as the supported path; they change objects on the Manager and Agents synchronize.
agents.auto_register is false in the example. Production comments say it must remain false. Admission is pre-register / create, then Agent register with a one-time bootstrap token.
Data/control flow
Policy (Manager → Agent)
- Administrator authenticates to
/api/v1(JWT) or the console (HttpOnly session cookie). - Objects stored in PostgreSQL include firewall rules, CIDR rules, DNS rules, blocked IPs, GeoIP rules, detection settings, and per-agent policy.
- Agents pull/sync using Agent JWT:
POST /api/v1/agents/sync- capability-scoped
/api/v1/agents/:id/sync/... /api/v1/agent-rules/:agent_id/api/v1/agent-policy/:agent_id/api/v1/agent-blocked-ips/api/v1/agent-geoip-rules
- Virtualization Agents load maps into XDP/TC programs (
firewall.o,firewall_egress.o). - Hosting Agents cannot receive rules (HTTP 409). Observation configuration is local YAML plus operator ACLs, not firewall rule assignment.
UID/GID rules (/api/v1/rules/uid-gid) exist but are not a production-complete contract.
Telemetry (Agent → Manager)
- Agents buffer events locally (example spool bounds in Agent logging config) and upload (
POST /api/v1/security-logsand/batch, Agent capability). - Hosting Agents additionally expose category-safe hosting events for admins (
GET /api/v1/agents/:id/hosting/events). Heartbeats carryobservation_onlyand Hosting status. - Virtualization Agents can POST VM data (
POST /api/v1/virtualization/vm-data). - Administrators read
/api/v1/security-logs,/api/v1/security/logs, dashboard logs, and WebSocket/api/v1/dashboard/ws(console hub, not a public stream product). - Optional Prometheus
/metricson the Manager is admin-gated when enabled.
Public copy may say events are collected centrally. It must not promise lossless delivery.
Boundaries
- Agent-facing enroll/sync URLs are operator-internal, not browser cookies.
- Hosting event APIs omit raw payload and customer IPs.
- Security logs include
log_type,source_ip,action,severity(and related packet fields) for non-Hosting families; Hosting network events reject unrestricted packet fields. - Cluster
manager_urlsfailover on the Agent is not a public HA product. - In-product updater campaigns are not the supported production upgrade path.
Edition differences
Scroll sideways to see the full table. Use the arrow keys when focused.
| Flow | Community | Enterprise |
|---|---|---|
| Security-log ingest and list | yes | yes |
| Hosting status/events | no | yes |
dashboard/ebpf-health | not the Enterprise v1 gate | Enterprise |
| AI Preview on selected security events | no | Preview; Hosting sources excluded |
| 3-Agent cap | yes | license |
Common misconceptions
- “Every Agent gets every rule.” Assignment is per Agent; Hosting rejects rules.
- “WebSocket is a SIEM tap.” It is a console update hub.
- “Heartbeat 200 means collectors can read
/var/log/nginx.” Hosting still needs ACLs. - “Approval in AI Preview deployed the rule.” Approval records review intent only.