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

Einige Tipps zur Verwendung von Less in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...

Beispielcode zur Implementierung transparenter Verlaufseffekte mit CSS

Die Titelbilder in den Spalten von Zhihu Discover...

So installieren und implementieren Sie einen Gitlab-Server auf CentOS7

Ich verwende hier das 64-Bit-System CentOS 7. Ich...

Docker verwendet Dockerfile, um die Node.js-Anwendung zu starten

Schreiben einer Docker-Datei Am Beispiel des von ...

Lösung für das Problem, dass das Vue-Seitenbild nicht angezeigt wird

Als ich eine neue Version der Konfigurationsschni...

Besprechen Sie die Anwendung von Mixin in Vue

Mixins bieten eine sehr flexible Möglichkeit, wie...

Grundlegende Verwendung und Fallstricke der JavaScript-Array-Methode sort()

Vorwort Bei der täglichen Codeentwicklung gibt es...

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

CentOS7-Konfiguration Alibaba Cloud Yum-Quellmethodencode

Öffnen Sie den Centos Yum-Ordner Geben Sie den Be...

MySQL-Reihe: Grundlegende Konzepte der relationalen MySQL-Datenbank

Inhaltsverzeichnis 1. Grundlegende Konzepte 2. En...

Vue implementiert Bildverifizierungscode beim Anmelden

In diesem Artikelbeispiel wird der spezifische Co...

Gründe und Methoden zum Warten auf die Sperre der Tabellenmetadaten in MySQL

Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...