bvandeusen
9eda04e57b
polish(host_agent): settings table padding + confirm guards + widget flex rows
...
- settings_list: use global .table class for proper cell padding,
wrap confirm() on rotate/delete submit, use btn-sm and btn-danger
for clearer destructive affordance
- widget_table: replace naked table (unstyled, header wrap) with
flex rows matching docker/snmp widget convention, compact labels,
health dot colored by worst-of cpu/mem/disk thresholds
2026-04-15 18:25:48 -04:00
bvandeusen
7468806bad
feat: add host_agent plugin — push-model host resource monitoring
...
Lightweight stdlib-only Python agent runs on each monitored host,
collects CPU / memory / disk / load / uptime from /proc every 30s,
and POSTs signed payloads to the Roundtable ingest endpoint. One-line
curl-pipe installer creates a hardened systemd unit; admin UI manages
host registrations with rotate / revoke.
- agent.py: 370 LoC single-file daemon, ring buffer + exponential backoff
- ingest route: bearer-token auth, metric expansion into plugin_metrics
- install.sh.j2: systemd unit with NoNewPrivileges / ProtectSystem / ProtectHome
- settings UI: add host / rotate token / delete registration (admin-only)
- dashboard widgets: fleet-glance table + per-host history chart
- stale-agent scheduler: 60s log warning for agents past 180s silence
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 01:04:51 -04:00