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 % を超えた場合にメールが送信されます。
- パフォーマンス モニター (perfmon.msc) を開き、[パフォーマンス] – [データ コレクターセット] – [ユーザ定義] を選択します。
- [ユーザ定義] を右クリックし、[新規作成] – [データ コレクターセット] を選択します。
- “新しいデータ コレクターセットを作成します” ダイアログで以下を入力します。
- 名前 : CPU 使用率 (任意)
- “手動で作成する (詳細)” を選択 > [次へ]
- “パフォーマンスカウンターの警告” を選択 > [次へ]
- [追加] をクリック
- “使用可能なカウンター” 一覧から、[Processor] – [%Processor Time] を選択
- “選択したオブジェクトのインスタンス” で “Total” を選択 > [追加] > [OK]
- “警告する時期” 欄で、”より上” を選択し、”制限値” に 80 を入力 > [次へ]
- “保存して閉じる” を選択 > [完了]
作成したメール送信タスクを指定
- パフォーマンス モニターを開き、[パフォーマンス] – [データ コレクターセット] – [ユーザ定義] から”CPU 使用率”を選択します。
- DataCollector01 を右クリックして “プロパティ” を開きます。
- “DataCollector01 のプロパティ” ダイアログで以下を入力します。
- 警告タブ
“サンプルの間隔” を指定 - 警告のタスクタブ
“警告が出されたときに実行するタスク” に、作成したタスク “警告メール送信” を入力 > [OK]
- 警告タブ
- パフォーマンス モニターを開き、[パフォーマンス] – [データコレクターセット] – [ユーザ定義] から”CPU 使用率”を右クリック > “開始” を選択します。
コメント