パフォーマンスモニタで閾値を監視、alert メールを送信する

Windows Server 全般

Windows Server 2019 のパフォーマンスモニタで閾値を監視し alert メールを送信する方法です。

メール送信 script の作成とタスクの作成

メール送信用スクリプトの作成

以下内容で send.ps1 を作成し、「c:\work」に保存します。

param($smtpHost,$msgFrom,$msgTo,$msgSubject,$msgBody)
$objEmail = new-object System.Net.Mail.SmtpClient($smtpHost)
$objEmail.Send($msgFrom,$msgTo,$msgSubject,$msgBody)

タスクスケジューラへ登録

タスクスケジューラ (taskschd.msc) を起動し、[タスクスケジューラ (ローカル)] を右クリックし、[タスクの作成] を選択します。

[全般] タブで以下を入力します。

名前警告メール送信 (任意)
セキュリティ オプションタスクの実行時に使うユーザー アカウント
[ドメイン\タスクを実行する管理者アカウント]
ユーザがログオンしているかどうかにかかわらず実行する

[操作] タブ – [新規] で以下を入力します。

操作プログラムの開始
プログラム/スクリプトPowershell.exe
引数の追加 (オプション)スクリプトの相対パス

引数の [スクリプトの相対パス] は以下を指定します。

"c:\work\send.ps1 -smtpHost 'SMTP サーバーの FQDN または IP アドレス' -msgFrom '差出人メールアドレス' -msgTo '宛先メールアドレス' -msgSubject '件名' -msgBody 'メール本文'"

以下サンプルです。

"c:\work\send.ps1 -smtpHost 'ex01' -msgFrom 'taro@whitesnow.local' -msgTo 'exadmin@whitesnow.local' -msgSubject 'CPU 使用率超過' -msgBody 'CPU 使用率が 80 % を超えました。'"

動作テスト

[タスク スケジューラ] から、作成したタスクを右クリックし、[実行する] をクリックします。

受信者として指定したメールボックスにメールが配送されれば正常です。

パフォーマンスカウンターの設定

以下の例は CPU 使用率の閾値設定です。
CPU 使用率が 80 % を超えた場合にメールが送信されます。

  1. パフォーマンス モニター (perfmon.msc) を開き、[パフォーマンス] – [データ コレクターセット] – [ユーザ定義] を選択します。
  2. [ユーザ定義] を右クリックし、[新規作成] – [データ コレクターセット] を選択します。
  3. “新しいデータ コレクターセットを作成します” ダイアログで以下を入力します。
    1. 名前 : CPU 使用率 (任意)
    2. “手動で作成する (詳細)” を選択 > [次へ]
    3. “パフォーマンスカウンターの警告” を選択 > [次へ]
    4. [追加] をクリック
    5. “使用可能なカウンター” 一覧から、[Processor] – [%Processor Time] を選択
    6. “選択したオブジェクトのインスタンス” で “Total” を選択 > [追加] > [OK]
    7. “警告する時期” 欄で、”より上” を選択し、”制限値” に 80 を入力 > [次へ]
    8. “保存して閉じる” を選択 > [完了]

作成したメール送信タスクを指定

  1. パフォーマンス モニターを開き、[パフォーマンス] – [データ コレクターセット] – [ユーザ定義] から”CPU 使用率”を選択します。
  2. DataCollector01 を右クリックして “プロパティ” を開きます。
  3. “DataCollector01 のプロパティ” ダイアログで以下を入力します。
    • 警告タブ
      “サンプルの間隔” を指定
    • 警告のタスクタブ
      “警告が出されたときに実行するタスク” に、作成したタスク “警告メール送信” を入力 > [OK]
  4. パフォーマンス モニターを開き、[パフォーマンス] – [データコレクターセット] – [ユーザ定義] から”CPU 使用率”を右クリック > “開始” を選択します。

コメント

タイトルとURLをコピーしました