10.4 稼働監視機能の設定(ユーザコマンドの実行)
稼働監視によって障害を検知した場合に,ユーザが定義したコマンドを実行させることができます。
ユーザコマンドは,稼働監視コンポーネントで管理するスレッドプールを使って,java.lang.ProcessBuilderによって実行します。クラウド・コンテナの管理インフラに情報を通知するコマンドを定義することで,情報通知ができます。
ユーザコマンドを定義するには,コマンドの内容とコマンドを実行するスレッドプールをconfig.properties(本製品の設定ファイル)に設定する必要があります。
設定できる項目は次のとおりです。
-
スレッドプールのサイズ
-
実行するコマンド
-
コマンドの引数
-
ユーザコマンドの標準出力をリダイレクトするファイルパス
-
ユーザコマンドの標準エラー出力をリダイレクトするファイルパス
該当するプロパティと設定例を次に示します。プロパティキーの「healthcheck.usercommand.defs.」の後ろに指定した<group-id>文字列がユーザコマンド定義のIDになります。この例では,「exec1」がユーザコマンド定義のIDです。
healthcheck.usercommand.threadpoolsize=10 healthcheck.usercommand.defs.exec1.command=senderrorCommand healthcheck.usercommand.defs.exec1.args.1=param1 healthcheck.usercommand.defs.exec1.stdout.file.path=${common.base}/stdout.log healthcheck.usercommand.defs.exec1.stderr.file.path=${common.base}/stderr.log
config.properties(本製品の設定ファイル)については,「12.2 config.properties(本製品の設定ファイル)」を参照してください。
ユーザコマンド定義のIDは,各監視項目の障害検知時の動作のアクションとして複数指定できます。複数指定したユーザコマンドのうち,1つの実行に失敗した場合,そのユーザコマンドに失敗したことを示すメッセージKDLR20228-Eを出力して,次のコマンドの実行を継続します。スレッドプールはユーザコマンド全体で共有します。