7.2.1 監視二重化構成における自動対処アクションの推奨設定
自動対処アクション定義ファイル(autoactconf.json)は,お客様側で操作・管理する定義ファイルです。JP1 Cloud Service側では編集・変更を行うことはできません。システム切り替えや切り戻しのタイミングにおいて,JP1 Cloud Service側から自動対処アクションの有効化/無効化パラメータを動的に変更することもできません。この仕様上の制約を踏まえ,自動対処アクションを監視二重化構成(主系・副系)で運用する場合には,自動対処アクションが重複して実行される可能性があることにご留意ください。
本章では,一例として重複実行を回避するための運用方法を紹介します。ただし,実際の運用方針や回避方法については,お客様のシステム構成や要件に応じてご判断いただく必要があります。本内容は参考情報としてご活用ください。
-
定義ファイルは常時「有効(valid: true)」で設定
両系サーバに配置する自動対処アクション定義ファイル(autoactconf.json)の"valid"パラメータは,常にtrueに設定し,アクションが常時有効となるようにします。
-
アクション実行可否はスクリプト内で制御
アクション定義から呼び出されるシェルスクリプト内で,処理の実行可否を判定します。特に副系サーバでは,主系サーバへの疎通確認(REST API)を行い,以下のように動作を分岐させます。
-
主系が稼働中の場合,副系は処理をスキップ
-
主系が停止中の場合,副系が処理を代行実行
-
-
お客様による準備・実装・運用
以下の作業はすべてお客様側で実施していただきます。
-
スクリプトの作成および配置
-
疎通確認ロジックの実装
-
定義ファイルの管理および同期
-
- 注意事項
-
-
定義ファイルの同期について,障害対応などで片系のみ定義ファイルを更新した場合は,IM定義ファイル操作機能を使用して両系の定義を同期するようにお客様側で計画・実施してください。
-
主系または副系のみでアクションを実行する場合,片系のみで自動対処アクションを実行する構成の場合は,疎通確認ロジック(REST API)は不要です。
-
(1) アクション実行シェルスクリプトの作成
アクション実行シェルスクリプトについては,一例として,以下の方針に基づいて作成・管理いただくことを推奨いたします。これらは強制ではなく,運用上の参考情報としてご活用ください。
-
主系・副系ともに同一ファイル名のアクション実行シェルスクリプトを使用することを推奨します。
-
主系・副系で同一のコーディング内容を推奨します。
なお,アクション実行シェルスクリプトにおけるコーディングの設定内容については,JP1 Cloud Serviceの参考情報として説明します。最終的な実装方針については,お客様自身の判断によりご検討・ご決定いただけますようお願いいたします。
(a) シェルの形式
先頭行に以下を記述し,Bashシェルとして作成します。
(b) 主系・副系の判定と処理分岐
自動対処アクション実行時,副系サーバが主系サーバの稼働状況を確認するための疎通判定ロジックを副系サーバでのみ主系サーバへの疎通確認を実施するようにアクション実行シェルスクリプトを実装してください。
-
自身が副系である場合に限り,主系サーバに対してREST APIを使用した疎通確認を行います。
-
自身が主系である場合は,疎通確認処理(REST APIの実行)は行わないようにします。
副系サーバから主系サーバへの疎通確認には,以下のREST API※1を使用します。
副系サーバおよび主系サーバのIPアドレスはJP1 Cloud Serviceの「ご利用環境情報(ジョブ管理,システム管理)」からご確認ください。
主系または副系の判定は,自動対処アクション定義ファイル(autoactconf.json)に定義した引数${event:ACTHOST:} を使用してホスト名を取得し,その情報をもとに判定します。副系サーバおよび主系サーバのホスト名はJP1 Cloud Serviceの「ご利用環境情報(ジョブ管理,システム管理)」からご確認ください。
アクション実行用のシェルスクリプトでは,主系/副系の判定を行うために,ホスト名を引数として受け取る必要があります。JP1 Cloud Serviceの仕様により,メール通知スクリプトの有無によって使用する引数の位置が異なります。
|
# |
条件 |
使用する引数 |
説明 |
|---|---|---|---|
|
1 |
メール通知スクリプトを実行しない場合 |
$1 |
$1に${event:ACTHOST:}の値(ホスト名)が格納されます。 |
|
2 |
メール通知スクリプトを実行する場合 |
$9 |
$9に${event:ACTHOST:}の値(ホスト名)が格納されます。 |
これらの引数により,スクリプト内でホスト名を取得し,主系/副系の判定処理を行うことができます。
また,副系サーバにおいて主系サーバとの疎通確認を行った結果に応じて,以下のように処理を分岐させます。主系サーバが稼働中かどうかは,HTTPステータスコードまたはcurlコマンドの戻り値を用いて判定します。
|
# |
HTTPステータスコード |
curlの戻り値 |
判定内容 |
副系サーバの動作 |
|---|---|---|---|---|
|
1 |
200(正常) |
0(正常) |
主系サーバが稼働中 |
主系サーバが正常に稼働していると判断し,副系サーバでは後続の処理(通知やコマンド実行など)を行わず,スクリプトを終了します。 |
|
2 |
200以外 |
0以外 |
主系サーバが停止中 |
定期メンテナンスおよび保守メンテナンスで対応できないメンテナンスについて,お客様と個別に日程を調整して実施するメンテナンスです。早急な対策が必要とされる事象が発生した場合などが該当します。 |
この分岐処理により,主系が稼働している場合は副系による重複処理を防ぎ,主系が停止している場合には副系が自動的に対応することで,システムの可用性と信頼性を確保します。
- 注※1
-
curlコマンドによるREST APIの疎通確認は,一時的なネットワーク障害で失敗する可能性があるため,複数回のリトライ処理を追加することで誤検知を防ぐことを推奨します。
(c) 実行結果の確認
アクション実行シェルスクリプト内に標準出力メッセージを記述することで,統合オペレーション・ビューアーの「対処アクション結果一覧」画面にて出力内容を確認できます。
(2) アクション実行シェルスクリプトの配置
作成したアクション実行シェルスクリプトは,両系サーバの/usrfile領域に同一ファイル名で格納します。アクション実行シェルスクリプト配置方法は,マニュアル「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」の「10.1.2 アップロード」を参照ください。
(3) 自動対処アクション定義ファイルの設定
両系(主系・副系)サーバに配置する自動対処アクション定義ファイル(autoactconf.json)の"valid"項目は,「true(有効)」に設定します。
また,自動対処アクション定義ファイル(autoactconf.json)のメンバー名「action」に以下の設定を指定します。
|
# |
メンバー名 |
指定内容 |
説明 |
|---|---|---|---|
|
1 |
type |
"cmd" |
OSコマンドを実行する場合に指定します。 |
|
2 |
params |
"host":"${event:ACTHOST:}" |
− |
|
3 |
"cmd":"/usrfile/アクション実行シェルスクリプト ${event:ACTHOST:}" |
/usrfile/アクション実行シェルスクリプトには,お客様で任意のシェルスクリプトファイル名を指定します。 |
|
|
4 |
"envFile":"/jp1cs/actenv.conf" |
− |
統合オペレーション・ビューアーの定義ファイル操作機能を用いて,自動対処アクション定義ファイル(autoactconf.json)をダウンロードし,自動対処アクション定義ファイル(autoactconf.json)の編集を行い,編集した定義ファイルをアップロードします。定義ファイル操作機能の利用方法については,「4.2.2 監視サービスにおける定義ファイル操作(V02-00以降)」を参照ください。
この設定により,定義されたアクションが有効化となり,イベント発生時に定義された処理が呼び出されます。
なお,アクション実行シェルスクリプト内でメール通知スクリプトを実行する場合は,自動対処アクション定義ファイル(autoactconf.json)のメンバー名「action」に以下の設定を指定します。
|
# |
メンバー名 |
指定内容 |
説明 |
|---|---|---|---|
|
1 |
type |
"cmd" |
OSコマンドを実行する場合に指定します。 |
|
2 |
params |
"host":"${event:ACTHOST:}" |
− |
|
3 |
"cmd":"/usrfile/アクション実行シェルスクリプト ${event:EVSEV:} ${event:EVIDBASE:} ${event:EVSEQNO:} ${event:EVHOST:} ${event:EVDATE:} ${event:EVTIME:} ${event:EVMSG:} グループ名 ${event:ACTHOST:} " |
/usrfile/アクション実行シェルスクリプトには,お客様で任意の名前で作成してください。 グループ名には,「group1」,「group2」,「group3」のどれかを指定してください。 これらのグループは,JP1 Cloud Serviceのヒアリングシートに記入された通知先メールアドレスのグループに対応付いています。 |
アクション実行シェルスクリプト内でメール通知スクリプトを実行する場合の自動対処アクション定義ファイル(autoactconf.json)のサンプルは以下の通りです。
サンプルの赤字箇所は,上記の自動対処アクション定義ファイル(autoactconf.json)のメンバー名「action」の設定値を指定します。
また,黒字箇所は,JP1のマニュアル「JP1 Version 13 JP1/Integrated Management 3 - Manager コマンド・定義ファイル・API リファレンス」における「7.2.4 対処アクションの自動実行」の「(1) 自動対処アクション定義オブジェクト」を参照し,お客様自身の設定内容を入力します。