Network Worker API — Netzwerk-Überwachung & Discovery
Der Network Worker ist ein Python-basierter Agent, der SNMP-Polling, SSH-Konfigurationsbackups, Netzwerk-Discovery, Ping-Monitoring und SIP-Monitoring durchführt.
Inhalt
1. Authentifizierung
Alle Endpunkte (außer /download) erfordern einen Bearer Token im Header:
Authorization: Bearer <api_token>
Das Token wird bei der Worker-Einrichtung generiert und in der network_workers-Tabelle gespeichert. Der Worker muss aktiviert sein (is_enabled = true).
Basis-URL: /api/network-worker
2. POST /heartbeat
Worker-Heartbeat — aktualisiert Status und Version.
| Feld | Typ | Beschreibung |
|---|---|---|
| hostname | string | Worker-Hostname |
| ip_address | string | Worker-IP |
| version | string | Worker-Version |
| capabilities | array | Unterstützte Features |
Antwort (200)
{ "success": true, "poll_interval": 30 }
3. GET /tasks
Holt bis zu 10 ausstehende Tasks. Jeder zurückgegebene Task wird als „gesendet" markiert.
Antwort (200)
{
"success": true,
"tasks": [
{
"id": 123,
"type": "snmp_poll_full",
"parameters": {},
"device": {
"id": 1, "ip_address": "192.168.1.1",
"hostname": "switch-01", "type": "switch",
"manufacturer": "HP", "model": "2530-48G"
},
"snmp": { "version": "v2c", "community": "public", "timeout_ms": 5000, "retries": 2 },
"ssh": { "username": "admin", "password": "***", "port": 22 }
}
],
"poll_interval": 30
}
Credentials (snmp, ssh) werden nur mitgeliefert, wenn der Task-Typ sie benötigt und für das Gerät hinterlegt sind.
GET /scheduled-tasks
Holt alle aktiven wiederkehrenden Tasks für autonome Ausführung. Enthält zusätzlich schedule_cron und interval_seconds.
4. POST /results
Übermittelt Ergebnisse für einen bestimmten Task.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| task_id | integer | Ja | Task-ID |
| status | string | Ja | running, completed, failed |
| error_message | string | Nein | Fehlerbeschreibung |
| data | object | Nein | Task-spezifische Ergebnisdaten |
Bei wiederkehrenden Tasks wird der Task nach Abschluss automatisch mit neuem next_execution_at zurückgesetzt. Fehlgeschlagene Tasks werden bei verfügbaren Retries erneut gequeued.
5. Daten-Einreichung
POST /data
Übermittelt Daten unabhängig von einem Task (Offline-Betrieb).
| Feld | Typ | Beschreibung |
|---|---|---|
| data_type | string | z. B. snmp_poll_full, snmp_poll_interfaces |
| device_id | integer | Geräte-ID |
| data | object | Ergebnisdaten (gleiche Struktur wie Task-Results) |
POST /data/batch
Batch-Einreichung mehrerer Datensätze auf einmal.
{
"data_type": "snmp_poll_full",
"items": [
{ "device_id": 1, "data": { ... } },
{ "device_id": 2, "data": { ... } }
]
}
6. Konfiguration & Netzwerke
GET /config
Ruft die Worker-Konfiguration ab.
{
"success": true,
"config": {
"poll_interval": 30,
"sync_interval": 30,
"autonomous_check_interval": 60,
"max_retries": 3,
"offline_cache_days": 7
},
"worker": { "id": 1, "name": "Worker 1", "customer_id": 42 }
}
GET /networks
Verfügbare Netzwerke für Discovery-Scans.
{
"success": true,
"networks": [
{ "id": 1, "name": "Office LAN", "cidr": "192.168.1.0/24", "gateway": "192.168.1.1", "vlan_id": 10 }
]
}
GET /devices/{'{id}'}/credentials
SNMP- und SSH-Zugangsdaten für ein bestimmtes Gerät (Gerät muss zum Worker-Kunden gehören).
7. Ping-Monitoring
GET /ping-monitors
Aktive Ping-Überwachungsziele für diesen Worker. Zwei Typen:
- Geräte-basiert (mit
device_id) — aus den Monitoring-Checks des Geräts - Standalone (mit
target_id) — eigene Ping-Ziele
POST /ping-event
Meldet Ausfall-Start (outage_start) oder -Ende (outage_end). Erstellt/löst automatisch Monitoring-Alerts.
| Feld | Typ | Beschreibung |
|---|---|---|
| device_id / target_id | integer | Eines von beiden erforderlich |
| event_type | string | outage_start oder outage_end |
| packets_sent / packets_lost | integer | Paket-Statistiken |
| avg_latency_ms | numeric | Durchschnittliche Latenz |
POST /ping-summary
Periodische Latenz-Statistiken (packets_sent, packets_lost, avg/min/max_latency_ms).
8. SIP-Monitoring
GET /sip-monitors
Aktive SIP-Überwachungsziele. Enthält: host, port, transport (udp/tcp), monitor_type (options), uri, interval, timeout, threshold.
POST /sip-event
Status-Änderung melden (event_type: "status_change"). Felder: target_id, previous_status, new_status, response_code, response_time_ms.
POST /sip-summary
Periodische SIP-Statistiken: checks_total, checks_failed, avg/min/max_response_time_ms.
9. Log-Streaming
POST /logs
Überträgt bis zu 100 Log-Einträge pro Request.
{
"entries": [
{
"level": "info",
"message": "SNMP poll completed for 192.168.1.1",
"source": "snmp_poller",
"context": { "device_id": 1, "duration_ms": 450 },
"timestamp": "2026-03-03T10:00:00Z"
}
]
}
Erlaubte Level: debug, info, warning, error, critical
10. Auto-Update
GET /check-update
GET /api/network-worker/check-update?version=a1b2c3d4e5f6g7h8
{
"success": true,
"latest_version": "x9y8z7w6v5u4t3s2",
"update_available": true,
"download_url": "https://it-dashboard.de/api/network-worker/download"
}
GET /download (öffentlich)
Worker-Paket als ZIP herunterladen. Keine Authentifizierung erforderlich.
11. Unterstützte Task-Typen
| Task-Typ | Ziel | Beschreibung |
|---|---|---|
| snmp_poll_full | Gerät/Switch | Komplett-Poll: System + Interfaces + MAC + ARP + Storage + Drucker + NAS + USV |
| snmp_poll_system_info | Gerät/Switch | System-Info (sysDescr, sysName, sysUptime, ...) |
| snmp_poll_interfaces | Gerät/Switch | Netzwerk-Interfaces / Switch-Ports |
| snmp_poll_mac_table | Gerät/Switch | MAC-Adress-Tabelle |
| snmp_poll_arp_table | Gerät | ARP-Tabelle |
| snmp_poll_storage | Gerät | Speicher-Volumes (HOST-RESOURCES-MIB) |
| snmp_poll_printer | Gerät | Seitenzähler, Toner-Füllstände |
| snmp_poll_nas | Gerät | NAS-Daten (Synology/QNAP/generisch) |
| snmp_poll_ups | Gerät | USV-Status (APC/Eaton/CyberPower/RFC 1628) |
| snmp_poll_vlan_table | Switch | VLAN-Tabelle (Q-BRIDGE-MIB) |
| ssh_backup_config | Gerät | Konfigurations-Backup via SSH |
| ssh_poll_vlans | Switch | VLANs via SSH abfragen |
| securepoint_sync_full | Firewall | Securepoint Komplett-Sync (Config + Interfaces + Rules) |
| securepoint_sync_config | Firewall | Securepoint Konfigurations-Backup |
| securepoint_sync_rules | Firewall | Firewall-Regeln synchronisieren |
| securepoint_sync_interfaces | Firewall | Interfaces und Zonen synchronisieren |
| discovery_* | Netzwerk | Network Discovery — automatische Geräteerkennung |