Windowsのシステム使用率が高い場合に警告するように監視を設定する方法

  • アダム-バートラム

    @アドバートラム

  • 2020年4月6日11:18AM EDT

Perfmon

windowsで見過ごされているツールの1つがPerfmonであり、パフォーマンスモニタとも呼ばれます。 このユーティリティは、多くの見落とさ能力を持っています,そのうちの一つは、様々なメトリックス条件に警告する能力であります. この記事では、CPU使用率が高いPerfmonのアラート機能を適切に使用する方法を説明します。

Perfmonとは何ですか?

利用可能さまざまなイテレーションでWindowsの初期の頃から、パフォーマンスモニタは、システムの使用状況と様々なパフォーマンス指標を監視するのに役立 起動時のデフォルトのビューでは、いくつかの異なる領域とリアルタイムの指標が強調表示されます。

  • パフォーマンスモニタ-メトリックのリアルタイム表示
  • データコレクタセット–特定の時間間隔でのデータの定義されたコレクション
  • レポート-データコレクタセットで収集されたデータを表示する方法

Performance Monitorが管理者として起動されていない場合、そのユーティリティは制限され、Data Collectorセットまたはレポートが表示されないことがあります。

メトリックの表示

パフォーマンスモニタを最初にクリックすると、デフォルトで%Processor Timeになる移動折れ線グラフが表示されます。 データはローリング値であり、実際には不利な条件があるかどうかを知りたいので、これ自体はそれほど有用ではありません。

緑色のプラスをクリックしてさらに指標を追加することで、このグラフに指標を追加することができます。 値のスケールは異なるデータポイント間で一致しない可能性があるため、単一のグラフで結合するとあまり使用されない可能性があることに注意して

データコレクタセット

リアルタイムデータは有用ですが、最終的に探しているものではありません。 この場合、高いCPU使用率は時間の経過とともに維持されますか?

これがデータ-コレクタ-セットの出番です。 データコレクタセットを展開した後、ユーザー定義→新規→データコレクタセットを右クリックします。

セットに名前を付けるオプションと、テンプレートからセットを作成するか、セットを手動で作成するかを選択するオプションが表示されます。 この場合、設定を手動で作成する必要があります。

この場合、パフォーマンスカウンターアラートを設定しています。 これは、特定のカウンタを監視し、我々は特定のアクションを取るためにアラートを伝えることができます。

合計CPUの割合を監視することを検討しているため、監視する正しいメトリックを選択することが最も重要です。 ここでは、選択したインスタンスの横にある”Add>>”をクリックして、Processor→_Totalを選択しています。

広告

一つの問題は、あなたがすべてのプロセッサ_Totalメトリックを取得することです。 最終的には、\Processor(_Total)\% Processor Timeメトリックが必要です。 他のものを削除するには、それぞれを選択し、削除ボタンをクリックします。

残念ながら、削除が機能する方法では、選択したアイテムを毎回トップに戻すために、削除ボタンを複数回クリックすることはできません。 各指標を個別に選択し、[削除]をクリックします。

この場合、95より上の場合にのみアラートを表示するようにしています。

最後に、データコレクタセットを保存して閉じます。

アラートの設定

デフォルトの設定では、どのアラートアクションを実行するかを設定する必要があります。 アラートを設定するには、アラートアクションとアラートタスクの2つの方法があります。 ユーザー定義→Cpu使用率の高いデータコレクタセットを選択し、デフォルトのDataCollector01エントリを右クリックし、プロパティを選択します。

エントリの監視を開始する最も簡単な方法は、アラートアクションタブに移動し、”アプリケーションイベントログにエントリを記録する”のチェックボ また、アラートの条件が満たされたときに別のデータコレクタセットを開始する便利なオプションもあります。 このようにして、必要に応じて追加のログを収集できます。 しかし、ここではエントリをログに記録するだけです。

アラートタスクの設定

これはすべてうまくいっていますが、最終的にはこの場合、実際のアラートは取得されず、新しいイベントログエントリだけです。 アラートタスクタブでは、スケジュールされたタスクを開始するようにこのデータコレクターに指示し、いくつかのパラメータを送信することができます。 この作業を行うには、2つのことを行う必要があります。 実行するスクリプトとスケジュールされたタスク自体を作成します。

ロギングスクリプト

以下は非常に単純なロギングスクリプトです。 アラートタスクによって出力されたアラートメトリックを読み取り、その結果をログファイルに送信します。

HighCPUAlert.ps1

$Date = $args $Threshold = $args $Counter = $args $Value = " {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter Add-Content -Value $Value -Path 'C:\HighCPUAlert.log' 

Scheduled task

ここでは、Data Collectorの呼び出し時に実際にスクリプトを実行するscheduled taskを作成する必要があります。 PowerShellを使用してスケジュールされたタスクを作成し、実行可能ファイルpwsh.exeで示されるように、PowerShell7を実行時として使用しています。

$Params = @{ "Action" = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:\HighCPUAlert.ps1 $(Arg0)" "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount "Settings" = New-ScheduledTaskSettingsSet } New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert' 

PowerShell7が正式にリリースされるまで、実行可能ファイルはpwsh-preview.exeになります。

アラートタスクの設定

最後に、データコレクタでアラートタスクを設定する必要があります。 これを行うには、DataCollector01のプロパティに再度移動し、次の詳細を入力します。

タスク引数はPowerShellの文字列として入力されるため、引用符で囲みます。 したがって、それらを引用することで、引数をインデックス、つまり$argまたは$argで簡単に分離できるようにしています。

保存をクリックすると、資格情報の入力を求めるメッセージが表示されることがあります。

データコレクタの実行

データコレクタセットを右クリックし、CPU使用率が高く、Startを選択すると、収集プロセスが開始されます。 スケジュールされたタスクを監視すると、監視間隔としきい値の設定に応じて、新しく作成されたスケジュールされたタスクが定期的に実行されます。

結論

Windowsの組み込みの監視ツールを使用することにより、コアユーティリティとPowerShellの周りにいくつかの有用で強力な監視ソリューションを構成するこ この柔軟性を使用すると、メトリックデータ収集を介して診断できるほぼすべての問題の底に到達することができます!

Adam Bertram
Adam Bertramは、ITの20年以上のベテランであり、経験豊富なオンラインビジネスの専門家です。 彼は多数のテクノロジー企業のためのコンサルタント、マイクロソフトMVP、blogger、トレーナー、出版された著者および満足なmarketerである。 でアダムの記事に追いつくadamtheautomator.com、LinkedInの上に接続するか、@adbertramでTwitterで彼に従ってください。全文を読む”

コメントを残す

メールアドレスが公開されることはありません。