IT-Doku Agent API — Geräte-Inventar & Monitoring
Der IT-Doku Agent läuft auf Windows-, macOS- und Linux-Geräten und übermittelt automatisch Hardware-Inventar, Software-Listen, Monitoring-Ergebnisse, Backup-Status und Windows-Update-Informationen.
Inhalt
- 1. Authentifizierung
- 2. POST /api/agent/register
- 3. POST /api/agent/checkin
- 4. GET /api/agent/tasks
- 5. POST /api/agent/task-result
- 6. POST /api/agent/monitoring-result
- 7. POST /api/agent/backup-status
- 8. Windows Update Endpoints
- 9. MeshCentral-Integration
- 10. Agent Auto-Update
- 11. Agent-Download (öffentlich)
- 12. Fehlercodes
1. Authentifizierung
Die Agent-API nutzt zwei Token-Typen, die als Parameter im Request-Body (POST) oder als Query-Parameter (GET) übergeben werden:
| Token | Verwendung | Bezugsquelle |
|---|---|---|
| customer_token | Nur für die Erstregistrierung | Kunden-Einstellungen → Agent-Registrierungstoken |
| agent_token | Alle weiteren Endpunkte | Wird bei der Registrierung zurückgegeben (64 Zeichen) |
Hinweis: Es wird kein Bearer-Header verwendet. Tokens werden direkt im Body bzw. Query-String übergeben.
2. POST /api/agent/register
Registriert ein neues Gerät und gibt einen einmaligen Agent-Token zurück.
Request
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| customer_token | string | Ja | Kunden-Registrierungstoken |
| hostname | string | Ja | Hostname des Geräts |
| primary_ip | string | Nein | IP-Adresse |
| primary_mac | string | Nein | MAC-Adresse (wird für Device-Matching verwendet) |
Antwort (Erfolg, 200)
{
"success": true,
"message": "Device registered successfully",
"agent_token": "a1b2c3d4...64 Zeichen",
"device_id": 123
}
Wichtig: Der agent_token wird nur einmal zurückgegeben. Falls ein Gerät bereits registriert ist, wird 409 Conflict zurückgegeben.
Device-Matching
Beim Registrieren wird nach einem bestehenden Gerät gesucht (Reihenfolge):
- Hostname-Match innerhalb des Kunden
- IP-Adress-Match
- MAC-Adress-Match
Wird ein Gerät ohne Token gefunden (z. B. durch Network Discovery erstellt), wird es mit dem Agent verknüpft.
3. POST /api/agent/checkin
Haupt-Heartbeat: Überträgt das komplette Hardware-Inventar und empfängt Tasks + Monitoring-Konfiguration. Standard-Intervall: 15 Minuten.
Request
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| agent_token | string | Ja | Agent-Token |
| system | object | Ja | System-Informationen (siehe unten) |
| interfaces | array | Nein | Netzwerk-Interfaces (mac_address, ip_address, speed, ...) |
| disks | array | Nein | Festplatten (name, size_bytes, free_bytes, filesystem, ...) |
| software | array | Nein | Installierte Software (name, version, vendor, ...) |
| services | array | Nein | Windows-Dienste (name, display_name, status, start_type) |
| installed_updates | array | Nein | Installierte Updates (kb_number, description, installed_on) |
| agent_version | string | Nein | Aktuelle Agent-Version |
system-Objekt
Felder: hostname (Pflicht), os_name, os_version, os_build, os_architecture, manufacturer, model, serial_number, cpu_name, cpu_cores, cpu_threads, ram_bytes, primary_ip, primary_mac, is_virtual, hypervisor_type, domain
Antwort (Erfolg, 200)
{
"success": true,
"message": "Checkin successful",
"device_id": 123,
"next_checkin": 900,
"tasks": [
{ "id": 456, "type": "restart_service", "payload": { "service": "Spooler" } }
],
"monitoring": {
"enabled": true,
"checks": [ { "id": 1, "type": "cpu", "threshold": 90, "operator": ">" } ]
}
}
4. GET /api/agent/tasks
Schnelles Task-Polling ohne vollständigen Checkin. Gibt bis zu 10 ausstehende Tasks zurück.
Request
GET /api/agent/tasks?agent_token=abc123...
Antwort (200)
{
"success": true,
"tasks": [
{ "id": 456, "type": "restart_service", "payload": { "service": "Spooler" } }
]
}
5. POST /api/agent/task-result
Meldet das Ergebnis eines ausgeführten Tasks zurück.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| agent_token | string | Ja | Agent-Token |
| task_id | integer | Ja | Task-ID |
| status | string | Ja | running, completed oder failed |
| result | string | Nein | Ausgabe/Ergebnis-Text |
| exit_code | integer | Nein | Exit-Code des Befehls |
6. POST /api/agent/monitoring-result
Übermittelt Monitoring-Check-Ergebnisse. Nur verfügbar, wenn Monitoring für das Gerät aktiviert ist.
| Feld | Typ | Beschreibung |
|---|---|---|
| agent_token | string | Agent-Token |
| results | array | Array von Check-Ergebnissen |
| results[].check_id | integer | Monitoring-Check-ID |
| results[].triggered | boolean | Schwellwert überschritten? |
| results[].value | mixed | Gemessener Wert |
| results[].message | string | Alert-Beschreibung |
Automatische Aktionen
- Alert erstellen: Bei
triggered: truewird ein Monitoring-Alert erzeugt (dedupliziert) - Auto-Restart: Bei Dienst-Checks kann automatisch ein Neustart-Task erstellt werden
- Auto-Remediation: Bei konfiguriertem Script wird
AutoRemediationServiceausgeführt - Alert auflösen: Bei
triggered: falsewerden offene Alerts geschlossen
7. POST /api/agent/backup-status
Meldet Backup-Job-Status von TERRA Cloud, Veeam, Windows Server Backup, Synology ABB oder Custom-Providern.
| Feld | Typ | Beschreibung |
|---|---|---|
| agent_token | string | Agent-Token |
| backup_jobs | array | Array von Backup-Jobs |
| backup_jobs[].provider | string | terra_cloud, veeam, windows_server_backup, synology_abb, custom |
| backup_jobs[].job_name | string | Name des Backup-Jobs |
| backup_jobs[].status | string | ok, warning, error, missed, running, unknown |
8. Windows Update Endpoints
POST /api/agent/update-status
Überträgt Windows-Update-Scan-Ergebnisse (verfügbare Updates, Status).
| Feld | Beschreibung |
|---|---|
| update_status.windows_version | z. B. „Windows 11 Pro" |
| update_status.pending_count | Anzahl ausstehender Updates |
| update_status.security_count | Davon sicherheitsrelevant |
| update_status.reboot_required | Neustart erforderlich? |
| update_status.updates[] | Array: kb_number, title, severity, size_bytes, category |
Die Antwort enthält ggf. tasks mit windows_update_install-Aufträgen, falls genehmigte Updates anstehen und das Wartungsfenster es erlaubt.
POST /api/agent/update-install-result
Meldet das Ergebnis einer Update-Installation zurück.
| Feld | Typ | Beschreibung |
|---|---|---|
| installed_count | integer | Anzahl erfolgreich installierter Updates |
| failed_count | integer | Anzahl fehlgeschlagener Updates |
| reboot_required | boolean | Neustart erforderlich? |
| results[] | array | Pro KB: kb, status (installed/failed), error |
9. MeshCentral-Integration
GET /api/agent/meshcentral-config
Ruft die MeshCentral-Installationskonfiguration ab, um den MeshCentral-Agent auf dem Gerät einzurichten.
GET /api/agent/meshcentral-config?agent_token=abc123&platform=windows64
Mögliche platform-Werte: windows64, linux64, linux-arm64, macos, macos-arm64
POST /api/agent/meshcentral-registered
Meldet, dass der MeshCentral-Agent installiert wurde. Triggert automatisches Device-Linking.
| Feld | Beschreibung |
|---|---|
| agent_token | Agent-Token |
| node_id | MeshCentral Node-ID |
| dns_hostname | DNS-Hostname für Matching |
10. Agent Auto-Update
GET /api/agent/check-update
Prüft, ob eine neuere Version des Agent-Scripts verfügbar ist.
GET /api/agent/check-update?agent_token=abc123&hash=a1b2c3d4e5f6g7h8
Antwort (200)
{
"success": true,
"latest_hash": "a1b2c3d4e5f6g7h8",
"update_available": true,
"download_url": "https://it-dashboard.de/api/agent/download-script"
}
GET /api/agent/download-script
Lädt das aktuelle Agent-Script für das OS des Geräts herunter (erfordert agent_token).
11. Agent-Download (öffentlich)
Öffentlicher Endpunkt, keine Authentifizierung erforderlich. Die Scripts enthalten keine Geheimnisse.
GET /api/agent/download-agent?os=windows
GET /api/agent/download-agent?os=macos
GET /api/agent/download-agent?os=linux
GET /api/agent/download-agent?type=synology-backup
12. Fehlercodes
| Code | Bedeutung |
|---|---|
| 401 | Ungültiger Token (customer_token oder agent_token) |
| 400 | Monitoring nicht aktiviert / ungültige Anfrage |
| 404 | Task oder Script nicht gefunden |
| 409 | Gerät bereits registriert (Doppel-Registrierung) |
| 422 | Validierungsfehler |
| 500 | Serverseitiger Verarbeitungsfehler |
| 503 | MeshCentral nicht konfiguriert |
Alle Fehler folgen dem Format:
{ "success": false, "message": "Fehlerbeschreibung" }