Das Erstellen eines Hyper-V Performance Monitoring Tool per Powershell

Server-Monotoring mithilfe von Bordmitteln und Skripts

| Autor / Redakteur: Thomas Joos / Andreas Donner

Mit einem per PowerShell-Script erzeugten Dashboard lassen sich die Leistungsdaten von Hyper-V-Hosts in einer grafischen Oberfläche anzeigen.
Mit einem per PowerShell-Script erzeugten Dashboard lassen sich die Leistungsdaten von Hyper-V-Hosts in einer grafischen Oberfläche anzeigen. (Bild: Joos / Microsoft)

Über Bordmittel in „Windows Server 2016/2019“ und mit der Powershell lassen sich Skripte erstellen, mit denen sich „Hyper-V“-Server im Netzwerk überwachen lassen. Der Artikel zeigt, welche Möglichkeiten es gibt, um zum Beispiel den Leistungsmonitor von Windows in der Powershell zu nutzen.

Um Hyper-V-Server zu überwachen, können die Indikatoren der Leistungsüberwachung von Windows in der Powershell abgefragt und beispielsweise als Tabelle ausgegeben werden. Dazu kann zum Beispiel das CMDlet „get-counter“ genutzt werden. Wer mit WMI arbeitet, kann die Daten abfragen und formatieren. So besteht zum Beispiel die Möglichkeit die Leistungsdaten von VMs mit dem folgenden CMDlet abzufragen:

Get-CimInstance -class Win32_PerfFormattedData_BalancerStats_HyperVDynamicMemoryVM -ComputerName <Name des Servers> | Select Name,*Memory*,*Pressure | Out-GridView

Diese Abfrage funktioniert über das Netzwerk, aber auch auf lokalen Servern. Mit diesem Befehl lässt sich die Speicherauslastung messen. Da hier mit WMI gearbeitet wird, kann die Ausgabe auch ohne Tabelle erfolgen. Zusätzlich lassen sich hier Filtern anwenden:

Get-CimInstance -class Win32_PerfFormattedData_BalancerStats_HyperVDynamicMemoryVM -ComputerName <Name des Servers> -filter “CurrentPressure >=80”

Leistungsdaten in der Powershell abfragen

Mit “get-counter” lassen sich Leistungsdaten von Windows-Servern in der Powershell abfragen. Um sich eine Liste aller verfügbaren Leistungsindikatoren als Tabelle anzeigen zu lassen, kann folgender Befehl genutzt werden:

Get-Counter -ListSet * | select CounterSetName, Description | Out-GridView

In der Liste kann beliebig gefiltert werden. Dazu wird auf „Kriterien hinzufügen“ geklickt und dann auf „Description“ oder „CounterSetName“. Anschließend lässt sich der Filtersuchbegriff eingeben.

Für die Anzeige von Informationen für die Überwachung von Hyper-V ist zum Beispiel „Hyper-V“ oder „virt“ hilfreich. Um die Indikatoren genauer aufzulisten, kann zum Beispiel folgender Befehl genutzt werden:

(Get-Counter -ListSet "Hyper-V-Hypervisor").Paths

Sollen die Daten in der Powershell auch ausgewertet werden, lassen sich die Instanzen messen und ausgeben, zum Beispiel mit:

(Get-Counter -ListSet "Hyper-V-Hypervisor").Paths | get-counter -continuous

Wer die Daten grafisch aufbereiten will, kann sie in eine CSV-Datei exportieren:

(Get-Counter -ListSet "Hyper-V-Hypervisor").Paths | get-counter -continuous |Export-Counter -Path c:\temp\counter.csv -FileFormat csv

Wer die aufbereiteten Daten mit der Perfmon-Oberfläche anzeigen will, verwendet den Befehl:

(Get-Counter -ListSet "Hyper-V-Hypervisor").Paths | get-counter -continuous |Export-Counter -Path c:\temp\counter.blg

In diesem Fall kann die BLG-Datei mit einem Doppelklick geöffnet werden. So lassen sich die Daten in der grafischen Oberfläche anzeigen.

Powershell Universal Dashboard

Auf Github ist ein Powershell-Skript mit der Bezeichnung „Powershell Universal Dashboard“ zu finden. Das Skript zeigt, welche Möglichkeiten es gibt, um Server mit der Powershell zu überwachen. Wer sich nicht tiefgehender mit der Powershell auseinandersetzen will, kann das Skript ohne Anpassungen nutzen, um das Dashboard einzusetzen.

Um das Dashboard auf einem Hyper-V-Server zu nutzen, werden auf dem Server ASP.NET Core, Powershell Core, ReactJS und einige Javascript-Bibliotheken benötigt. Die Installation erfolgt in der Powershell mit dem Befehl:

Install-Module -Name UniversalDashboard.Community -AcceptLicense

Mit dem CMDlet “Get-Command -Module *Dashboard*” werden die Befehle angezeigt, die das Modul enthält. Das Modul lässt sich auch zusammen mit Docker verwenden. Am besten wird das Powershell Universal Dashboard mit der aktuellen Version von Powershell Core verwendet.

Wenn das Modul installiert ist, können entweder eigenen Dashboards erstellt werden oder das Beispiel-Dashboard der Entwickler wird bei Github heruntergeladen und gestartet. Die Befehle zum Erstellen von eigenen Dashboards sind auf der Seite „How to create Hyper-V Dashboard using Windows Powershell?“ zu finden. Das Beispielskript steht auf Github zur Verfügung.

Nach dem Start des Beispiel-Dashboard wird diese auf dem Port 80 des Servers zur Verfügung gestellt – der Port kann bei Bedarf bei der Erstellung des Dashboards angepasst werden.

Bleibt der Port unverändert, lässt sich das Dashboard mit einem Webbrowser aufrufen. Das Dashboard zeigt die Leistungsdaten des Servers zur Laufzeit an. Die einzelnen Menüpunkte reagieren auf das Überfahren mit der Maus und geben weitere Informationen preis, zum Beispiel Leistungsdaten zu den einzelnen Prozessen.

Das Dashboard steht auch über das Netzwerk zur Verfügung und zeigt wichtige Informationen zu Hyper-V-Servern in Echtzeit an. In kleinen Netzwerken kann das Tool also durchaus eine kommerzielle Leistungsüberwachung von Hyper-V ersetzen.

Dashboards anpassen und eigene Dashboards erstellen

Um ein gestartetes Dashboard zu beenden, wird der folgende Befehl verwendet:

Get-UDDashboard | Stop-UDDashboard

Um den Standard-Port des Beispielskripts anzupassen, muss dieses geöffnet werden. Zu Beginn des Skriptes wird das Dashboard mit „Start-UdDashboard“ erstellt. Hier muss noch die Option „-port 1000“ eingegeben werden.

Anstelle des Werts „1000“ kann auch jeder andere Port genutzt werden. Wird anschließend das Skript neu gestartet, wird das Dashboard mit dem neuen Port zur Verfügung gestellt. Aufgerufen wird es dann über http:<IP oder Name>:<Port>, zum Beispiel http://localhost:1000.

*Der Autor Thomas Joos schriebt IT-Artikel und Fachbücher. Auf DataCenter-Insider füllt er seinen eigenen Blog mit Tipps und Tricks für Administratoren: „Toms Admin-Blog“.

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45975570 / Middleware)