Skip to content

Agent - Uebersicht ​

Der DATAZONE Control Agent ist ein leichtgewichtiger Dienst, der auf jedem verwalteten Host installiert wird. Er sammelt Systemdaten, fuehrt Befehle aus und stellt die Verbindung zum Backend her.

Funktionen ​

FunktionBeschreibung
HeartbeatRegelmaessiges Senden von Systemmetriken (CPU, RAM, Disk, Uptime)
System-InformationenSammlung von Hardware-, Software- und Netzwerkdaten
Script-AusfuehrungEmpfangen und Ausfuehren von Scripts vom Backend
Remote ShellWebSocket-basierte Terminal-Session
TunnelPort-Forwarding ueber WebSocket-Verbindung
SSH-ServerEingebetteter SSH-Server fuer Agent-SSH-Tunnel
Auto-UpdateSelbst-Update des Agents auf neue Versionen
Task-VerarbeitungEmpfang und Ausfuehrung von Backend-Tasks

Architektur ​

┌─────────────────────────────────────┐
│           DATAZONE Agent            │
├─────────────────────────────────────┤
│  WebSocket Client                   │
│  ├── Heartbeat Sender (30s)         │
│  ├── Task Receiver (30s)            │
│  ├── Ping/Pong (25s)               │
│  ├── Shell Handler                  │
│  └── Tunnel Handler                 │
├─────────────────────────────────────┤
│  System Collector                   │
│  ├── Hardware Cache (einmalig)      │
│  ├── Metrics (pro Heartbeat)        │
│  ├── Update Cache (stuendlich)      │
│  └── Windows Cache (Hintergrund)    │
├─────────────────────────────────────┤
│  Embedded SSH Server                │
├─────────────────────────────────────┤
│  Auto-Updater (5 min)              │
├─────────────────────────────────────┤
│  Konfiguration (agent.json)         │
└─────────────────────────────────────┘

Kommunikation ​

Der Agent kommuniziert ausschliesslich ueber WebSocket mit dem Backend:

  1. Der Agent baut eine ausgehende WebSocket-Verbindung zum Backend auf
  2. Ueber diese Verbindung werden bidirektional Nachrichten ausgetauscht
  3. Kein eingehender Port muss auf dem Host geoeffnet werden

Firewall-freundlich

Da der Agent nur eine ausgehende Verbindung aufbaut, funktioniert er auch hinter NAT und Firewalls ohne Port-Freigaben auf dem Host.

Reconnect-Verhalten ​

Bei Verbindungsabbruch versucht der Agent automatisch eine Neuverbindung:

  • Startverzoegerung: 1 Sekunde
  • Maximale Verzoegerung: 30 Sekunden
  • Algorithmus: Exponentielles Backoff (Verzoegerung verdoppelt sich bei jedem Fehlversuch)
  • Reset: Nach erfolgreicher Verbindung wird die Verzoegerung auf 1 Sekunde zurueckgesetzt

Heartbeat-Intervalle und Datensammlung ​

Timing-Uebersicht ​

OperationIntervallBeschreibung
Heartbeat30 SekundenSendet Metriken und Systemdaten an das Backend
Task-Polling30 SekundenPrueft auf neue Aufgaben vom Backend
WebSocket-Ping25 SekundenErkennt abgebrochene Verbindungen (10s Timeout)
Auto-Update-Check5 MinutenPrueft auf neue Agent-Versionen

Heartbeat-Daten (alle Plattformen) ​

Jeder Heartbeat enthaelt folgende Basisdaten:

FeldBeschreibungErfassung
cpuCPU-Auslastung in ProzentEchtzeit (500ms Messung)
memoryRAM-Auslastung in ProzentEchtzeit
memory_totalGesamter ArbeitsspeicherEchtzeit
diskFestplattenauslastung in ProzentEchtzeit
uptimeBetriebszeit in SekundenEchtzeit
hostnameHostname des SystemsEchtzeit
agent_versionAgent-VersionFest

Plattform-spezifische Daten ​

Linux / PVE / PBS ​

DatentypErfassungsintervallDetails
Hardware-InfoEinmalig beim StartCPU, RAM, Mainboard, BIOS, Seriennummern
Ausstehende UpdatesStuendlich (1h Cache)apt list --upgradable bzw. dnf check-update
Docker-ContainerPro Heartbeat (30s)Name, Image, Status, Ports
SSH-SessionsPro Heartbeat (30s)Benutzer, Quell-IP, Login-Zeit
Cron-JobsPro Heartbeat (30s)System- und Benutzer-Crontabs
Load AveragePro Heartbeat (30s)1/5/15 Minuten Durchschnitt
ServicesPro Heartbeat (30s)Systemd-Dienste mit Status
DisksPro Heartbeat (30s)Partitionen, Mountpoints, Belegung
Netzwerk-InterfacesPro Heartbeat (30s)IPs, MAC, Bytes in/out
Offene PortsPro Heartbeat (30s)Listening TCP/UDP mit Prozess

PVE-spezifisch:

DatentypErfassungsintervallDetails
VMs und ContainerPro Heartbeat (30s)VMID, Name, Status, Ressourcen
StoragesPro Heartbeat (30s)Storage-Pools und Belegung
Backup-Jobs30 Minuten (Cache)Backup-Job-Konfigurationen
Backup-History30 Minuten (Cache)Backup-Ausfuehrungshistorie

PBS-spezifisch:

DatentypErfassungsintervallDetails
DatastoresPro Heartbeat (30s)Datastores und Belegung
BackupsPro Heartbeat (30s)Backup-Liste und -Counts
Sync-JobsPro Heartbeat (30s)Synchronisierungsstatus

OPNsense ​

DatentypErfassungsintervallDetails
Hardware-InfoEinmalig beim StartCPU, RAM, BIOS
InterfacesPro Heartbeat (30s)Interface-Status, IPs, Durchsatz
GatewaysPro Heartbeat (30s)Gateway-Status, Latenz, Paketverlust
VPN-TunnelPro Heartbeat (30s)OpenVPN, IPsec, WireGuard mit Status
RoutenPro Heartbeat (30s)Routing-Tabelle (seit v1.3.0)
Zertifikate6 Stunden (Cache)ACME- und SSL-Zertifikate mit Ablaufdatum (seit v1.3.0)
Unbound DNS StatsPro Heartbeat (30s)DNS-Abfragen, Cache-Hits, Top-Domains (seit v1.3.0)
Nginx Virtual Hosts1 Stunde (Cache)Nginx-Konfigurationen und Server (seit v1.3.0)
ServicesPro Heartbeat (30s)OPNsense-Dienste mit Status
Config-AenderungPro Heartbeat (30s)Letzte config.xml-Aenderung
Externe IPPro Heartbeat (30s)WAN-IP-Adresse
Update-StatusPro Heartbeat (30s)Verfuegbare Firmware-Updates

Windows ​

Windows-Daten werden im Hintergrund in verschiedenen Intervallen gesammelt, um die Systembelastung zu minimieren:

DatentypErfassungsintervallDetails
Hardware-Info24 Stunden (Cache)CPU, RAM, Hersteller, Modell
OS-Version/Domain1 Stunde (Cache)Build, Edition, AD-Domain, DC-Status
Windows-Dienste2 Minuten (Cache)Name, Status, Starttyp
Netzwerk-Interfaces2 Minuten (Cache)Adapter, IPs, DNS
Installierte Software5 Minuten (Cache)Via Winget, Name und Version
Geplante Aufgaben5 Minuten (Cache)Scheduled Tasks
Disk-Informationen5 Minuten (Cache)Laufwerke, Groesse, frei
Windows Updates10 Minuten (Cache)Verfuegbare Updates
Angemeldete BenutzerPro Heartbeat (30s)Aktive Sessions
RustDesk-ID/VersionPro Heartbeat (30s)RustDesk-Remote-ID und Version (falls installiert)
Domain/DC-Status1 Stunde (Cache)AD-Domain, Domain-Controller-Status
Produkt-Typ1 Stunde (Cache)Server / Domain Controller / Workstation

Warum unterschiedliche Intervalle?

Windows-Daten werden gestaffelt erfasst, um PowerShell- und WMI-Abfragen nicht zu haeufen. Schnell aenderbare Daten (Benutzer, Services) werden oefter aktualisiert als selten aenderbare (Hardware, Software).

Reaktionszeiten ​

EreignisReaktionszeit
Host geht offlineMax. 60 Sekunden (2x Heartbeat-Intervall)
Neuer TaskMax. 30 Sekunden (naechster Task-Poll)
Agent-Update verfuegbarMax. 5 Minuten (naechster Auto-Update-Check)
Verbindungsabbruch erkanntMax. 35 Sekunden (25s Ping + 10s Timeout)
Reconnect nach Ausfall1-30 Sekunden (exponentielles Backoff)
Script-AusfuehrungSofort (ueber WebSocket-Nachricht)
Shell-VerbindungSofort (ueber WebSocket-Nachricht)

Plattformen ​

PlattformBinaryBesonderheiten
Linux (amd64)datazone-agent-linux-amd64Systemd-Service
Linux (arm64)datazone-agent-linux-arm64Fuer ARM-Server (Raspberry Pi, etc.)
Windows (amd64)datazone-agent-windows-amd64.exeWindows-Dienst
FreeBSD (amd64)datazone-agent-freebsd-amd64OPNsense-kompatibel

Ressourcenverbrauch ​

RessourceTypischer Wert
RAM10-20 MB
CPU< 1% (im Leerlauf)
Netzwerk~1 KB/s (Heartbeat)
Speicher< 20 MB

Konfiguration ​

Die Agent-Konfiguration wird in einer JSON-Datei gespeichert:

Linux / FreeBSD ​

/etc/datazone/agent.json

Windows ​

C:\ProgramData\DATAZONE\agent.json

Konfigurationsparameter ​

json
{
  "server_url": "wss://control.ihredomain.de",
  "token": "onboarding-token-hier",
  "host_type": "linux",
  "hostname": "web01"
}
ParameterBeschreibung
server_urlWebSocket-URL des Backends
tokenOnboarding-Token fuer die Registrierung
host_typeSystemtyp (linux, windows, pve, pbs, opnsense)
hostnameAnzeigename (optional, wird automatisch ermittelt)

Task-Ausfuehrung ​

Der Agent empfaengt Tasks vom Backend und fuehrt diese aus:

Task-TypTimeoutBeschreibung
Script5 Minuten (Standard)Konfigurierbarer Timeout pro Script
Update30 MinutenSystem-Update (apt/dnf/pkg/Windows Update)
Reboot-Sofortiger Neustart mit 2s Verzoegerung
Agent-Update-Selbst-Aktualisierung des Agent-Binaries

Bei fehlgeschlagener Task-Ergebnis-Uebermittlung wird bis zu 3x mit exponentiellem Backoff (2s, 4s) wiederholt.

Naechste Schritte ​

DATAZONE Control Documentation