So überwachen Sie die Windows-Leistung auf Zabbix

So überwachen Sie die Windows-Leistung auf Zabbix

Hintergrundinformationen

Ich habe kürzlich einige Bücher über die Leistung von Windows erneut gelesen. Für einen faulen Menschen wie mich, der früher SCOM-Überwachung verwendet hat, reicht die mit Zabbix gelieferte Windows-Betriebssystemvorlage wirklich nicht aus, da das vorherige SCOM-Überwachungspaket (von Microsoft veröffentlicht, die ganze Arbeit erledigt hat und ich nur nach Bedarf Regeln und Alarme aktivieren musste) nicht ausreicht.

Die standardmäßigen Leistungsdaten von Zabbix enthalten nur die durchschnittliche Latenz, und die Durchschnittsdaten sind nicht genau. Wenn Sie die Latenz und IOPS der Festplatte sehen möchten, müssen Sie dies selbst tun. Nachdem ich mir die Syntax des Windows-Leistungsindikators in Zabbix angesehen hatte, zog ich mich etwas zurück. Die CounterCategory und der CounterName aller numerischen Leistungsindikatoren.

Die einzigen Statistiken zur integrierten Festplatte sind die Übertragungsgeschwindigkeit und die durchschnittliche Latenz.

Windows-Leistungsüberwachung auf Zabbix

Wenn es andere zu überwachende Leistungsindikatoren gibt, wie heißen diese und welche Funktion haben sie? Gibt es eine Liste, in der man schnell suchen kann?

Löse es

Glücklicherweise lässt sich PowerShell einfach schreiben, daher habe ich die folgende Funktion geschrieben, die die Syntax der Leistungsindikatoren von Zabbix integriert.

Funktion Get-PerfCounterDesc{
 [cmdletbinding()]
 Parameter(
  [Schalter]$zeigen
 )

 $Categories = [System.Diagnostics.PerformanceCounterCategory]::GetCategories()
 $SingleInstanceCategories = $Categories | Where-Object {$_.CategoryType -eq "SingleInstance"} 
 $MultiInstanceCategories = $Categories| Where-Object {$_.CategoryType -eq "MultiInstance"}

 $SingleInstanceCounters = $SingleInstanceCategories | FürEach-Objekt {
  (neues Objekt System.Diagnostics.PerformanceCounterCategory($_.CategoryName)).GetCounters() 
 }
 $MultiInstanceCounters = $MultiInstanceCategories | FürEach-Objekt {
  $Kategorie = neues Objekt System.Diagnostics.PerformanceCounterCategory($_.CategoryName)
  wenn($category.InstanceExists('_Total')){
   $category.GetCounters('_Total') 
  }elseif($category.InstanceExists('Total')){
   $category.GetCounters('Gesamt')
  }anders{
   $instanceNames = $category.GetInstanceNames()
   wenn($instanceNames.count -gt 0){
    $category.GetCounters($instanceNames[0])
   }
  }
 }

 $AllCounters = $MultiInstanceCounters + $SingleInstanceCounters 
 $key="HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009"

 $counters=Get-ItemPropertyValue -Pfad $key -Name "Zähler"
 $Dict=@{}

 für ($i=0;$i -lt $counters.count;$i=$i+2){
  wenn($counters[$i+1] -und -nicht $Dict.ContainsKey($counters[$i+1])){
   $Dict.add($Zähler[$i+1],$Zähler[$i])
  }
 }
 Schreib-Debug $dict.keys.count
 $result=$AllCounters | Sort-Objekt Kategoriename,Zählername|
   Objektauswahl Kategoriename,
   Gegenname,
   @{n="zabbixPerfCounter";e={'perf_counter["\{0}({{#ReplaceThis}})\{1}"]' -f $dict[$_.CategoryName],$dict[$_.Countername]}},
   @{n="KategorieNum";e={$Dict[$_.KategorieName]}},
   @{n="ZählerNum";e={$Dict[$_.Zählername]}},
   KategorieHilfe,
   Gegenhilfe

 wenn($zeigen){
  $result|Out-GridView
 }anders{
  $Ergebnis
 }
}

Wie benutzt man es? Fügen Sie die obige Funktion direkt zu Ihrem persönlichen PowerShell-Profil hinzu. Fügen Sie dazu den Inhalt in den notepad $profile der PowerShell-Konsole ein, speichern Sie ihn und legen Sie dann set-executionpolicy remotesigned um die Ausführung benutzerdefinierter, unsignierter Skripts zuzulassen.

Starten Sie eine neue PowerShell und geben Sie Get-PerfCounterDesc -show direkt ein. Sie können die Ergebnisse auf verschiedene Arten filtern. Die Spalte zabbixPerfCounter ist der Schlüssel, der für das generierte Zabbix verwendet wird. Bitte ersetzen Sie {#replaceThis} durch den Instanznamen des Zählers. Beispielsweise _total.

Dann habe ich die folgenden Zähler in die Zabbix-Vorlage eingefügt, um die Festplatten-IOPS und Latenz anzuzeigen

Artikelprototyp

Artikel

Sie müssen auch Grafana entsprechend ändern

Zusammenfassen

Oben ist die vom Herausgeber vorgestellte Methode zur Windows-Leistungsüberwachung auf Zabbix. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Installieren und konfigurieren Sie Zabbix Agentd unter Windows
  • Beispielfreigabe für die Überwachung der Serverleistung mithilfe von Windows-Leistungsindikatoren

<<:  Beste Möglichkeit, den Schlüssel im JSON-Objekt zu ersetzen

>>:  Analyse der schlechten Leistung, die durch einen großen LIMIT-Offset in der MySQL-Abfrage verursacht wird

Artikel empfehlen

Eine kurze Diskussion zu DDL und DML in MySQL

Inhaltsverzeichnis Vorwort 1. DDL 1.1 Datenbankop...

Tiefgreifendes Verständnis des Ereignisausführungsmechanismus von JavaScript

Inhaltsverzeichnis Vorwort Das Prinzip der asynch...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 winx64

Windows-Installation mysql-5.7.17-winx64.zip Meth...

Lernen Sie die schwarze Technologie der Union-All-Verwendung in MySQL 5.7 in 5 Minuten

Leistung von „Union All“ in MySQL 5.6 Teil 1: MyS...

So installieren Sie Element UI und verwenden Vektorgrafiken in vue3.0

Hier konzentrieren wir uns nur auf die Installati...

Einführung in die Stammverzeichniserweiterung unter Linux

1. Überprüfen Sie den Linux-Festplattenstatus df ...

Hinweise zur Konfiguration mehrerer Proxys mithilfe von Vue-Projekten

Im Entwicklungsprozess eines Vue-Projekts konfigu...

52 SQL-Anweisungen, die Ihnen Leistungsoptimierung beibringen

1. Um die Abfrage zu optimieren, sollten Sie voll...

Detailliertes Beispiel für die JSON-Analyse mit MySQL (5.6 und darunter)

MySQL (5.6 und darunter) analysiert JSON #json-An...

Zwei Methoden der MySql-Kommaverkettungs-Stringabfrage

Die folgenden beiden Funktionen werden auf die gl...