2017年12月18日月曜日

プロセス監視スクリプト (Windows版)

前回、Linux版のプロセス監視スクリプトを作ったので、同じ仕組みでWindows版を作ってみた。

★Linux版はこちら↓

・プロセス監視スクリプト (Linux版)
https://tech-mmmm.blogspot.jp/2017/12/linux.html

実現方法

本スクリプトの設計概要を図示する。Linux版のスクリプトをもとにPowerShellで書き直しただけなので、作りは基本的に同一となっている。


エラーメッセージについてはテキストログではなく、Windowsイベントログ (アプリケーション)に出力をさせるようにする。イベントログにメッセージを出力させる際に、メッセージソースの登録が必要となるため、事前に管理者権限でPowerShellのプロンプトを開き、以下コマンドを実行しておくこと。

PS > New-EventLog -LogName Application -Source "Process Check Script"

スクリプト

以下にスクリプトのコードを記載する。GitHubにも置いてみた。

https://github.com/TetsuOkamoto/check-process-windows

・スクリプトファイル名:check-process.ps1
・設定ファイル名:check-process.conf

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

タスクスケジューラーにて本スクリプトを1分間隔で実行するように設定する。こちらの方法については、以下別記事を参照。

・タスクスケジューラーを使って1分間隔で実行するタスクを作成する方法
https://tech-mmmm.blogspot.jp/2017/12/1.html

Zabbixを使った監視テスト結果

Zabbixでは、Windowsイベントログ (アプリケーション)に「エラー」のイベントが出力された際に通知するようトリガーを設定すればよい。

実際に監視対象のプロセスを停止した際に、以下のように、プロセスダウンを検知することができた。

------------------------------
2017.12.17 08:23:20

Trigger: Eventlog Application
Trigger status: PROBLEM
Trigger severity: Average
Trigger URL:

Item values:

1. Eventlog Application (t1081w12r:eventlog[Application,,"Error",,,,skip]): Process "WinShot" down
2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

Original event ID: 3607
------------------------------

0 件のコメント:

コメントを投稿

人気の投稿