What the agent collects
The agent is a single Go binary that observes and summarizes only. It never runs remediation, never opens an inbound port, and never accepts a command from the server.
What it collects
| Collector | What it reports |
|---|---|
| Host | Hostname, OS and version, kernel, architecture, a stable machine fingerprint |
| Metrics | System metrics such as CPU, memory and disk usage over time |
| Packages | Installed packages, pending updates, security updates, and whether a restart is required |
| Services | Running and failed services (failed units are named) |
| Domains | Domains served, read from local Apache / Nginx virtual hosts |
| Certificates | TLS certificates in use, with issuer, subject and expiry |
How often
Collection runs on the interval you set with --interval (default one minute). Metrics benefit from a short cadence; inventory-style facts change rarely and are simply re-sent each pass. Everything is summarized on the host before transmission — Demerzel receives compact facts, not raw log streams.
Idempotent by design
Each observation carries a unique, time-ordered id, so retries and overlapping runs never create duplicates. If the network blips, the agent simply sends again — the server records each fact exactly once.
Outbound-only. The agent talks to Demerzel over HTTPS and nothing talks to the agent. There is no listening socket to secure.