4.4.1 サーバの監視コマンド
HAモニタ kitは,サーバの監視コマンドのサンプルファイルを提供しています。サンプルファイルをコピーしてここで説明する内容に従って設定し,必要に応じてカスタマイズしてください。サンプルファイルの格納場所やコピー先については,「3.2.8(1) サーバの起動・停止・監視コマンドの設定」を参照してください。
サーバの監視コマンドのサンプルファイルは,監視処理が記述されたpatrol_proc()シェル関数を,HAモニタのサーバ対応の環境設定のptrlcmd_ex_interオペランドの間隔で実行し,OracleインスタンスとOracleリスナーを監視します。
サーバの監視コマンドのサンプルファイルの内容を次の図に示します。
-
プログラムの監視に必要な動作環境を設定する環境変数です。
ここで設定する内容については,「(1) 環境変数」を参照してください。
-
Oracleインスタンスの監視処理です。
haorainsptlコマンドを実行して,インスタンス識別子で指定したOracleインスタンスを監視する処理が記述されています。ここで設定する内容については,「(2) 設定方法」を参照してください。
haorainsptlコマンドについては,「4.6 サーバの起動・停止・監視コマンドの設定に使用するコマンド」の「haorainsptl(Oracleインスタンスの状態確認)」を参照してください。
-
Oracleリスナーの監視処理です。
haoralsnrptlコマンドを実行して,リスナー名で指定したOracleリスナーを監視する処理が記述されています。ここで設定する内容については,「(2) 設定方法」を参照してください。
haoralsnrptlコマンドについては,「4.6 サーバの起動・停止・監視コマンドの設定に使用するコマンド」の「haoralsnrptl(Oracleリスナーの状態確認)」を参照してください。
-
patrol_proc()シェル関数の処理です。
ユーザ独自の処理を追加したい場合,このpatrol_proc()シェル関数の中に追加します。ここで設定する内容については,「(3) サーバの監視コマンドのカスタマイズ」を参照してください。
- 〈この項の構成〉
(1) 環境変数
図4-3の1.の環境変数について説明します。
-
サーバログのファイル名を指定します。起動・停止・監視コマンドのLOGNAMEの値は,すべて同じ値を指定してください。また,サーバごとにユニークな値を指定してください。そのためLOGNAMEに指定する値は,サーバのサーバ識別名と合わせることをお勧めします。提供するサンプルファイルでは,サーバ識別名として「orasrv」が仮定されています。
サーバログの出力先については,「5.4 サーバログの確認」を参照してください。
-
サーバログのファイルサイズ(単位:バイト)を整数で指定します。デフォルトでは「1048576」が仮定されています。通常はデフォルトのファイルサイズのまま運用します。出力内容が多く,ログ情報が不足する場合にだけ拡張してください。サーバログのファイルサイズの算出方法については,「5.4.2 ファイルサイズ」を参照してください。
なお,LOGNAME環境変数に同じ値を指定したサーバでは,サーバの起動・停止・監視コマンドのLOGSIZE環境変数に同じ値を指定してください。
(2) 設定方法
図4-3の2.と3.の監視処理の設定方法について説明します。
-
図中の2.(Oracleインスタンスの監視処理)の設定
-
提供するサンプルファイルでは,サーバに対応するOracleインスタンス(インスタンス識別子「orcl1」)を一つ監視する設定になっています。サーバに対応するOracleインスタンスがない場合は,図中の2.の記述をコメントアウト,または削除してください。一つのサーバで複数のOracleインスタンスを監視したい場合は,図中の2.の記述を追加してください。
監視処理の結果,スローダウンを検知した場合は,サーバの監視コマンドの戻り値に10を返します。これによってHAモニタはサーバ障害と判断します。
監視処理が失敗した場合は,サーバの監視コマンドの戻り値に1を返します。これによってHAモニタは監視処理をリトライします。
-
提供するサンプルファイルでは,インスタンス識別子として「orcl1」が仮定されています。下線部の引数「orcl1」を,監視したいOracleインスタンスのインスタンス識別子に変更してください。
-
-
図中の3.(Oracleリスナーの監視処理)の設定
-
提供するサンプルファイルでは,サーバに対応するOracleリスナー(リスナー名「LISTENER」)を一つ監視する設定になっています。サーバに対応するOracleリスナーがない場合は,図中の3.の記述をコメントアウト,または削除してください。一つのサーバで複数のOracleリスナーを監視したい場合は,図中の3.の記述を追加してください。
監視処理の結果,スローダウンを検知した場合は,サーバの監視コマンドの戻り値に11を返します。これによってHAモニタはサーバ障害と判断します。
監視処理が失敗した場合は,サーバの監視コマンドの戻り値に2を返します。これによってHAモニタは監視処理をリトライします。ただし,図中の2.(Oracleインスタンスの監視処理)で,サーバの監視コマンドの戻り値が10以上の場合は,Oracleリスナーの監視処理が失敗しても戻り値を変更しません(戻り値2を返しません)。
-
提供するサンプルファイルでは,リスナー名として「LISTENER」が仮定されています。下線部の引数「LISTENER」を,監視したいOracleリスナーのリスナー名に変更してください。
-
なお,OracleインスタンスおよびOracleリスナーの監視順序を変更したい場合は,ファイル内の監視処理の順番を変更してください。
(3) サーバの監視コマンドのカスタマイズ
サーバの監視コマンドの中に,業務に必要な,Oracle以外のアプリケーションの処理やユーザ独自の処理などを追加できます。カスタマイズをする場合には,次の注意事項に従ってください。
-
処理を追加する前に,マニュアル「HAモニタ Linux(R)編」の「サーバの監視コマンドの作成」の説明を参照してください。
-
処理は,サーバの監視コマンド内のpatrol_proc()シェル関数の中に追加してください。patrol_proc()シェル関数とシェル変数以外は,編集しないでください。
ここに記述した処理はスーパユーザの権限で実行されます。権限を変更した場合は,スーパユーザの権限に戻してください。
-
patrol_proc()シェル関数の中では,exitコマンドを使用しないでください。処理を終了させる場合は,returnコマンドを使用してください。
-
patrol_proc()シェル関数のリターンコードが0以外の場合,patrol_proc()シェル関数のリターンコードがサーバの監視コマンドの終了結果(EXITコード)となります。HAモニタは,サーバの監視コマンドの終了結果(EXITコード)に応じた動作をします。詳細は,マニュアル「HAモニタLinux(R)編」を参照してください。
-
patrol_proc()シェル関数の中では,無限ループなどの終了しない処理を作り込まないでください。
-
patrol_proc()シェル関数が出力するメッセージの出力先については,「5.4 サーバログの確認」を参照してください。
-
patrol_proc()シェル関数の中で実行するコマンドや入出力するファイルは,絶対パスで指定してください。ここでいうコマンドとは,HAモニタ kitが提供するコマンド以外のものを指します。
-
次のシェル変数名を変更しないでください。
-
LOGNAME
-
LOGSIZE
-
-
シェル変数を追加する場合は,コマンド内を検索し,すでに使用されていないことを確認してから追加してください。