お知らせ


ED-20040315からstable-20050519へのバージョンアップに際し、 macro.mkに以下の変更があります。 以前のバージョンには、macro.mkのテンプレートであるmacro.mk-distに マクロREATTNの値が86400になっているという問題があったため、 stable-20050519で24に修正したいます。 REATTNの値は秒ではなく時間単位なので、 以前のバージョンをお使いいただいていた場合にはご注意下さい。

インストール

アーカイブの入手

アーカイブをGETします。

アーカイブの展開

GETしたperiodiag-stable-20050531.tar.gzを 適当なディレクトリに展開します。
gzip -cd periodiag-stable-20050531.tar.gz | tar xvf -
GNU tarであれば
tar xvzf periodiag-stable-20050531.tar.gz
でもよいです。

インストール物件の生成

展開されたperiodiagというディレクトリにcdします。
cd periodiag
macro.mk-distというファイルをmacro.mkという名前にコピーします。 このファイルには各種パラメータの定義がまとめてありますので、 管理者のポリシーやインストールするホストの事情に応じて このファイルで定義しているパラメータを変更して下さい。
ただし新規インストールではなくバージョンアップの際は 単純にmacro.mk-distをmacro.mkにコピーしないで下さい。 バージョンアップによりmacro.mk-distで定義されている識別子が 変更される可能性もあるので、既存のmacro.mkと新しいmacro.mk-distの内容を 適宜マージして下さい (stable-20050519では変更が生じています)。
それぞれのパラメータについて以下に説明します。
LIBEXEC_DIR
periodiagがインストールされるディレクトリです。
EXTERNAL_DIR
external moduleがインストールされるディレクトリです。
STAT_DIR
ステータスファイルが保持されるディレクトリです。
CONF_FILE
periodiagが参照する設定ファイルの名前です。
LIB_DIR
perilaiagおよびexternal moduleが利用するPerl moduleが インストールされる場所です。
LOG_FACILITY
syslog経由でログを採取する場合にはファシリティを指定します。 その場合に"でくくらなければいけないことに注意して下さい。 syslogを経由せず直接ファイルにログを書き出す場合には undefを指定して下さい。 undefを指定する場合には"でくくってはいけません。
LOG_FILE
LOG_FACILITYにundefを指定したときにログを書き出すファイル名です。
ADMIN
アラームのメールを送出する宛先です。
UCBMAIL
mailコマンドのパスです。
PS
psコマンドのパスです。 以前のバージョンではpsコマンドに与える引数を含んでいましたが、 stable-20050519でパスのみを指定するよう変更されました。
PS_FLAVOR
psコマンドのflavorです。 stable-20050531では4.4BSD、4.3BSD、SVR4の3つのflavorを 用意しています。 インストール対象のホストのpsコマンドが 4.4BSD、4.3BSD、SVR4のいずれでもうまく扱えない場合には、 PS.pmin/READMEを参考にインストール対象に合わせたflavorを 作成して下さい。
PERL
perlのパスです。
REATTN
periodiagは、復旧できないエラーが発生して コマンドが再起動できなかったときには、 periodiag自身がcronにより起動される度に アラームのメールを送出し続けて 2次災害が発生することを防ぐために、 そのプログラムの動作チェックを停止しますが、 REATTNで指定した時間が経過すると、もう1度チェックします。 そのときに復旧していれば通常通りのチェックを再開し、 再びエラーになれば、またREATTNの間、チェックを停止します。 REATTNは時間(hour)単位で指定します。 以前のバージョンでは、macro.mk-distの中で REATTNの値として86400が指定されているという問題がありましたが、 stable-20050519で24に修正しています。

external/macro.mkについても同様に作業し、 各macro.mkが編集できたらmakeを実行します。
make
調べた範囲の実装のmakeでは、 どれもincludeディレクティブを使うことができましたが、 もしお使いのmakeでincludeディレクテイブが使えないようなら Makefileの中のコメントに従ってm4を使ってMakefileを生成して下さい。 そのときに、トップディレクトリ以外に下位のディレクトリにも Makefileが存在していることに注意して下さい。

生成した物件のインストール

make install
を実行します。

設定

macro.mkのCONF_FILEという識別子に定義したファイル、 macro.mk-distから変更していなければ/usr/local/etc/periodiag.confを作成します。
このファイル(以下、periodiag.confとします)の書式を説明します。
#から行末まではコメントと見なされます。
行末の\は継続行を意味し、直後の改行は無視して 次の行を論理的には続きとみなします。
各行は3つのフィールドで構成されます。
行頭から空白までが第1フィールドで、periodiag.confの中での監視対象の識別子です。 external moduleはここで指定されている識別子を手がかりに起動されます。
次の非空白文字から空白までが第2フィールドです。 このフィールドはプロセスが動作しているかどうかの手がかりです。
noというキーワードは、そのプロセスが動作しているかどうかを チェックしないことを意味します。 inetd.confから起動されるdaemonやdaemon以外の動作確認のために使用します。
このフィールドの先頭文字が/であれば.pidファイルのファイル名と解釈され、 そのファイルに書かれているpidのプロセスが動作しているかどうかをチェックします。 ED-20050524で.pidファイルがレギュラーファイルであるかどうかの チェックが追加されましたので、シンボリックリンクを指定するとエラーになります。
それ以外の場合にはpsコマンドの出力からここに記述されている文字列を検索し、 プロセスが動作しているかどうかをチェックします。
その次の非空白文字以降、行末までは、 そのプロセスを再起動ためのコマンドと解釈されます。 このフィールドには空白を含むことができます。

動作確認

rootでperiodiagを起動し、 macro.mkで指定したログの内容を確認します。 意図通りに動作していなければ、periodiag.confを修正し、 STAT_DIRで指定したディレクトリの下のファイルを削除して 再びperiodiagを起動してみます。

crontabの設定

periodiagが適当な間隔で起動されるようにcrontabを設定して下さい。
以上でインストールは終了です。
periodiag
Copyright(c) 2003,2005 Koh-ichi Ito