※LifeKeeper for Linux v9.7.0 からオンラインマニュアルに Apache Recovery Kit の処理概要が追加されました。
管理ガイドにある処理概要をご参照ください。
https://docs.us.sios.com/spslinux/9.7.0/ja/topic/application-recovery-kits
Apache Recovery Kitが提供する監視機能と起動処理、停止処理についてご説明します。
対象製品
・Apache Recovery Kit (LifeKeeper for Linux)
※本処理概要は LifeKeeper for Linux v9.0.0に付属するリカバリキットをもとに作成しています。
監視機能
Apache Recovery Kitは以下の2つの項目を監視しています。
(1) PIDファイルが存在し、リソースインスタンスが持つhttpdのPIDと一致するかどうかを確認します。
具体的には、下記のPIDファイルから取得したPIDをもとにコマンドラインを発行し、
当該PIDがhttpdプロセスのものであることを確認します
PIDファイル: /var/run/httpd.${INSTANCE} .pid
コマンドライン: # ps h --cols 4096 $PID | fgrep httpd
※${INSTANCE} はApacheのリソースIDの先頭文字列”apache-“を省いたものです。
(2) 設定ファイル内に定義されたIP:PORTに対して、sessionを張ることができるかどうかを確認します。
具体的には、PerlのIO::Socketモジュールを用いてsessionが作成できることを確認します。
IO::Socket::INET->new ( Proto => “tcp”, PeerAddr => “<仮想IP>”, PeerPort => “<ポート番号>” );
いずれかの結果に問題があった場合、ローカルリカバリを開始します。
ローカルリカバリに失敗した場合に、待機系サーバへの切替処理に移行します。
起動処理
Apache Recovery Kitを通じてApacheリソースを起動する場合、以下の処理が実行されます。
(1) 設定ファイルから、SSLを使用するかどうかを確認します。
サーバ上のssl.confファイルの存在をもとに使用の有無を確認します。
(2) SSLの使用有無によって、下記の通り実行されるコマンドが異なります。
(2-1) SSLを使用する場合は、以下のコマンドを実行します。
$HTTPD_PATH $DOPTS -d “”$SERVER_ROOT”” -f “”$CONF_FILE”” -c “”SSLPassPhraseDialog exec:$ssl_exec”” -c “”PidFile $PIDFILE””
(2-2) SSLを使用しない場合は、以下のコマンドを実行します。
$HTTPD_PATH $DOPTS -c “”PidFile $PIDFILE”” -d “”$SERVER_ROOT”” -f “”$CONF_FILE””
尚、各変数には以下の値が格納されます。
$HTTPD_PATH : リソース作成時のApache(httpd)のバイナリのフルパス
$DOPTS :
$SERVER_ROOT : リソース作成時に指定したServerRootのパス
$CONF_FILE : 起動に使用するコンフィグレーションファイルのパス
$PID_FILE : PIDファイルのパス
※ RHEL4のデフォルトのApacheにて、ssl.confをincludeしてSSLを有効にしている場合は、-d オプションは利用されません。
(3) (2-1),(2-2)で実行したコマンドの戻り値を確認し、正常に終了したかどうかを判定します。
停止処理
Apache Recovery Kitを通じてApacheリソースを停止する場合、以下の処理が実行されます。
(1) PIDファイルを削除します。
# rm -f /var/run/httpd.${INSTANCE}.pid
(2) PIDにTERMシグナルを送ります。
# kill -TERM $PID
(3) プロセスが終了されたか確認します。
# ps h $PID
(4) プロセスが終了していなかった場合、PIDにKILLシグナルを送ります。
# kill -KILL $PID
※${INSTANCE} は Apache のリソースIDの先頭文字列 “”apache-“” を省いた文字列です。
回復処理
Apache Recovery Kitを通じてApacheリソースを再起動する場合、起動処理のみが実施されます。
具体的な処理は上述の「起動処理」をご参照ください。
関連資料
[Linux]Apache リソースの httpd ログに対する loglotate 設定方法
https://lkdkuserportal.sios.jp/hc/ja/articles/360037724391
改訂履歴
[公開日:2010年01月29日] [更新日:2011年06月01日] [更新日:2016年11月25日] 各処理で実行されるコマンドラインを追加しました。