n8n Hyper-V- und Veeam-Monitoring ohne Agenten: Vollständiger Statusbericht mit Graphen und Stromschätzung
Ein täglicher Infrastrukturbericht ist besonders dann nützlich, wenn Hyper-V, Veeam Backup & Replication und mehrere virtuelle Maschinen auf einem zentralen Windows-Server betrieben werden. Die hier dokumentierte Lösung verbindet n8n mit PowerShell 7 und OpenSSH. Sie liest den Zustand des Hyper-V-Hosts, aller virtuellen Maschinen, der Datenträger, Checkpoints, Hyper-V-Dienste und Veeam-Backups aus und versendet daraus automatisch einen HTML-Statusbericht per E-Mail.
Die Besonderheit: Auf den virtuellen Maschinen muss kein eigener Monitoring-Agent installiert werden. Hyper-V liefert Power-State, Heartbeat, RAM-Zuweisung, CPU-Auslastung, Uptime und Checkpoint-Informationen direkt über den Host. Der 5-Minuten-Sampler baut zusätzlich einen Verlauf auf, aus dem der Bericht 24-Stunden-Graphen für CPU, RAM, Datenträgerbelegung und eine geschätzte Leistungsaufnahme erzeugt.
Diese Anleitung basiert auf dem Paket n8n_infrastructure_status_report_v2.1.0.zip(DOWNLOAD). Sie dokumentiert die vollständige Installation aus Sicht der Entwicklung, beschreibt den Betrieb praxisnah und endet mit einem Anwender-Test, mit dem sich die Installation Schritt für Schritt validieren lässt.
Was der n8n Infrastruktur-Statusbericht überwacht
Der Workflow ist bewusst vordefiniert aufgebaut und verwendet in dieser Version keine KI. Grenzwerte und Warnungen werden durch PowerShell und JavaScript ausgewertet. Dadurch ist jederzeit nachvollziehbar, weshalb der Bericht den Zustand OK, WARNING oder CRITICAL meldet.
- Host-CPU, RAM, Uptime, Betriebssystem und Hardwaremodell
- Status aller Hyper-V-VMs ohne Installation in den Gästen
- Hyper-V-Heartbeat, VM-Uptime, RAM-Zuweisung und CPU-Auslastung
- Hyper-V-Checkpoints inklusive Anzahl und Alter
- Freier Speicher auf allen lokalen Datenträgern
- 24-Stunden-Graphen für CPU, RAM und Datenträgerbelegung
- Geschätzte Leistungsaufnahme in Watt und Energieverbrauch in kWh
- Veeam-Jobs, Ergebnisse, Laufzeiten und laufende Sessions
- Veeam-Repository-Kapazität und relevante Veeam-Dienste
- Konfigurierbare Warnungen, Ausnahmen und Sollzustände über ein n8n-Formular
Typische Einsatzszenarien
Kleine und mittlere Windows-Infrastrukturen
Administratoren erhalten morgens eine kompakte Übersicht, ohne mehrere Konsolen öffnen zu müssen. Besonders nützlich ist das bei einzelnen Hyper-V-Hosts, Aussenstellen, Testumgebungen oder kleineren Kundeninstallationen.
Veeam-Backup-Kontrolle
Der Bericht zeigt erfolgreiche, warnende und fehlgeschlagene Sicherungen sowie den freien Platz des Backup-Repositories. Damit fallen volle Repository-Laufwerke oder ausbleibende Backup-Sessions früher auf.
Agentenloser VM-Überblick
Alle VMs werden direkt über das Hyper-V-Modul abgefragt. Es ist nicht nötig, auf jeder Windows- oder Linux-VM ein separates Skript zu installieren. Der Hyper-V-Heartbeat setzt allerdings funktionierende Hyper-V-Integrationsdienste im Gast voraus.
Leichtgewichtige Alternative zu einer Monitoring-Plattform
Die Lösung eignet sich, wenn ein täglicher Bericht ausreicht und keine vollständige Echtzeitüberwachung benötigt wird. Sie ersetzt kein umfangreiches Monitoring-System, reduziert aber den manuellen Kontrollaufwand deutlich.
Voraussetzungen und Abhängigkeiten
- Eine laufende n8n-Instanz mit Netzwerkzugriff auf den Windows-Server
- Windows Server mit Hyper-V-Rolle
- Veeam Backup & Replication auf demselben Server oder einem separat erreichbaren Server
- PowerShell 7 unter
C:\Program Files\PowerShell\7\pwsh.exe - OpenSSH Server für Windows
- Ein lokales SSH-Servicekonto, in dieser Anleitung
n8n - Ein SMTP-Konto, beispielsweise Gmail mit App-Passwort
PowerShell 7 wird parallel zu Windows PowerShell 5.1 installiert. Der neue Prozess heisst pwsh.exe; powershell.exe startet weiterhin die alte Windows-PowerShell-Version. Das ist für Veeam entscheidend: Veeam PowerShell 13 benötigt PowerShell 7, und aktuelle Veeam-Dokumentation nennt für Windows-Sitzungen PowerShell 7.4.7 als Voraussetzung.
Paketstruktur von Version 2.1.0
| Ordner oder Datei | Zweck |
|---|---|
01_SERVER |
PowerShell-Collector, Installer, Testskript und Beispielkonfigurationen |
02_N8N |
Statusbericht-Workflow und Konfigurationsformular als importierbare JSON-Dateien |
03_DOCS |
Referenzcode der n8n-Code-Nodes und technische Dokumentation |
Schritt 1: PowerShell 7 installieren und prüfen
Installiere PowerShell 7 mit dem offiziellen MSI-Paket oder über Winget. Nach der Installation muss diese Prüfung eine Version 7.x zurückgeben:
& "C:\Program Files\PowerShell\7\pwsh.exe" -NoLogo -Command '$PSVersionTable.PSVersion'
Die getestete Umgebung verwendete PowerShell 7.6.4. Wichtig ist nicht die identische Patch-Version, sondern dass n8n später ausdrücklich pwsh.exe aufruft.
Schritt 2: OpenSSH Server und Servicekonto vorbereiten
Windows Server 2025 enthält OpenSSH bereits, der Dienst muss jedoch aktiviert werden. Auf älteren unterstützten Windows-Server-Versionen kann die Capability installiert werden. Öffne PowerShell als Administrator:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Erstelle danach das lokale Servicekonto. Für eine einfache Erstinstallation kann es der lokalen Administratorengruppe hinzugefügt werden. In produktiven Umgebungen sollte dieses Recht später auf die tatsächlich benötigten Hyper-V-, Veeam- und Dateiberechtigungen reduziert werden.
$Password = Read-Host "Kennwort für n8n" -AsSecureString
New-LocalUser -Name "n8n" -Password $Password -PasswordNeverExpires
Add-LocalGroupMember -Group "Administrators" -Member "n8n"
Teste die Anmeldung direkt auf dem Server:
ssh n8n@127.0.0.1
Nach Eingabe des Kennworts muss eine PowerShell-Sitzung erscheinen. Beende sie mit exit.
SSH-Firewall auf den n8n-Host beschränken
Das Paket enthält Set-OpenSSHFirewall.ps1. Der Beispielwert 10.10.5.162 ist die IP des n8n-Hosts und muss an die eigene Umgebung angepasst werden:
cd "C:\Infra Report v2.1\01_SERVER"
.\Set-OpenSSHFirewall.ps1 -AllowedRemoteAddress "10.10.5.162"
Die Regel erlaubt Port 22 in den Profilen Private und Public ausschliesslich von dieser Quell-IP. Prüfe danach Dienst, Listener und Firewall:
Get-Service sshd
Get-NetTCPConnection -State Listen -LocalPort 22
Get-NetFirewallRule -Name OpenSSH-Server-In-TCP | Get-NetFirewallAddressFilter
Schritt 3: Collector auf dem Hyper-V- und Veeam-Server installieren
Entpacke das ZIP-Paket und kopiere den kompletten Inhalt von 01_SERVER nach:
C:\Infra Report v2.1\01_SERVER
Öffne PowerShell als Administrator und führe Installer sowie Testskript aus:
cd "C:\Infra Report v2.1\01_SERVER"
.\Install-Or-Update-Collectors.ps1 -SshUser n8n
.\Test-Collectors.ps1
Der Installer kopiert die produktiven Dateien nach C:\ProgramData\n8n-infra-report, erstellt Sicherungskopien vorhandener Collector-Skripte und erteilt dem Servicekonto Änderungsrechte auf dem Statusordner. Bestehende JSON-Konfigurationen werden ohne den Parameter -OverwriteConfig nicht überschrieben.
Das Testskript muss für Hyper-V Report und Veeam Report jeweils OK anzeigen.
Schritt 4: Beide n8n-Workflows importieren
n8n kann Workflows direkt als JSON importieren. Öffne Workflows, erstelle einen neuen Workflow und wähle im Menü Import from File. Importiere diese Dateien aus 02_N8N:
INFRA_HyperV_Veeam_Statusbericht_ohne_AI_v2.1.0.jsonINFRA_Konfiguration_Formular_v2.1.0.json
Der Statusworkflow enthält einen manuellen Trigger, einen täglichen Trigger um 07:00 Uhr und einen 5-Minuten-Sampler. Die Zeitzone ist auf Europe/Zurich gesetzt.

Schritt 5: SSH-Credentials in n8n zuweisen
Lege in n8n ein SSH-Credential an:
- Host: IP des Hyper-V-Servers, im Beispiel
10.10.5.65 - Port:
22 - Username:
n8n - Password: Kennwort des lokalen Servicekontos
Weise dieses Credential den Nodes Hyper-V Report via SSH, Veeam Report via SSH und Hyper-V Sample via SSH zu. Im Konfigurationsworkflow wird dasselbe Credential für Aktuelle Konfiguration lesen und Konfiguration speichern verwendet.
Die importierten Befehle rufen bereits PowerShell 7 auf. Der Hyper-V-Report verwendet beispielsweise:
& 'C:\Program Files\PowerShell\7\pwsh.exe' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File 'C:\ProgramData\n8n-infra-report\Collect-HyperVHealth.ps1' -Mode Report -ConfigPath 'C:\ProgramData\n8n-infra-report\infra-config.json' -Transport Base64
Der Base64-Transport verhindert beschädigte Umlaute zwischen Windows, SSH, n8n und dem HTML-Bericht.
Schritt 6: SMTP-Versand konfigurieren
Öffne im Statusworkflow den Node Bericht per SMTP senden. Wähle dein SMTP-Credential und ersetze Absender sowie Empfänger. Für Gmail gelten typischerweise:
- User: vollständige Gmail-Adresse
- Password: Google-App-Passwort, nicht das normale Kontopasswort
- Host:
smtp.gmail.com - Port:
465 - SSL/TLS: aktiviert
Google-App-Passwörter setzen die Bestätigung in zwei Schritten voraus. Alternativ kann jeder andere erreichbare SMTP-Server verwendet werden.
Schritt 7: Warnungen und Ausnahmen über das Formular verwalten
Aktiviere den Workflow INFRA_Konfiguration_Formular_v2.1.0. Öffne den Node Konfiguration oeffnen und kopiere die Production URL. n8n stellt beim Form Trigger eine Test- und eine Production-URL bereit. Die Production URL sollte nur intern, über VPN oder hinter einem geschützten Reverse Proxy erreichbar sein.
Über das Formular lassen sich unter anderem diese Werte ändern:
- VMs, die laufen oder ausgeschaltet sein sollen
- VMs ohne Checkpoint-Warnungen
- ignorierte VMs, Datenträger, Veeam-Jobs und Repositories
- CPU-, RAM-, Speicherplatz- und Checkpoint-Grenzwerte
- Aktivierung einzelner Warnungstypen
- Leerlauf- und Volllastleistung für die Stromschätzung
- Berichtszeitraum und Graph-Intervall
Beispiel: Sind SRV-DC-01 und SRV-File-01 absichtlich ausgeschaltet, werden sie aus ExpectedRunningVMs entfernt und unter ExpectedStoppedVMs eingetragen. Sie bleiben im Report sichtbar, erzeugen aber keine falsche kritische Meldung.

24-Stunden-Graphen und Stromverbrauch verstehen
Der Sampler schreibt alle fünf Minuten einen Messpunkt. Nach 24 Stunden stehen ungefähr 288 Messpunkte zur Verfügung. Der Bericht fasst sie standardmässig in 30-Minuten-Blöcke zusammen. Direkt nach der Installation sind deshalb zunächst nur wenige Balken sichtbar.
Die Stromschätzung benötigt keine KI. Sie verwendet ein lineares Modell zwischen konfigurierter Leerlauf- und Volllastleistung:
Leistung = Leerlaufleistung + (Volllastleistung - Leerlaufleistung) × CPU-Auslastung
Die Standardwerte sind 180 Watt im Leerlauf und 500 Watt bei Volllast. Für belastbare Resultate sollten diese Werte mit iLO, einer USV oder einem Zwischenzähler gemessen werden. Der Wert ist eine technische Schätzung und kein geeichter Energiezähler.
Die Datenträgergraphen zeigen die prozentuale Belegung. SSD-I/O, Latenz und Schreibdurchsatz sind nicht Bestandteil von Version 2.1.0.
Vergleich mit alternativen Monitoring-Lösungen
| Feature | Diese n8n-Lösung | Checkmk/Zabbix | Manuelles PowerShell-Skript |
|---|---|---|---|
| Täglicher HTML-Bericht | Ja | Möglich | Eigenbau |
| Agent auf jeder VM nötig | Nein | Je nach Tiefe | Nein |
| Konfiguration per Webformular | Ja | Ja | Nein |
| Echtzeit-Alarmierung | Begrenzt | Stark | Nur mit Zusatzlogik |
| Tiefe Applikationsüberwachung | Nein | Ja | Eigenbau |
Die n8n-Lösung ist besonders attraktiv, wenn n8n bereits vorhanden ist und ein übersichtlicher täglicher Betriebsbericht gesucht wird. Für minutengenaue Alarmierung, verteilte Standorte, SLA-Auswertung oder tiefe Applikationsmetriken ist eine dedizierte Monitoring-Plattform weiterhin die bessere Wahl.
Häufige Fehler und ihre Lösungen
Veeam meldet Windows PowerShell 5.1
Im SSH-Node wird noch powershell.exe statt pwsh.exe verwendet. Importiere den aktuellen Workflow erneut oder korrigiere den Befehl auf C:\Program Files\PowerShell\7\pwsh.exe.
SSH-Handshake läuft in einen Timeout
Prüfe, ob sshd läuft, Port 22 lauscht und die Windows-Firewall die IP des n8n-Hosts erlaubt. Teste die Verbindung zuerst direkt vom n8n-Host.
Code doesn't return items properly
Der HTML-Code-Node muss im Modus Run Once for All Items laufen und ein Array von n8n-Items zurückgeben. In Version 2.1.0 ist dies bereits korrekt vorkonfiguriert.
Graphen bleiben leer
Aktiviere den gesamten Statusworkflow. Nur dann läuft der Trigger Alle 5 Minuten. Prüfe ausserdem, ob im Verzeichnis C:\ProgramData\n8n-infra-report die Sample-Datei wächst.
Abschliessender Anwender-Test
Nach der technischen Installation sollte ein normaler Administrator die Lösung ohne Kenntnis des Quellcodes testen:
Test-Collectors.ps1zeigt zweimal OK.- Das SSH-Credential in n8n lässt sich speichern.
- Die drei SSH-Nodes liefern Daten ohne Fehler.
- Der manuelle Trigger versendet eine HTML-E-Mail.
- Alle Hyper-V-VMs erscheinen im Bericht, auch ausgeschaltete Systeme.
- Veeam-Sitzungen und Repository-Kapazität werden angezeigt.
- Das Konfigurationsformular speichert geänderte Sollzustände.
- Nach einigen Sampler-Läufen erscheinen erste Graphbalken.
- Nach ungefähr 24 Stunden sind vollständige Tagesverläufe sichtbar.