Guten Morgen… da haben wir ja den Übeltäter
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