本記事は以前に公開したEasyBlocks リソース監視で自作プラグインを使用した独自監視してみたの内容をベースに、WindowsOSのサービス監視を試してみた内容になります。
今回も自作プラグインを使用していますので、まだ記事を読んでいない方は先に公開済みの記事から読むことを推奨します。
はじめに
「EasyBlocks リソース監視で、WindowsOSの監視はできますか?」という質問をいただくことがあります。
例えば、pingを使用した死活監視や、トラフィック、CPU使用率の監視は標準実装されている機能から監視可能ですが、Windowsで稼働しているサービス等の監視は対応していません。
ただし、自作プラグインを用意すれば監視可能なので今回は簡単なプラグインを用意して実際に試したいと思います。
※自作プラグインについての解説やEasyBlocks リソース監視自体の解説はこちらの記事を参照してください。
事前準備
WindowsOS
・エージェントインストール
EasyBlocks リソース監視の監視部分はベースソフトウェアにNagiosを使用しています。
Nagios を使用して監視対象の内部状況を監視するためには、エージェントをインストールする必要があり、今回は「NSClient++」をインストールしました。
NSClient++はWindowsデバイスを監視するために必要なエージェントのひとつです。
外部サイトですがこちらからダウンロードし、監視対象のWindowsOS装置にインストールしました。
インストール方法はインストールウィザードに従ってインストールしてください。
EasyBlocks リソース監視
・自作プラグイン作成
EasyBlocks リソース監視側で必要な事前準備としては、自作プラグインを用意する必要があります。
実態は自作のスクリプトになりますが、今回は以下のようなスクリプトを用意しました。
自作プラグインについてはこちらのドキュメントも確認してください。

用意したスクリプト自体はとてもシンプルなもので、構成要素としては大きく二つだけです。
- 6行目にあるNagiosのcheck_ntを使用してWindowsOSの対象装置に対してサービス状況の確認を実施しています。
- 9行目から21行目にかけて、6行目の結果を0(OK)、1(WARNING)、2(CRITICAL)、3(UNKNOWN)で判定しています。
※注意事項※
サンプルプログラムのため動作を保証するものではありません。
コマンドの実行が失敗した場合や応答結果が予期しない値だった場合などのエラーハンドリングはしていません。実運用では例外処理などを組み込んだ内容にすることが必要になります。
・自作プラグインアップロード

①監視コマンドプラグインを選択し、②ファイルを選択し、③確認を押します。
確認を押すと以下のように展開されます。

ここからプラグイン名等を設定していきます。 今回は以下の通りにしました。

①プラグイン名・ファイル名・表示名は今回全てcheck_snmp_serviceとし、②は用意したプラグイン実行時に渡される引数です。
なお、今回のプラグイン内ではWindowsOSのSNMPサービス状況を取得するために以下のコマンドを実行しています。
/usr/lib/nagios/plugins/check_nt -H “$host” -p 12489 -s plathome -v SERVICESTATE -l “SNMP”
各要素の意味は以下の通りです。
- /usr/lib/nagios/plugins/check_nt:nagiosのcheck_ntコマンド
- -H “$host”:監視対象のIPアドレス
- -p 12489:監視対象のポート番号
- -s plathome:監視対象のパスワード
- -v SERVICESTATE:監視対象のサービス状況取得
- -l “SNMP”:SNMPサービスが稼働しているか確認
今回は必要な引数として「-H “$host”」と、監視対象のIPアドレスだけにしています。
それ以外に必要なポート番号、パスワードなどはコマンド内に埋め込んでいます。
サービス状況を監視したい監視対象が複数いて、ポート番号やパスワードが異なる場合は埋め込まずに引数として運用してください。
今回はホスト部分のみ引数としているので③の取得ボタンを押すと以下の通り展開されます。

①で監視対象のIPアドレスを入力し、②動作確認ボタンを押します。

①監視対象のWindowsマシン上でSNMPサービスが稼働しているため、OKという判定になります。
試しに監視対象のWindowsマシン側でSNMPサービスを停止して確認します。

①SNMPサービスが停止しているため、CRITICAL判定となりました。
あとは追加したプラグインを使用して監視パターンを作成します。
・監視パターン作成

①監視コマンドで追加プラグインを選択し、用意した「check_snmp_service」を選択します。
今回用意したプラグインに必要な引数は監視対象のIPアドレスのみなので、監視対象を選択するのみとなります。
確認

監視状況一覧で赤く囲った通り、正常に監視出来ていることが確認できました。
まとめ
今回は自作プラグインを使用したWindowsOSマシンのサービス監視を実施しました。
自作プラグインを用意する必要はありますが、標準実装されている監視項目以外にも自分だけの監視が実装可能なので、まだ試していない方は是非お試しください。