No results
1
Agents Übersicht
Claude edited this page 2026-06-29 21:38:23 +00:00
Table of Contents
Agents (Übersicht)
theProx kennt drei Agenten-Typen. Der Node-Agent läuft auf dem Proxmox-Host und spricht direkt mit dem Backend; die beiden VM-Guest-Agenten laufen innerhalb der Gäste und melden sich beim Node-Agent ihres Hosts.
Backend ──WSS──┐
└── Node-Agent (Host, Rust) ── TCP :9100 ──┬── VM-Guest-Agent (Linux/FreeBSD, Rust)
│ └─ HTTP :9101 (Binary-Bootstrap) └── VM-Guest-Agent (Windows, Rust)
Die drei Agenten
| Agent | Crate / Version | Läuft auf | Doku |
|---|---|---|---|
| Node-Agent | theprox-node-agent |
Proxmox-Host (systemd, root) | Node-Agent |
| VM-Guest-Agent | theprox-vm-agent 1.6.1 |
Linux + FreeBSD/pfSense (systemd) | VM-Guest-Agent (Linux & FreeBSD/pfSense) |
| Windows-VM-Guest-Agent | theprox-vm-agent-windows 1.9.0 |
Windows (Dienst) | Windows-VM-Guest-Agent |
Gemeinsames Modell der Guest-Agenten
Beide Guest-Agenten sind eigenständige Rust-Crates, teilen sich aber Protokoll und Ablauf:
- Verbindung: ausgehender TCP-Connect zum Node-Agent des eigenen Hosts (Default-Port 9100) — nicht zum Backend. Der Node-Agent relayt die Nachrichten über seine WebSocket-Verbindung ans Backend.
- Protokoll: zeilenweise JSON (newline-delimited) über die TCP-Verbindung.
- Enrollment: Beim Connect sendet der Agent
{token, vmid, …}; dasauth_okkann ein Scan-Intervall überschreiben (scan_interval_seconds). Die Tokens werden vom Backend beim Node-Agent-Auth gebündelt registriert. - Konfiguration: lokale
agent.confmitproxy_ip,proxy_port(9100),token,vmidsowie optionalen Intervallen (metrics_interval,scan_interval,update_interval). Ohneproxy_ip/token/vmidstartet der Agent nicht. - Drei Loops: Metriken (CPU/RAM/Netz, je 1-s-Doppelmessung), Logs (Tail definierter Quellen mit Cursor-Persistenz), Scan (OS/Kernel/Updates/Docker/Disk/Netzwerk).
- Commands: Update ausführen, Update-Preview, Self-Update (lädt neues Binary, installiert mit Cross-Device-Fallback), Log-Tail steuern.
- Bootstrap: Der Node-Agent stellt auf :9101 einen HTTP-Server bereit, über den Gäste ihr Agent-Binary ohne Backend-Zugriff beziehen.
Wie beim Node-Agent existieren auch hier ältere Python-Varianten (
VM-Guest-Agent/vm_agent.py,VM-Guest-Agent/pfsense_agent.py) parallel zur kanonischen Rust-Implementierung. Konsolidierung analog zu #2.