Problem mit Hyper_host_csv_io.ps1 Deutsch/Englisch

Guten Morgen… da haben wir ja den Übeltäter :joy:

Das Ausmaß der Probleme war man sich anfangs nicht bewusst und jetzt laufen so viele VM’s drauf das es ein Totalschaden wäre den Host neu aufzusetzen.

Da die folgenden Leistungsindikatoren nicht auf dem deutschen System zu finden waren, habe ich die kurzerhand im Skript ausgetauscht…

$Counters = @('\Physikalischer Datenträger(*)\Aktuelle Warteschlangenlänge', '\Physikalischer Datenträger(*)\Zeit (%)','\Physikalischer Datenträger(*)\Durchschnittl. Warteschlangenlänge des Datenträgers', '\Physikalischer Datenträger(*)\Lesezeit (%)', 
'\Physikalischer Datenträger(*)\Durchschnittl. Warteschlangenlänge der Datenträger-Lesevorgänge', '\Physikalischer Datenträger(*)\Schreibzeit (%)', 
'\Physikalischer Datenträger(*)\Durchschnittl. Warteschlangenlänge der Datenträger-Schreibvorgänge', '\Physikalischer Datenträger(*)\Mittlere Sek./Übertragung', 
'\Physikalischer Datenträger(*)\Mittlere Sek./Lesevorgänge', '\Physikalischer Datenträger(*)\Mittlere Sek./Schreibvorgänge', 
'\Physikalischer Datenträger(*)\Übertragungen/s', '\Physikalischer Datenträger(*)\Lesevorgänge/s', 
'\Physikalischer Datenträger(*)\Schreibvorgänge/s', '\Physikalischer Datenträger(*)\Bytes/s', 
'\Physikalischer Datenträger(*)\Bytes gelesen/s', '\Physikalischer Datenträger(*)\Bytes geschrieben/s', 
'\Physikalischer Datenträger(*)\Mittlere Bytes/Übertragung', '\Physikalischer Datenträger(*)\Mittlere Bytes/Lesevorgang', 
'\Physikalischer Datenträger(*)\Mittlere Bytes/Schreibvorgang', '\Physikalischer Datenträger(*)\Leerlaufzeit (%)', '\Physikalischer Datenträger(*)\Teil-E/A/s')

Wenn ich jetzt das Skript in PowerShell laufen lasse, bringt er mir eine Ausgabe zu den Indikatoren.

Fehler beim Indexvorgang. Der Arrayindex wurde als NULL ausgewertet.
In C:\ProgramData\checkmk\agent\plugins\hyperv_host_csv_io.ps1:52 Zeichen:9
+         $idtolun[$diskid] = $lunid
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArrayIndex
 
Fehler beim Indexvorgang. Der Arrayindex wurde als NULL ausgewertet.
In C:\ProgramData\checkmk\agent\plugins\hyperv_host_csv_io.ps1:52 Zeichen:9
+         $idtolun[$diskid] = $lunid
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArrayIndex



\\is1msphc01\physikalischer datenträger(17)\aktuelle warteschlangenlänge                                                          0
\\is1msphc01\physikalischer datenträger(17)\zeit (%)                                                               48,6633968172084
\\is1msphc01\physikalischer datenträger(17)\durchschnittl. warteschlangenlänge des datenträgers                   0,486633968172084
\\is1msphc01\physikalischer datenträger(17)\lesezeit (%)                                                           1,81683213288171
\\is1msphc01\physikalischer datenträger(17)\durchschnittl. warteschlangenlänge der datenträger-lesevorgänge      0,0181683213288171
\\is1msphc01\physikalischer datenträger(17)\schreibzeit (%)                                                        46,8465646843267
\\is1msphc01\physikalischer datenträger(17)\durchschnittl. warteschlangenlänge der datenträger-schreibvorgänge    0,468465646843267
\\is1msphc01\physikalischer datenträger(17)\mittlere sek./übertragung                                          0,000983726144372808
\\is1msphc01\physikalischer datenträger(17)\mittlere sek./lesevorgänge                                          0,00113624782643041
\\is1msphc01\physikalischer datenträger(17)\mittlere sek./schreibvorgänge                                      0,000978631474408462
\\is1msphc01\physikalischer datenträger(17)\übertragungen/s                                                        494,551454375208
\\is1msphc01\physikalischer datenträger(17)\lesevorgänge/s                                                         15,9855015555623
\\is1msphc01\physikalischer datenträger(17)\schreibvorgänge/s                                                      478,565952819645
\\is1msphc01\physikalischer datenträger(17)\bytes/s                                                                4468778,93086054
\\is1msphc01\physikalischer datenträger(17)\bytes gelesen/s                                                        1415931,78578548
\\is1msphc01\physikalischer datenträger(17)\bytes geschrieben/s                                                    3052847,14507506
\\is1msphc01\physikalischer datenträger(17)\mittlere bytes/übertragung                                             9036,02424242424
\\is1msphc01\physikalischer datenträger(17)\mittlere bytes/lesevorgang                                                        88576
\\is1msphc01\physikalischer datenträger(17)\mittlere bytes/schreibvorgang                                          6379,15657620042
\\is1msphc01\physikalischer datenträger(17)\leerlaufzeit (%)                                                       58,3075306107418
\\is1msphc01\physikalischer datenträger(17)\teil-e/a/s                                                             83,9238831667019
\\is1msphc01\physikalischer datenträger(18)\aktuelle warteschlangenlänge                                                          0
\\is1msphc01\physikalischer datenträger(18)\zeit (%)                                                                  322,358321042
\\is1msphc01\physikalischer datenträger(18)\durchschnittl. warteschlangenlänge des datenträgers                       3,22358321042
\\is1msphc01\physikalischer datenträger(18)\lesezeit (%)                                                           132,117911255157
\\is1msphc01\physikalischer datenträger(18)\durchschnittl. warteschlangenlänge der datenträger-lesevorgänge        1,32117911255157
\\is1msphc01\physikalischer datenträger(18)\schreibzeit (%)                                                        190,240409786843
\\is1msphc01\physikalischer datenträger(18)\durchschnittl. warteschlangenlänge der datenträger-schreibvorgänge     1,90240409786843
\\is1msphc01\physikalischer datenträger(18)\mittlere sek./übertragung                                           0,00147626440953134
\\is1msphc01\physikalischer datenträger(18)\mittlere sek./lesevorgänge                                           0,0114958377750992
\\is1msphc01\physikalischer datenträger(18)\mittlere sek./schreibvorgänge                                      0,000919621680343157
\\is1msphc01\physikalischer datenträger(18)\übertragungen/s                                                        2183,02005618147
\\is1msphc01\physikalischer datenträger(18)\lesevorgänge/s                                                         114,895792430604
\\is1msphc01\physikalischer datenträger(18)\schreibvorgänge/s                                                      2068,12426375087
\\is1msphc01\physikalischer datenträger(18)\bytes/s                                                                20670148,6994291
\\is1msphc01\physikalischer datenträger(18)\bytes gelesen/s                                                        773442,507264325
\\is1msphc01\physikalischer datenträger(18)\bytes geschrieben/s                                                    19896706,1921648
\\is1msphc01\physikalischer datenträger(18)\mittlere bytes/übertragung                                             9468,60228832952
\\is1msphc01\physikalischer datenträger(18)\mittlere bytes/lesevorgang                                             6731,68695652174
\\is1msphc01\physikalischer datenträger(18)\mittlere bytes/schreibvorgang                                          9620,65314009662
\\is1msphc01\physikalischer datenträger(18)\leerlaufzeit (%)                                                       23,5656715974909
\\is1msphc01\physikalischer datenträger(18)\teil-e/a/s                                                             537,512489805781

So weit so gut… nur leider auch die Fehler, das Skript geht mit einer 1 raus und checkmk zeigt mir check failed an

Das hier ist die foreach Schleife und ich weiss nicht wo ich dort write-host eintragen soll, die Zeile 52 habe ich mit einem #52 markiert


$counts = @()
$remotecounts = @()
$idtolun = @{}

$csvs = Get-ClusterSharedVolume
foreach ( $csv in $csvs ) {
    if ($csv | Where-Object { $_.OwnerNode -match $env:COMPUTERNAME }) {
        $diskguid = ($csv | Get-ClusterParameter DiskIdGuid).Value
        $lunid = $csv.Name
        $disk = get-disk | Where-Object { $_.guid -match $diskguid }
        $diskid = $disk.DiskNumber
        $idtolun[$diskid] = $lunid
        $counts += $disk
    }
    else {
        $diskguid = ($csv | Get-ClusterParameter DiskIdGuid).Value
        $lunid = $csv.Name
        $disk = get-disk | Where-Object { $_.guid -match $diskguid }
        $diskid = $disk.DiskNumber
#52  $idtolun[$diskid] = $lunid
        $remotecounts += $disk
    }
}

$resultlist = @()

Kann ich den Zustand des Hyper-V Hosts auch anders monitoren? Die VM’s selbst werden nicht
zum monitoring gebraucht. Gibt es dafür ein Plugin das ich nur zum msi File hinzufügen muss?

Vielen Dank für deine investierte Zeit.

Grüße Dennis