分散監視 (Distributed Monitoring)


・ PSCWATCH (Passive Service Check Watchdog)

ところで、DMSにトラブルが生じデータを送ってこなくなった場合、自らサービスチェックを行わないCMSは、DMS上でどのような問題が生じているのかがわかりません。
したがって、異常が発生したという警告メールも送信しません。

そこで、この問題を解消するために PSCWATCH(Passive Service Check Watchdog) というアドオンパッケージを使います。

このPSCWATCHは、DMSが定期的に情報を送ってきているかどうかをチェックし、データが送られてこなくなったことを検知した場合、エクスターナルコマンドを利用してCMSのNetSaintにアクティブサービスチェックを行わせることができます。

こうして、CMSのNetSaintはDMSに対するサービスチェックを行い、トラブルが発生したことを知らせることができるようになるのです。

それでは、このPSCWATCHをCMSにインストールしてみましょう。

   # tar xvzf pscwatch-1.0b3
   # cd pscwatch-.0b3
   # ./configure
   # make all

これにより作成された (pscwatch-1.0b3/)pscwatch.cfg を次の様に修正します。(赤字部分)
なお、pscwatch.cfg に書かれているコメントは削除しています。

@ debug=1

A status_file=/usr/local/netsaint_dm/var/status.log

B mysql_host=localhost
  mysql_database=netsaint
  mysql_username=someuser
  mysql_password=somepassword
  mysql_port=3306

C process_disabled_checks=1
  process_nonscheduled_checks=1

D #service_list=servicelist.cfg

E exclude_service_list=0

F refresh_rate=60

G freshness_threshold=360

H command_file=/usr/local/netsaint_dm/var/rw/netsaint.cmd

I force_checks=0

設定内容を簡単に説明します。

@ メッセージをログに書き込みます。(デフォルト)

A status.logのフルパスです。

B MySQLを利用するときは、./configure --with-mysql とします。
  今回は利用していませんので、このままにしておきます。

C 不具合となったサービスをpscwatchの監視対象とする場合には、
     process_disabled_checks=1
  とし、実行予定されなくなったサービスを監視対象とする場合には、
     process_nonscheduled_checks=1
  とします。

D デフォルトでは、全てのサービスチェックがpscwatchの監視対象となります。
  特定のサービスのみを対象とする場合には、servicelist.cfg というファイルに
     <hostname>;<service_description>;<freshness_threshhold>
  というフォーマットで記入し、Eのexclude_service_list=0 とします。
  また、特定のサービスのみを対象から除外する場合には、servicelist.cfg にリストアップし、
  Eのexclude_service_list=1とします。

F pscwatchが監視する間隔です。(単位:秒)

G status.logに書かれたサービスがこの間チェックされないとアクティブチェックに切り替えます。
  (単位:秒)
H pscwatchがエクスターナルコマンドを書き込むファイルです。

I 予定通り実行されないサービスチェックを強制的に実行するようにします。
  デフォルトは「0」(実行しない)です。

修正した (pscwatch-1.0b3/)pscwatch.cfg と(pscwatch-1.03b3/src/)pscwatch をNetSaintをインストールしたディレクトリにコピーします。

   # cp -var pscwatch /usr/local/netsaint_dm/bin/
   # cp -var src/pscwatch.cgf /usr/local/netsaint_dm/var/

そして、pscwatch をデーモンとして稼動させます。

 # /usr/local/netsaint_dm/bin/pscwatch /usr/local/netsaint_dm/var/pscwatch.cfg

なお、PSCWATCHは、CMSのNetSaintの起動後に稼動させるようにしましょう。
PSCWATCHを稼動させた状態でNetSaintをストップし、再起動した場合に不具合が生じることがあります。

さて、このPSCWATCHですが、役立ちそうな気もしますが、実は大きな欠陥があります。
Iで予定通り実行されないサービスを強制的にチェックするように設定しても、CMSからは直接DMSのIPアドレスにアクセスできないのです。(^_^メ)

この問題は、NetSaintの作者であり、このPSCWATCHの作者でもある Ethan Galstad にしても、今のところどうしようもないようです。(~_~;)


back HOME