periodiag
概要
periodiag(PERIODical DIAGnosis)はdaemonなどを監視し、
異常時には自動復旧を試みるツールです。
基本的な動作は指定されたプロセスが動作していることを確認し、
動作していなければ再起動を試みることですが、
external moduleと呼ばれる外部モジュールを用意することにより、
それぞれのdaemonの仕様に踏み込んだ動作確認、
例えばネットワークサービスを提供するdaemonであれば、
アプリケーションプロトコルでアクセスして正常性の確認を行い、
判定結果によってdaemonを強制終了した上で再起動することもできます。
さらにinetd経由で起動されるdaemonや、さらにはdaemon以外について
プロセスが存在するかどうかは確認せずに仕様に沿った動作確認だけを行い、
異常時にはアラームを生起することもできます。
periodiag自身が何らかの理由で異常終了し、
監視が停止してしまう危険を回避するため、
periodiagは継続的には動作せずcronで定期的に起動されることを前提としており、
起動されると一連の動作確認と、異常が検知されたときには
所定の処置を行って終了します。
big brotherとの住み分け
periodiagと同様に、
定期的にアプリケーションプロトコルに踏み込んだ動作確認を行えるツールに
big brotherがありますが、
periodiagとbig brotherは競合したり機能的に包含関係にあるツールではありません。
big brotherはネットワークを経由して監視対象ホストの外部から監視が行えるので、
監視対象全体に及ぶトラブルが発生しても、
big brother自体がその影響を受けることは避けられますが、
異常を検知したときに復旧を試みる機能はありません
(あまりきちんと調べていないので間違いかも :-)。
一方、periodiagには異常を検知したときに復旧を試みる機能がありますが、
監視対象のホスト自身で動作するので、ホスト全体に渡るトラブルが発生したときには
periodiagも巻き添えになって動作できなくなる可能性があります。
ダウンロード
Changes
-
- 2005年5月24日
-
- stable-20050519に、4.4BSDで監視対象のプロセスが
動作していないことを検出できないという
問題が発見されたので修正しました。
- サブルーチンの返り値などのチェックを強化しました。
-
- 2005年5月19日
-
- psコマンドのプラットフォーム依存性の切り分けが
不十分だったので、psコマンドに依存する
サブルーチンをPS.pmというモジュールに切り出して
プラットフォーム依存性を隠蔽しました。
- SunOS 5.7でインストールできるようにし、動作を確認しました。
- macro.mkのテンプレートであるmacro.mk-distの中で
REATTNの値として86400が指定されていましたが、
REATTNの値は秒単位ではなく時間単位なので、
24に修正しました。
- ED-20040315からstable-20050519への変更点は
移植性の改善ですので、ED-20040315が
問題なく動作していた場合には
バージョンアップの必要はありません。
ただし、ED-20040315を継続利用される場合にも
macro.mkのREATTNの値をご確認いただき、
必要に応じて、修正の上、再インストールして下さい。
-
- 2004年3月15日
-
- httpd用のexternal moduleのPIDの扱いにbugがあり、
異常検出時の強制再起動が正しく動作しなかったのを
修正しました。
- tcpchat()(external/Modules/TCPchat.pmin)にbugがあり、
external/httpd.inなどtcpchat()を利用するプログラムで
ターゲットとのTCPコネクションが確立できなかった場合に
Use of uninitialized value
というエラーが発生したのを修正しました。
-
- 2003年10月8日〜10月10日
- 10月8日に追加したsnmptrapd用のexternal moduleに問題がありました。
誤って開発途中のスナップショットを
importしてしまったようなのと、
フィールドテストで判定条件に誤りがあるのが発見されました。
rev.1.2以前のexternal/snmptrapd/snmptrapd.inには
問題がありますので、お手許にあるのがrev.1.1か1.2の方は
お手数ですが現時点の配布物に含まれるrev.1.3と
差し替えていただけるようお願いします。
ご迷惑をおかけすることをお詫びします。
-
- 2003年10月8日
-
- net-snmpのsnmptrapdを監視するexternal/snmptrapdを
追加しました。
- external/macro.mkを作成し、external moduleに関する
マクロ定義をトップレベルのmacro.mkから移動しました。
- 各階層のMakefileをverboseにしました。
-
- 2003年9月26日
-
- トップディレクトリのMakefileを修正し、
macro.mkへの依存性を記述しました。
- external/Makefileを修正し、${OUT}が空のときに
make installがエラーになる問題を修正しました。
[software|Top page]
Copyright(c) 2003-2005 Koh-ichi Ito