分散監視 (Distributed Monitoring)


・ アクティブサービスチェックとパッシブサービスチェック

「アクティブサービスチェック」と「パッシブサービスチェック」の違いを簡単に言いますと、

アクティブサービスチェック NetSaint自身が行うホストやサービスのチェック
パッシブサービスチェック 外部のアプリケーションにより実行され、送られてきた結果をNetsainが行うチェック
外部のアプリケーションは、チェックした結果をエクスターナルコマンドファイルを通してNetSaintに送る。

ということになります。

パッシブサービスチェックの「外部のアプリケーション」とは、「DMS上のNetSaint」と読み替えていただくとわかりやすいかと思います。

アクティブサービスチェックは、今までのNetSaintで使ってきた基本的なサービスチェックの方法ですが、パッシブサービスチェックは次のような場合に使われます。
・ ファイアーウォールの背後にあるため、NetSaintが稼動しているホストから直接監視できない
 サービスのチェックを行うとき。
・ SNMPトラップやセキュリティアラートなど、その発生が不定期なため通常の方法ではチェック
 できないサービスのチェックを行うとき。

今回説明しているモデルは、ここでいう「ファイアーウォールの背後にあるため、NetSaintが稼動しているホストから直接監視できないサービスのチェックを行う」場合にあたります。


さて、このパッシブサービスチェックが行われるメカニズムですが、それは次のような仕組みになっています。
外部のアプリケーションがサービスチェックを行い、その結果がNetSaintのエクスターナルコマンドファイル(/usr/local/netsaint_dm/var/rw/netsaint.cmd)に送られる。

NetSaintはその内容をアクティブサービスチェックの結果を保存するのと同じキューに書き込む。

NetSaintは /usr/local/netsaint_dm/etc/netsaint.cfg の service_reaper_frequency で定義された時間(デフォルトでは10秒)毎にこのキューの内容をスキャンし、アクティブサービスチェックの結果と同様な方法でパッシブチェックサービスの結果を処理する。

この外部アプリケーションが、Netsaintのエクスターナルコマンドファイル(/usr/local/netsaint_dm/var/rw/netsaint.cmd)に書き込むときのフォーマットは次のとおりです。
[<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host_name>;<description>;<return_code>;<plugin_output>
                                            (実際には1行で記入します。)

なお、[<timestamp>] と PROCESS_SERVICE_CHECK_RESULT の間に半角のスペースが必要です。

ここで「PROCESS_SERVICE_CHECK_RESULT」は、いわば定数で、それ以外の変数は以下の内容となります。
timestamp サービスチェックが実行された時間。
UNIX TIME(1970年1月1日午前0時0分0秒を起点として現在までの経過時間を秒単位で表わす)を使用しています。
host_name hosts.cfg で定義されているチェック対象のホスト名。(例 : ms1)
description hosts.cfg で定義されているサービス名。(例 : WWW)
return_code 0=OK、1=WARNING、2=CRITICAL、-1=UNKNOWN
plugin_output サービスチェックした結果のテキスト。
(例 : PING OK - Packet loss = 0%, RTA = 0.62 ms )

なお、DMSのhosts.cfg で定義されているサービスがCMSのhosts.cfgで定義されていない場合には、CMSのNetSaintは送られてきた情報を処理できませんので注意してください。

さて、それではDMSのNetSaintからCMSのNetSaintにどのようにしてサービスチェックの結果を送るのでしょうか。
その答えが、アドオンパッケージの「 NSCA (NetSaint Service Check Acceptor)」です。


back HOME