付録C.3 監視コマンドの作成

HAモニタでは,HAモニタとインタフェースを持たないサーバについては,サーバ障害をHAモニタに通知するためのプログラムをHAモニタに登録する必要があります。したがって,HAモニタとのインタフェースを持たないHTTP Serverを監視対象とするためには,HTTP Serverの動作を監視するコマンドを作成してください。監視対象としない場合はコマンドを作成する必要はありません。

HTTP Serverでは,実行コマンドと実際にサービスするプロセスが異なります。HAモニタの監視対象とするためには,実際のプロセスを監視するコマンドを作成してください。

次に「HTTP Serverに障害が発生して停止したと同時にその実行を終了する」という処理をするスクリプトの例を示します。

(例)
PidFileディレクティブで指定したファイルに記録されているプロセスIDが実行中かどうかを,5秒おきに監視するシェルスクリプト(httpsd_monitor)です。

#!/bin/sh
###############################################################
### ALL RIGHTS RESERVED. COPYRIGHT (C) 2000, 2002, HITACHI,LTD.
###############################################################
HWSIDFILE=/opt/hitachi/httpsd/logs/httpd.pid
HWSITIME=5

if [ ! -e $HWSIDFILE ]
then
   exit 1
fi

HWSID=`cat $HWSIDFILE`
if [ x$HWSID = "x" ]
then
   exit 1
fi

while true
do
  STATUS=`ps -p $HWSID | grep $HWSID | awk '{print $1}' `
  if [ x$STATUS = "x" ]
  then
    break
  fi
  sleep $HWSITIME
done

exit 0

<この項の構成>
(1) 注意事項

(1) 注意事項

HTTP Serverでは,リクエストを処理するためのプロセス群を制御するプロセスが一つあります(「4.1 HTTP Serverの処理とディレクティブとの関係」参照)。例に示したスクリプトhttpsd_monitorでは,その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。