ED-20040315からstable-20050519へのバージョンアップに際し、
macro.mkに以下の変更があります。
- マクロPSが、以前のバージョンではpsコマンドの引数を含んでいたが、
stable-20050519ではpsコマンドのパス名のみになった。
- マクロPS_FLAVORが追加された。
以前のバージョンには、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を起動してみます。
periodiagが適当な間隔で起動されるようにcrontabを設定して下さい。
以上でインストールは終了です。
periodiag
Copyright(c) 2003,2005 Koh-ichi Ito