Collector¶
The collector is a Linux VM in the customer network running remote checks:
- SNMP (v1/v2c/v3) — switches, routers, firewalls, UPSes, storage
- Ping — reachability
- SSH —
ssh_command,ssh_cpu,ssh_mem,ssh_disk - HTTP / HTTPS —
http,ssl_certificate - Discovery — nmap scans
Push-based: fetches config from server (GET /api/v1/config/collector/<id>), runs checks, sends results back (POST /receiver/check-result).
Prerequisites¶
| What | Min | Recommended |
|---|---|---|
| OS | Debian 12, Ubuntu 22.04, RHEL 9, AlmaLinux 9, SUSE 15, Arch | Debian 13 |
| Architecture | amd64 | amd64 |
| RAM | 1 GB | 2 GB at ~500 hosts |
| Disk | 5 GB | 20 GB |
| Outbound 443 | to Vesana server | – |
| Network sight | to monitored subnet | – |
nmap is auto-installed by the installer.
Step 1 — Register collector in Vesana¶
Admin → Collectors → New:
| Field | Example |
|---|---|
| Name | acme-collector-01 |
| Tenant | Acme GmbH |
| Description | Customer LAN, HQ |
After Save, Vesana shows an API key once:
Copy immediately — only the hash is visible afterwards.
Step 2 — Install collector¶
One-command installer on the Linux VM, as root:
What happens:
- Distro detection (Debian / RHEL / AlmaLinux / SUSE / Arch)
- Packages:
nmap,snmp(client),ca-certificates,curl - Binary into
/usr/local/bin/vesana-collector - Config:
/etc/vesana/collector.env - systemd unit
/etc/systemd/system/vesana-collector.service systemctl enable --now vesana-collector
Re-run safe — overwrites binary + config.
Step 3 — Verify¶
In Vesana: Admin → Collectors — the collector should send a heartbeat within 60 s (timestamp updates). „Online" means: last seen less than 3 minutes ago — the same window applies consistently across the dashboard tile, collector list, and tenant statistics.
On the collector VM:
Step 4 — Assign hosts to collector¶
When creating a host with passive checks: pick collector from dropdown. Existing hosts: Host detail → Assign collector.
The collector polls config every 60 s — new hosts/services appear with a small delay. Threshold changes (warn/critical) are exempt from that and take effect immediately: the server applies them server-side to every incoming result, regardless of the last config poll.
Discovery from the collector¶
Discovery scans run via the collector. Workflow: Hosts → Discovery.
The collector automatically detects which subnets it can see (local network interfaces, routing table, and optionally an SNMP walk of the default gateway routes) and reports that back to the server — this makes it easier to pick sensible scan ranges without having to look up the subnet by hand.
Log ingestion via the collector¶
The collector's API key can also be used to ingest logs for multiple hosts at once (POST /api/v1/logs/ingest with X-API-Key instead of an agent token). Typical case: a central syslog receiver on the collector VM collects packets from switches, firewalls, and NAS systems; each log entry carries its own host_id so it's attributed to the right host. Cross-tenant attribution is rejected server-side.
Increase logging¶
sudo sed -i 's|^VESANA_LOG_LEVEL=.*|VESANA_LOG_LEVEL=debug|' /etc/vesana/collector.env
sudo systemctl restart vesana-collector
debug is verbose — switch back to info for production.
Multiple collectors¶
Larger environments or multiple sites: any number of collectors. One per site is common. Hosts are assigned per service to a collector — services of one host can split across collectors.
Load balancing isn't automatic — if a collector is overloaded, manually rebalance hosts.
Auto-update¶
Collector auto-updates on next config refresh (60 s) when the server reports a newer version. Same mechanism as agents: see Agent versioning.
Troubleshooting¶
Collector not online¶
- Outbound 443 open?
- DNS resolvable?
- API key correct?
journalctl -u vesana-collector --since '5 minutes ago'
Common issues mirror agent troubleshooting — same mechanics.
SNMP check failing¶
If that fails, it's not the collector — it's network / SNMP config / community.
Discovery finds nothing¶
-sn is ping scan. If that finds nothing either, subnet visibility is the issue.
Uninstall¶
sudo systemctl stop vesana-collector
sudo systemctl disable vesana-collector
sudo rm /etc/systemd/system/vesana-collector.service
sudo rm -rf /etc/vesana
sudo rm /usr/local/bin/vesana-collector
sudo systemctl daemon-reload
In Vesana: Admin → Collectors → Delete. Hosts assigned to the deleted collector must be reassigned, otherwise their services go NO_DATA.
Next¶
- Hosts → Discovery — use the collector for net scans
- Hosts → SNMP sensor picker — discover sensors
- Agent versioning — same update mechanism