Aktueller Channel Fokus:

Managed Services

Hyper-V Performance Monitoring Tool mit PowerShell

Server mit Bordmitteln und Skripten überwachen

| Autor / Redakteur: Thomas Joos / Andreas Donner

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

Mit Bordmitteln in Windows Server 2016/2019 und mit PowerShell lassen sich Skripte erstellen, mit denen Hyper-V-Server im Netzwerk überwacht werden können. Wir zeigen, 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 etwa 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 kann der Filtersuchbegriff eingegeben werden. 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 https://github.com/PowerShell/PowerShell 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-Dashboards wird es 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 an, 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 Skripts wird das Dashboard mit „Start-UdDashboard“ erstellt. Hier muss noch die Option „-port 1000“ eingegeben werden. Anstatt „1000“ kann natürlich jeder andere Port genutzt werden. Nach dem anschließenden Neustart des Skripts 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.

Kommentare werden geladen....

Sie wollen diesen Beitrag kommentieren? Schreiben Sie uns hier

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
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.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45976704 / Software)