Zabbix で Windows のパフォーマンスを監視する方法

Zabbix で Windows のパフォーマンスを監視する方法

背景情報

最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使用していた私のような怠け者にとって、Zabbix に付属する Windows OS テンプレートは本当に不十分です。以前の SCOM 監視パッケージ (Microsoft が公開したもので、すべての作業が実行され、必要に応じてルールとアラームを有効にするだけで済みました) が役に立たなかったからです。

デフォルトの Zabbix パフォーマンス データには Avg Latency しかなく、平均データは正確ではありません。ディスクのレイテンシと IOPS を確認したい場合は、自分で行う必要があります。Zabbix の Windows パフォーマンス カウンターの構文を確認した後、少し後退しました。すべての数値パフォーマンス カウンターの CounterCategory と CounterName。

内蔵ディスクに関連する唯一の統計は、転送速度と平均遅延です。

Zabbix での Windows パフォーマンス監視

監視する他のパフォーマンス カウンターがある場合、それらの名前と機能は何ですか?すぐに検索できるリストはありますか?

解決する

幸いなことに、PowerShell は簡単​​に記述できるので、Zabbix のパフォーマンス カウンターの構文を統合する次の関数を作成しました。

関数 Get-PerfCounterDesc{
 [コマンドレットバインディング()]
 パラメータ(
  [スイッチ]$表示
 )

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

 $SingleInstanceCounters = $SingleInstanceCategories | ForEach-Object {
  (新しいオブジェクト System.Diagnostics.PerformanceCounterCategory($_.CategoryName)).GetCounters() 
 }
 $MultiInstanceCounters = $MultiInstanceCategories | ForEach-Object {
  $category = 新しいオブジェクト System.Diagnostics.PerformanceCounterCategory($_.CategoryName)
  $category.InstanceExists('_Total') の場合
   $category.GetCounters('_Total') 
  }elseif($category.InstanceExists('合計')){
   $category.GetCounters('合計')
  }それ以外{
   $instanceNames = $category.GetInstanceNames()
   if($instanceNames.count -gt 0){
    $category.GetCounters($instanceNames[0])
   }
  }
 }

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

 $counters=Get-ItemPropertyValue -Path $key -Name "counter"
 $辞書=@{}

 ($i=0;$i -lt $counters.count;$i=$i+2){
  if($counters[$i+1] -かつ -not $Dict.ContainsKey($counters[$i+1])){
   $Dict.add($counters[$i+1],$counters[$i])
  }
 }
 書き込みデバッグ $dict.keys.count
 $result=$AllCounters | Sort-Object カテゴリ名、カウンター名|
   Select-Object カテゴリ名、
   カウンターネーム、
   @{n="zabbixPerfCounter";e={'perf_counter["\{0}({{#ReplaceThis}})\{1}"]' -f $dict[$_.CategoryName],$dict[$_.Countername]}},
   @{n="categoryNum";e={$Dict[$_.CategoryName]}},
   @{n="カウンター番号";e={$Dict[$_.カウンター名]}},
   カテゴリヘルプ、
   カウンターヘルプ

 表示する場合
  $result|アウトグリッドビュー
 }それ以外{
  $結果
 }
}

どうやって使うの?上記の関数を個人の PowerShell プロファイルに直接追加します。つまり、PowerShell コンソールのnotepad $profileに内容を貼り付けて保存し、 set-executionpolicy remotesigned設定して、署名されていないカスタム スクリプトを実行できるようにします。

新しい PowerShell を起動し、Get-PerfCounterDesc -show を直接入力します。さまざまな方法で結果をフィルターできます。 zabbixPerfCounter 列は、生成された zabbix で使用されるキーです。{#replaceThis} をカウンターのインスタンス名に置き換えてください。たとえば、_total。

次に、ディスクIOPSとレイテンシを表示するために、Zabbixテンプレートに次のカウンターを追加しました。

アイテムのプロトタイプ

アイテム

Grafanaもそれに応じて変更する必要があります

要約する

上記は、編集者が紹介したZabbixでのWindowsパフォーマンス監視の方法です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Windows に Zabbix Agentd をインストールして設定する
  • Windows パフォーマンス カウンターを使用したサーバー パフォーマンス監視の例の共有

<<:  JSONオブジェクトのキーを置き換える最良の方法

>>:  MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

推薦する

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

Windows に異なる (2 つの) バージョンの MySQL データベースをインストールする詳細なチュートリアル

1. 原因: SQL ファイルをインポートする必要があるのですが、インポートできません。この文を実行...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

無効にするとフォームの入力が送信できない問題の解決方法

以前、追加と変更を一緒に記述したテストプログラムを書いたことがあります。変更が必要な場合は、フォーム...

HTMLテキストオーバーフローの2つの一般的な解決策は省略記号を表示することです

方法1: CSSオーバーフロー省略を使用して解決する解決策は次のとおりです。 CSSコード: ディス...

CentOS MySQLデータベースのスケジュールバックアップを実装する方法

次のスクリプトは、MySQLデータベース全体のスケジュールされたバックアップに使用されます。 mys...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...

JavaScript が Xiaomi のカルーセル効果を模倣

この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...

mysql-5.7.21-winx64 無料インストール版のインストール - Windows チュートリアル詳細説明

1 ダウンロードアドレスは https://dev.mysql.com/downloads/mysq...

MySQL で group by を使用すると常にエラー 1055 が発生します (推奨)

MySQL で group by を使用すると常にエラー 1055 が発生するため、原因を確認する...

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

Linux md5sumコマンドの使い方

01. コマンドの概要md5sum - MD5検証コードを計算して検証するmd5sum コマンドは、...

デザイン理論: デザインにおける階層

<br />原文: http://andymao.com/andy/post/80.ht...

MySQLオンラインデータベースのデータをクリーンアップする方法

目次01 シナリオ分析02 操作方法03 結果分析01 シナリオ分析今日の午後、開発仲間がオンライン...

Web デザインの経験: 独善的な Web デザイナー

1. ゴミかクラシックか? Web テクノロジーは急速に更新されており、Web サイトのインターフェ...