提案定義ファイル(imdd_suggestion.conf)
- 〈このページの構成〉
提案定義ファイル全体の形式
{ "meta":{ "version":"1" }, "suggestions":[ { "suggestionId":"提案ID", "label":"提案表示名", "node":"提案情報を表示するノード", "permissions":[ ["提案情報を表示するJP1権限",...], ["提案情報を表示するJP1権限",...], ... ], "cases":[ [ "提案活性条件", "提案活性条件", ... ], [ "提案活性条件", "提案活性条件", ... ], ... ], "action":{ "対処アクション情報" } }, ... ] }
ファイル
imdd_suggestion_任意のファイル名.conf(ユーザーが作成する提案定義ファイル)
imdd_suggestion.conf(提案定義ファイル)
imdd_suggestion.conf.model(提案定義ファイルのモデルファイル)
格納先ディレクトリ
- Windowsの場合
-
- 物理ホストのとき
-
Managerパス\conf\imdd¥suggestion
- 論理ホストのとき
-
共有フォルダ\jp1imm\conf\imdd\suggestion
- UNIXの場合
-
- 物理ホストのとき
-
/etc/opt/jp1imm/conf/imdd/suggestion
- 論理ホストのとき
-
共有ディレクトリ/jp1imm/conf/imdd/suggestion
ユーザーが作成する提案定義ファイルは,imdd_suggestion.confファイルをコピーして任意のディレクトリに格納し,jddupdatesuggestionコマンドの引数でディレクトリパスを指定してください。
説明
提案定義ファイルは,対処アクションを提案する条件(提案表示条件と提案活性条件)と対処アクションの内容を定義するファイルです。
提案定義ファイルは,複数作成できます。また,一つの提案定義ファイルには,複数の提案定義を作成できます。提案定義には,提案定義ごとに提案ID(suggestionId)を設定し,個別の提案定義として識別されるようにします。このため,すべての提案定義ファイルのなかで,一意の提案IDの設定が必要です。重複した提案IDが設定された場合は,提案定義ファイルの反映時にエラーとなります。
定義の反映時期
jddupdatesuggestionコマンドが正常終了すると,提案定義ファイルの情報がインテリジェント統合管理基盤に反映されます。
記述内容
提案定義ファイルは,UTF-8で,BOM(byte order mark)が付与されないように保存してください。提案定義ファイル全体の記述内容を次に示します。
- "meta"
-
メタ情報を指定します。データ型はobjectです。このメンバーは省略できません。
- "version":"1"
-
提案定義ファイルのバージョンです。「1」を指定します。データ型はstringです。このメンバーは省略できません。
- "suggestions"
-
提案定義のオブジェクトの配列です。すべての提案定義ファイルを通して,0〜1,000件指定できます。データ型はobject[]です。このメンバーは省略できません。
- "suggestionId":"提案ID"
-
すべての提案定義ファイルを通して,一意となる提案のIDを指定します。
提案IDには,半角英数字,-(ハイフン),_(アンダースコア)が使用できます。指定できる文字数は,1文字以上255文字以下です。
提案IDは,REST APIのリクエストで指定したり,メッセージの埋め字に使用されたりするため,わかりやすい値にしてください。
なお,[統合オペレーション・ビューアー]画面−[提案]タブの[提案一覧]領域では,各提案は活性状態と提案IDの文字コード順でソートされます。このため,優先度が高い提案定義には,文字コードの順序が前方の提案IDを定義してください。
提案IDには,「JP1」,「jp1」,「hitachi」,「HITACHI」から始まる文字は使用できません。
データ型はstringです。このメンバーは省略できません。
- "label":"提案表示名"
-
[統合オペレーション・ビューアー]画面の[提案]タブ−[提案一覧]領域,および[提案詳細]領域の[提案名]に表示される,提案表示名を指定します。制御文字を含まない1文字以上60文字以下の文字列で指定します。データ型はstringです。このメンバーは省略できません。
- "node":"提案情報を表示するIM管理ノード"
-
提案があることを示すIM管理ノードのツリーSIDを,正規表現で指定します。半角英数字,半角記号が使用できます。
ツリーSIDが指定した正規表現と一致(部分一致)するIM管理ノードにだけ,提案情報が表示されます。データ型はstringです。このメンバーは省略できません。
- "permissions":[["提案情報を表示するJP1ユーザー権限"]]
-
提案情報を表示するJP1ユーザー権限を二重配列で指定します。
内側の[]に指定した条件群はAND条件となり,外側の[]に指定した条件群はOR条件となります。内側の[]と外側の[]を合わせて,1〜100件のJP1権限を指定できます。データ型はstring[][]です。
このメンバーは省略できます。省略した場合は,[統合オペレーション・ビューアー]画面のIM管理ノードの表示条件に従います。
- "cases":[["提案活性条件"]]
-
提案活性条件の情報を二重配列で指定します。
内側の[]に指定した条件群はAND条件となり,外側の[]に指定した条件群はOR条件となります。内側の[]と外側の[]で合わせて,1〜100件の提案活性条件を指定できます。データ型はobject[][]です。
このメンバーは省略できます。省略した場合は,常に条件が成立したと仮定されます。
- "action":"対処アクション情報"
-
対処アクションの情報を指定します。データ型はobjectです。このメンバーは省略できません。
提案活性条件と対処アクションの定義には変数が使用できます。変数の使用については,「(3) 変数」を参照してください。
(1) 提案活性条件
提案活性条件には,提案機能が対処アクションを提案する条件を指定します。指定する条件は「条件のキー」,「比較キーワード」,「比較値」です。「条件のキー」に指定された対象と「比較値」に指定された値を,「比較キーワード」に指定された比較方法で評価して,条件が成立しているかを判定します。
提案活性条件は提案定義ファイルのcasesパラメーターの要素として指定します。二重配列の内側の配列はAND条件,外側の配列はOR条件です。一つのAND条件の配列を提案活性条件群と呼びます。提案活性条件群の例を次に示します。
cases:[ [提案活性条件1,提案活性条件2], ← 提案活性条件群a [提案活性条件3,提案活性条件4] ← 提案活性条件群b ]
この例の場合,提案活性条件1と提案活性条件2はAND条件,提案活性条件群aと提案活性条件群bはOR条件となります。
提案活性条件の判定は,casesメンバーに指定された順番で実行されます。上記の例では,提案活性条件1,提案活性条件2,提案活性条件3,提案活性条件4の順番で判定されます。
ただし,提案活性条件群の不成立,または提案活性条件全体の成立が判定された際は,判定がスキップされる場合があります。
例えば,提案活性条件群内で不一致の提案活性条件が存在する場合は,AND条件によって提案活性条件群は不成立と判定されるため,未判定の提案活性条件が存在していても判定はスキップされます。成立の提案活性条件群が存在する場合は,OR条件によって提案活性条件全体は成立と判定されるため,未判定の提案活性条件群が存在していても判定はスキップされます。
スキップされる例を次に示します。
cases:[ [提案活性条件1(不一致), 提案活性条件2(スキップ)], ← 提案活性条件群a [提案活性条件3(一致), 提案活性条件4(一致)], ← 提案活性条件群b [提案活性条件5(スキップ),提案活性条件6(スキップ)] ← 提案活性条件群c ]
この例の場合,提案活性条件1が不一致と判定されると,提案活性条件群aは不成立となり,提案活性条件2の判定はスキップされます。提案活性条件3と4が一致と判定されると,提案活性条件群bが成立となります。その結果,提案活性条件の全体が成立となり,提案活性条件5と6の判定はスキップされます。
また,条件の情報の取得に失敗した,変数の変換に失敗したなどによって,提案活性条件がエラーと判定された場合は,該当する提案定義の提案活性条件全体がエラーと判定され,以降の判定はすべてスキップされます。
すべてスキップされる例を次に示します。
cases:[ [<提案活性条件1(一致)>, <提案活性条件2(エラー)>], [<提案活性条件3(スキップ)>, <提案活性条件4(スキップ)>], [<提案活性条件5(スキップ)>,<提案活性条件6(スキップ)>] ]
提案活性条件2がエラーと判定された場合,提案活性条件の全体がエラーと判定され,提案活性条件3〜6の判定がスキップされます。
casesメンバーは内側の[]がAND条件で,外側の[]がOR条件のため,OR条件群をAND条件でつなげる指定はできません。次のように書き換えると,同じ意味を持つ指定ができます。
(書き換え前)
(条件A OR 条件B) AND (条件C OR 条件D)
(書き換え後)
(条件A AND 条件C) OR (条件A AND 条件D) OR (条件B AND 条件C) OR (条件B AND 条件D)
同じ条件を二つ指定することになりますが,2回目の判定には1回目の判定時に取得したJP1/IMや連携製品などから取得した提案活性条件を判定するための情報(条件情報)が使用されるため,判定時間は掛かりません。
AND条件とOR条件を複雑につなげたい場合,この指定方法以外にも,プラグイン関数,またはバッチ・シェルスクリプトを使用し,それらのプログラム内で条件を判定することもできます。
- メモ
-
提案が成立した際に,各提案活性条件の判定時に取得した条件情報(例:コマンドの標準出力,REST APIのステータスコード)を確認したい場合は,対処アクションのdescriptionメンバーに提案活性条件の実行結果の変数を指定してください。変数の詳細については「(3) 変数」を参照してください。
提案活性条件の形式
{ "type":"条件種別", "key":"条件のキー", "ope":"比較キーワード", "val":"比較値", "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
提案活性条件の記述内容
- "type":"条件種別"
-
提案活性条件の種別を指定します。指定できる値については,次の表を参照してくだい。データ型はstringです。このメンバーは省略できません。
表2‒6 typeに指定できるメンバー 項番
値
説明
1
event
JP1イベントの条件を定義する場合に指定します。
2
eventCount
JP1イベントの件数の条件を定義する場合に指定します。
3
trendCount
時系列データの個数の条件を定義する場合に指定します。
4
restApi
REST APIの実行結果の定義を指定する場合に指定します。
5
plugin
製品プラグインの実行結果の条件を定義する場合に指定します。
6
cmd※
コマンドの実行結果の条件を定義する場合に指定します。実行できるコマンド,実行先ホスト,ログインユーザーなどについては「4.5.10 jp1Imdd.execCmd」を参照してください。
7
struct
IM管理ノードの条件を指定する定義に指定します。
- "key":"条件のキー"
-
提案活性条件の対象を指定します。指定できる値は,typeメンバーに指定した値によって異なります。データ型はobjectです。このメンバーは省略できません。
- "ope":"比較キーワード"
-
比較キーワードを指定します。指定できる値は,typeメンバーに指定した値によって異なります。データ型はstringです。このメンバーは省略できません。
- "val":"比較値"
-
比較値を指定します。指定できる値は,typeメンバーに指定した値によって異なります。データ型はopeメンバーに依存します。このメンバーは省略できません。
- "cache":"条件情報キャッシュの使用可否"
-
提案活性条件の判定に,条件情報のキャッシュを使用するかどうかを指定します。
-
キャッシュを使用する場合
キャッシュの有効期限内に,keyが同じ提案活性条件で提案活性条件を判定する場合は,条件情報を取得せずにキャッシュの情報を使用します。キャッシュの有効期限は10分です。
-
キャッシュを使用しない場合
常に条件情報を取得し提案活性条件を判定します。
「true」または「false」のどちらかを指定します。キャッシュを使用する場合は「true」,キャッシュを使用しない場合は「false」です。
typeメンバーにstructが指定されている場合,このメンバーは指定できません。指定した場合は無視されます。「true」を指定した場合,対処アクション提案APIで条件情報を取得したタイミングで,キャッシュを作成,更新します。
データ型はbooleanです。このメンバーは省略できます。省略した場合は「false」を仮定して動作します。
-
- "description":"条件の説明"
-
[統合オペレーション・ビューアー]画面の[提案]タブ−[提案詳細]領域に表示される提案活性条件の説明を,制御文字を含まない1文字以上512文字以下の文字列で指定します。データ型はstringです。このメンバーは省略できません。
(A) key,ope,valの各メンバーが指定できる値
提案活性条件のtype(条件種別)によってkey,ope,valの各メンバーに指定できる値は異なります。各メンバーが指定できる値について説明します。なお,cacheメンバー,descriptionメンバーは,どのtypeの場合でも指定できます。
(a) typeに「event」を指定した場合の提案活性条件
type(条件種別)にeventを指定した場合は,特定の条件に合致するJP1イベントが存在するかどうかを,提案活性条件に指定できます。
- 形式
{ "type":"event", "key":{ "sid":"イベントが紐付くノードのツリーSID", "statusFilter":ノードのステータス, "属性名":"属性の値", "REGEX_属性名":"属性の値" }, "ope":"比較キーワード", "val":"比較値", "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるJP1イベントの情報を指定するオブジェクトです。
データ型はobjectです。このメンバーは省略できません。
- "sid":"イベントが紐付くノードのツリーSID"
-
イベントが紐付くノードのツリーSIDを指定します。指定できる文字はツリーSIDの仕様に準じます。データ型はstringです。このメンバーは省略できます。省略した場合は,選択中のノードを指定したと仮定されます。
- "statusFilter":ノードのステータス
-
ノードのステータスに該当するイベントだけを絞り込む場合に,ノードのステータスを配列で指定します。次の値を指定できます。
-
10:緑
対処済みのイベント,解除または削除した重要イベント,重要イベントではないイベントを対象として絞り込みます。
-
20:黄
重大度が「警告」「デバッグ」「情報」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
-
30:橙
重大度が「エラー」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
-
40:赤
重大度が「緊急」「警戒」「致命的」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
複数の値を指定した場合は,OR条件でイベントを検索します。
重要イベント定義,重要イベント解除・削除機能で重要イベントに該当するイベントを変更した場合,提案活性条件の判定の際に変更後の状態に応じてイベントを絞り込みます。
データ型はnumber[]です。このメンバーは省略できますが,イベント検索性能を向上させるため,指定することを推奨します。
-
- "属性名":"属性の値"
-
イベントの属性名の属性の値を指定します。メンバーとして使用できる属性名はイベント検索条件オブジェクトのkeyに指定できる値と同じです。各属性名で指定できる値は検索条件オブジェクトのvalに指定できる値と同じです。値は1件4,096バイトまで,提案活性条件1件当たり4,096バイト(1つの提案活性条件の<属性名>,<REG_属性名>に指定した値の合計サイズ)まで指定できます。条件情報オブジェクトの詳細は「7.2.1 (3) イベント検索条件オブジェクト」を参照してください。ただし,各属性の値に半角スペースを指定した場合は「%20」を指定したものとみなされます。
値が完全一致するイベントを検索します。値が配列の場合は,値のどれかが完全一致するイベントを検索します。
属性名「B.TIME」(登録時刻)と属性名「B.ARRIVEDTIME」(到着時刻)のメンバーをどちらも指定しなかった場合は,属性名「B.TIME」の値として,次を指定したと仮定されます。
["現在時刻の一日前","現在時刻"]
属性名「E.START_TIME」(開始時刻)と属性名「E.END_TIME」(終了時刻)に,次の値が格納されている場合は,どのような日時を指定しても一致しないものと判断されます。
-
数値以外の値
-
0未満の数値
-
4,102,444,800以上の数値
データ型は属性名に依存します。このメンバーは省略できます。
-
- "REGEX_属性名":"属性の値"
-
イベントの属性名の属性の値を指定します。メンバーとして使用できる属性名はイベント検索条件オブジェクトのkeyに指定できる値のうち,指定できる比較キーワードに「正規表現」が含まれる属性の属性名です。各属性名で指定できる値は検索条件オブジェクトのvalに指定できる値と同じです。値は1件4,096バイトまで,提案活性条件1 件あたり4,096バイト(1つの提案活性条件の<属性名>,<REG_属性名>に指定した値の合計サイズ)まで指定できます。条件情報オブジェクトの詳細は「7.2.1 (3) イベント検索条件オブジェクト」を参照してください。
ただし,各属性の値に半角スペースを指定した場合は「%20」を指定したものとみなされます。
指定した正規表現の値と部分一致するイベントを検索します。
データ型はstringです。このメンバーは省略できます。
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
EXIST:keyに指定した条件をすべて満たすJP1イベントが存在するかどうか
データ型はstringです。このメンバーは省略できません。
-
- "val":"比較値"
-
keyに指定した条件をすべて満たすJP1イベントが存在するかどうかを指定します。
「true」または「false」のどちらかを指定します。JP1イベントが存在する場合は「true」,JP1イベントが存在しない場合は「false」です。
データ型はbooleanです。このメンバーは省略できません。
cacheメンバー,descriptionメンバーついては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次の条件に一致するJP1イベントが発行されているかを判定する場合の例です。
-
選択中のIM管理ノードに紐付いている
-
ステータスが「黄色(警告)」以上に該当するイベント
-
イベントの登録日時が現在時刻から過去60分の間
-
イベントIDはJP1/PFMのヘルスチェックイベントのID「00004860」
-
イベントのメッセージに,ヘルスチェック状態がホスト停止であることが含まれている
-
イベントの対処状況が「未対処」(処理状況が「処理中」「保留」ではない)
{ "type":"event", "key":{ "statusFilter":[20,30,40], "B.TIME":["${:time:-60.m.:}","${:time::}"], "B.ID":["00004860"], "REGEX_B.MESSAGE":"KAVL15022-E.*hcsstatus=Host Not Available", "E.@JP1IM_DEALT":[0] }, "ope":"EXIST", "val":true, "description":"ホスト停止のJP1イベントが発行されている" }
-
(b) typeに「eventCount」を指定した場合の提案活性条件
type(条件種別)にeventCountを指定した場合は,特定の条件に合致するJP1イベントの件数を,提案活性条件に指定できます。
- 形式
{ "type":"eventCount", "key":{ "sid":"イベントが紐付くノードのツリーSID", "statusFilter":ノードのステータス, "属性名":"属性の値", "REGEX_属性名":"属性の値" }, "ope":"比較キーワード", "val":比較値, "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるJP1イベントの情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "sid":"イベントが紐付くノードのツリーSID"
-
提案活性条件の対象となるJP1イベントの情報を指定するオブジェクトです。データ型はstringです。このメンバーは省略できます。省略した場合は,選択中のノードを指定したと仮定されます。
- "statusFilter":ノードのステータス
-
ノードのステータスに該当するイベントだけを絞り込む場合に,ノードのステータスを配列で指定します。次の値を指定できます。
-
10:緑
対処済みのイベント,解除または削除した重要イベント,重要イベントではないイベントを対象として絞り込みます。
-
20:黄
重大度が「警告」「デバッグ」「情報」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
-
30:橙
重大度が「エラー」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
-
40:赤
重大度が「緊急」「警戒」「致命的」で,かつ対処状況が「未対処」「処理中」「保留」の重要イベントを対象として絞り込みます。
複数の値を指定した場合は,OR条件でイベントを検索します。
重要イベント定義,重要イベント解除・削除機能で重要イベントに該当するイベントを変更した場合,提案活性条件の判定の際に変更後の状態に応じてイベントを絞り込みます。
データ型はnumber[]です。このメンバーは省略できますが,イベント検索性能を向上させるため,指定することを推奨します。
-
- "属性名":"属性の値"
-
イベントの属性名の属性の値を指定します。メンバーとして使用できる属性名はイベント検索条件オブジェクトのkeyに指定できる値と同じです。各属性名で指定できる値は検索条件オブジェクトのvalに指定できる値と同じです。値は1件4,096バイトまで,提案活性条件1件当たり4,096バイト(1つの提案活性条件の<属性名>,<REG_属性名>に指定した値の合計サイズ)まで指定できます。条件情報オブジェクトの詳細は「7.2.1 (3) イベント検索条件オブジェクト」を参照してください。ただし,各属性の値に半角スペースを指定した場合は「%20」を指定したものとみなされます。
値が完全一致するイベントを検索します。値が配列の場合は,値のどれかが完全一致するイベントを検索します。
属性名「B.TIME」(登録時刻)と属性名「B.ARRIVEDTIME」(到着時刻)のメンバーをどちらも指定しなかった場合は,属性名「B.TIME」の値として,次を指定したと仮定されます。
["現在時刻の一日前","現在時刻"]
属性名「E.START_TIME」(開始時刻)と属性名「E.END_TIME」(終了時刻)に,次の値が格納されている場合は,どのような日時を指定しても一致しないものと判断されます。
-
数値以外の値
-
0未満の数値
-
4,102,444,800以上の数値
データ型は属性名に依存します。このメンバーは省略できます。
-
- "REGEX_属性名":"属性の値"
-
イベントの属性名の属性の値を指定します。メンバーとして使用できる属性名はイベント検索条件オブジェクトのkeyに指定できる値のうち,指定できる比較キーワードに「正規表現」が含まれる属性の属性名です。各属性名で指定できる値は検索条件オブジェクトのvalに指定できる値と同じです。値は1件4,096バイトまで,提案活性条件1 件あたり4,096バイト(1つの提案活性条件の<属性名>,<REG_属性名>に指定した値の合計サイズ)まで指定できます。条件情報オブジェクトの詳細は「7.2.1 (3) イベント検索条件オブジェクト」を参照してください。
ただし,各属性の値に半角スペースを指定した場合は「%20」を指定したものとみなされます。
指定した正規表現の値と部分一致するイベントを検索します。
データ型はstringです。このメンバーは省略できます。
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
GT:keyに指定した条件に合致するJP1イベントの件数がvalに指定した値より大きい
-
LT:keyに指定した条件に合致するJP1イベントの件数がvalに指定した値より小さい
データ型はstringです。このメンバーは省略できません。
-
- "val":比較値
-
keyに指定した条件に合致するJP1イベントの件数を,0〜100の整数で指定します。
データ型はnumberです。このメンバーは省略できません。
cacheメンバー,descriptionメンバーについては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次の条件に一致するJP1イベントが,10件より多く発行されているかを判定する場合の例です。
-
選択中のIM管理ノードに紐付いている
-
ステータスが「黄色(警告)」以上に該当するイベント
-
イベントの登録日時が現在時刻から過去60分の間
-
イベントIDはJP1/PFMのヘルスチェックイベントのID「00004860」
-
イベントのメッセージに,ヘルスチェック状態がホスト停止であることが含まれている
-
イベントの対処状況が「未対処」(処理状況が「処理中」「保留」ではない)
{ "type":"eventCount", "key":{ "statusFilter":[20,30,40], "B.TIME":["${:time:-60.m.:}","${:time::}"], "B.ID":["00004860"], "REGEX_B.MESSAGE":"KAVL15022-E.*hcsstatus=Host Not Available", "E.@JP1IM_DEALT":[0] }, "ope":"GT", "val":10, "description":"ホスト停止のJP1イベントが1時間以内に10件より多く発行されている" }
-
(c) typeに「trendCount」を指定した場合の提案活性条件
type(条件種別)にtrendCountを指定した場合は,特定の条件に合致する時系列データの件数を,提案活性条件に指定できます。
- 形式
{ "type":"trendCount", "key":{ "sid":"ツリーSID", "metric":"メトリック名", "startTime":"開始日時", "endTime":"終了日時", "countPerInstance":インスタンス当たりのデータ数の上限, "instanceCount":インスタンス数の上限, "instance":"インスタンス名", "threshold":しきい値, "thresholdType":"しきい値タイプ" }, "ope":"比較キーワード", "val":比較値, "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となる時系列データの情報を指定するオブジェクトです。
データ型はobjectです。このメンバーは省略できません。
- "sid":"ツリーSID"
-
時系列データのツリーSIDを指定します。指定できる文字はツリーSIDの仕様に準じます。
指定したツリーSIDに複数の構成情報のSIDが紐付いている場合は,一つの構成情報のSIDの時系列データを取得します。
取得に成功した場合は,その時系列データで条件を判定します。取得に失敗した場合は,次の時系列データを取得します。
すべての構成情報のSIDで時系列データの取得に失敗した場合は,条件情報の取得に失敗します。時系列データを取得する順番は,不定です。
データ型はstringです。このメンバーは省略できます。省略した場合は,選択中のノードを指定したと仮定されます。
- "metric":"時系列データのメトリック"
-
時系列データのメトリックを指定します。255文字以内の半角英数字と記号-(ハイフン),_(アンダースコア)で指定します。データ型はstringです。このメンバーは省略できません。
- "startTime":"時系列データの開始日時"
-
時系列データの開始日時をISO 8601形式のUTC時刻で指定します。小数点以下の秒数は指定しません。データ型はstringです。このメンバーは省略できません。
- "endTime":"時系列データの終了日時"
-
時系列データの終了日時をISO 8601形式のUTC時刻で指定します。小数点以下の秒数は指定しません。データ型はstringです。このメンバーは省略できません。
- "countPerInstance":1インスタンス当たりのデータ数の上限
-
取得する1インスタンス当たりのデータ数の上限を指定します。指定できるのは,1〜30,000の整数です。countPerInstanceとinstanceCountを掛けた数が30,000以下になるように指定します。データ型はnumberです。このメンバーは省略できます。省略した場合は,60を仮定して動作します。
- "instanceCount":インスタンス数の上限
-
インスタンス数の上限を指定します。指定できるのは,1〜30,000の整数です。countPerInstanceとinstanceCountを掛けた数が30,000以下になるように指定します。データ型はnumberです。このメンバーは省略できます。省略した場合は,10を仮定して動作します。
- "instance":"インスタンス名"
-
時系列データに複数インスタンスが存在する場合に,提案活性条件の対象とするインスタンスのインスタンス名を指定します。データ型はstringです。このメンバーは省略できます。省略した場合は最初のインスタンスを提案活性条件の対象とします。
指定できるのは,制御文字を含まない255文字以内の文字列です。
- "threshold":しきい値
-
対象とする時系列データのしきい値を指定します。データ型はnumberです。このメンバーは省略できません。
- "thresholdType":"しきい値タイプ"
-
対象とする時系列データの範囲を指定します。次の値を指定できます。
-
<:thresholdに指定した値未満を対象範囲とする
-
<=:thresholdに指定した値以下を対象範囲とする
-
>:thresholdに指定した値より大きい値を対象範囲とする
-
>=:thresholdに指定した値以上の値を対象範囲とする
データ型はstringです。このメンバーは省略できません。
-
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
GT:keyに指定した条件に合致する時系列データの個数がvalに指定した値より大きい
-
LT:keyに指定した条件に合致する時系列データの個数がvalに指定した値より小さい
データ型はstringです。このメンバーは省略できません。
-
- "val":比較値
-
keyに指定した条件に合致する時系列データの個数を指定します。指定できるのは,0〜30,000の整数です。データ型はnumberです。このメンバーは省略できません。
cacheメンバー,descriptionメンバーについては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次の条件に一致する時系列データが1個以上存在するかを判定する場合の例です。
-
対象ノード:選択中のノード
-
メトリック:CPU使用率
-
開始日時:1時間前
-
終了日時:現在時刻
-
1インスタンス当たりのデータ数の上限:60
-
インスタンス数の上限:10
-
しきい値:80
-
しきい値タイプ:しきい値より大きい
{ "type":"trendCount", "key":{ "sid":"${.:tree:sid:}", "metric":"cpu_used_rate", "startTime":"${:time:-60.m.:}", "endTime":"${:time::}", "countPerInstance":60, "instanceCount":10, "threshold":80, "thresholdType":">" }, "ope":"GT", "val":0, "description":"過去1時間のCPU使用率の時系列データで80%を超える時系列データが1個以上存在する" }
-
(d) typeに「restApi」を指定した場合の提案活性条件
type(条件種別)にrestApiを指定した場合は,REST APIの実行結果(ステータスコード,レスポンスヘッダー,レスポンスボディー)を提案活性条件に指定できます。
- 形式
{ "type":"restApi", "key":{ "method":"REST APIのメソッド", "url":"REST APIのURL", "headers":"REST APIのリクエストヘッダー", "body":"REST APIのリクエストのボディー", "param":"REST APIのレスポンスで比較対象となるパラメーター" }, "ope":"比較キーワード", "val":"比較値", "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるREAT APIの情報を指定するオブジェクトです。
データ型はobjectです。このメンバーは省略できません。
- "method":"REST APIのメソッド"
-
REST APIのメソッドを指定します。次の値を指定できます。
-
GET
-
HEAD
-
POST
-
PUT
-
PATCH
-
DELETE
-
OPTIONS
-
TRACE
データ型はstringです。このメンバーは省略できません。
-
- "url":"REST APIのURL"
-
REST APIのURLを指定します。指定できる文字は,半角英数字およびRFC 2396の仕様に準拠した次の記号です。
「;」,「/」,「?」,「:」,「@」,「&」,「=」,「+」,「$」,「,」,「-」,「_」,「.」,「!」,「~」,「*」,「'」,「(」,「)」,「%」
先頭には「http://」または「https://」を指定します。
データ型はstringです。このメンバーは省略できません。
ホスト名を含むURLを指定する場合,ホスト名はhostsファイルやDNSに登録し,JP1/IM - ManagerホストのOS上で名前解決できるようにしてください。jp1hostsファイルおよびjp1hosts2ファイルの設定は参照されません。
- "headers":"REST APIのリクエストヘッダー"
-
REST APIのリクエストヘッダーです。データ型はobjectです。このメンバーは省略できません。
- "body":"REST APIのリクエストボディー"
-
REST APIのリクエストボディーです。データ型はobjectです。メソッドがGET,またはDELETEの場合でボディーが不要のときは,省略します。このメンバーは省略できます。
- "param":"REST APIのレスポンスで比較対象となるパラメーター"
-
REST APIのレスポンスで比較対象となるパラメーターを指定します。次の値を指定できます。
-
status:ステータスコード
-
headers:レスポンスヘッダー
-
body:レスポンスボディー
データ型はstringです。このメンバーは省略できません。
-
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
IN:keyで指定したREST APIのレスポンスがvalで指定した値と一致する
-
NOTIN:keyで指定したREST APIのレスポンスがvalで指定した値と一致しない
-
GT:keyに指定したREST APIのレスポンスがvalに指定した値より大きい
-
LT:keyに指定したREST APIのレスポンスがvalに指定した値より小さい
-
REGEX:keyで指定したREST APIのレスポンスがvalに指定した値と正規表現で一致(部分一致)する
データ型はstringです。このメンバーは省略できません。
-
- "val":"比較値"
-
REST APIの実行結果と比較する値を指定します。指定する値はparamの値によって異なります。詳細は,次の表を参照してください。型がstringの場合は,サイズが1メガバイト未満の文字列を指定してください。このメンバーは省略できません。
表2‒7 restApiで指定できるparam,ope,valの型の組み合わせ 項番
paramの値
opeに指定できる値
valの型
valに指定する値
1
status
-
IN
-
NOTIN
-
GT
-
LT
number
REST APIのステータスコードと比較する値
2
headers
-
IN
-
NOTIN
-
REGEX
string
REST APIのレスポンスヘッダーと比較する値
3
body
-
IN
-
NOTIN
-
REGEX
string
REST APIのレスポンスボディー比較する値
-
- REST APIのレスポンスヘッダーの文字列の形式
-
paramにheadersを指定した場合,取得したレスポンスヘッダーは,次の形式の文字列となります。
<フィールド名1>:<フィールド値1-1>,<フィールド値1-2>,…,<フィールド値1-n><CRLF> <フィールド名2>:<フィールド値2-1>,<フィールド値2-2>,…,<フィールド値2-n><CRLF> <フィールド名3>:<フィールド値3-1>,<フィールド値3-2>,…,<フィールド値3-n><CRLF> …
注 フィールド名はすべて大文字に変換されます。フィールドの並び順は,フィールド名のASCIIコードの昇順です。
指定例を次に示します。
CACHE-CONTROL:no-store,no-cache,max-age=0<CRLF> CONTENT-TYPE:application/json<CRLF> EXPIRES:Thu,01 Jan 1970 00:00:00 GMT<CRLF> PRAGMA:no-cache<CRLF>
cacheメンバー,descriptionメンバーについては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次に示すREST APIのステータスコードが,200かどうかを判定する場合の例です。
-
メソッド:POST
-
URL:https://test
-
リクエストヘッダー
認証情報:yyyy/zzzz
リクエストボディーのメディアタイプ:application/json
-
リクエストボディー
リクエストボディーのパラメーター「body1」:test1
リクエストボディーのパラメーター「body2」:test2
-
REST APIのレスポンスで比較対象となるパラメーター:ステータスコード
{ "type":"restApi", "key":{ "method":"POST", "url":"https://test", "headers":{ "Authorization":"yyyy/zzzz", "Content-Type":"application/json" }, "body":{ "body1":"test1", "body2":"test2" }, "param":"status" }, "ope":"IN", "val":200, "description":"REST API testのステータスコードが200" }
-
(e) typeに「plugin」を指定した場合の提案活性条件
type(条件種別)にpluginを指定した場合は,プラグイン関数の実行結果を提案活性条件に指定できます。
- 形式
{ "type":"plugin", "key":{ "sid":"ツリーSID", "method":"プラグイン関数名", "args":"プラグイン関数の引数" }, "ope":"比較キーワード", "val":"比較値", "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるプラグイン関数の情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "sid":"ツリーSID"
-
ツリーSIDを指定します。指定できる文字はツリーSIDの仕様に準じます。指定したツリーSIDに紐付いている構成情報のSIDを指定してプラグイン関数を実行します。指定したツリーSIDに複数の構成情報のSIDが紐付いている場合は,一つの構成情報のSIDを指定してプラグイン関数を実行し,実行に成功した場合は,そのプラグイン関数のレスポンスで条件を判定します。それ以降の構成情報のSIDは無視します。
構成情報のSIDを指定する順番は,不定です。
プラグイン内でargs.setErrorメソッドが実行された場合,またはレスポンスのメンバーにsuggestionが存在しない場合は,プラグイン関数の実行に失敗したと判断され,次の構成情報のSIDでプラグイン関数を実行します。
すべての構成情報のSIDでプラグイン関数の実行に失敗した場合は,条件情報の取得に失敗します。データ型はstringです。このメンバーは省略できます。省略した場合は,選択中のノードを指定したと仮定されます。
- "method":"プラグイン関数名"
-
プラグイン関数名を指定します。プラグイン関数を追加したあとに,JP1/IM3-Managerサービスが再起動されているか確認してください。指定するプラグイン関数は,次の条件をすべて満たす必要があります。
-
module.exportsでモジュール化されている。
-
引数はobject型の「args」だけである。
-
returnではなく,args.setResult(Object result)メソッドでレスポンスを返却する。
「result」にはレスポンスを指定します。
-
例外ではなくargs.setError(String message)メソッドによって,エラー通知する。
「message」にはエラーメッセージを指定します。
-
レスポンスのメンバーに,suggestion(データ型:string)が存在する。
データ型はstringです。このメンバーは省略できません。
プラグイン関数の詳細については「4. ユーザー作成プラグイン」を参照してください。
-
- "args":"プラグイン関数の引数"
-
実行するプラグイン関数の引数を指定します。渡す情報が存在しない場合は,空オブジェクトを指定します。指定したオブジェクトは,実行するプラグイン関数の引数args.methodArgsに渡されます。そのほかのプラグイン関数のargsに渡される値については,「5.7.1 プラグイン処理実行」を参照してください。
データ型はobjectです。このメンバーは省略できません。
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
IN:keyで指定したプラグイン関数のレスポンスのsuggestionの値がvalで指定した値と一致する。
-
NOTIN:keyで指定したプラグイン関数のレスポンスのsuggestionの値がvalで指定した値と一致しない。
-
REGEX:keyで指定したプラグイン関数のレスポンスのsuggestionの値がvalに指定した値と正規表現で一致(部分一致)する。
データ型はstringです。このメンバーは省略できません。
-
- "val":"比較値"
-
プラグイン関数のレスポンスのsuggestionの値と比較する値を指定します。サイズが1メガバイト未満の文字列を指定してください。データ型はstringです。このメンバーは省略できません。
cacheメンバー,descriptionメンバーについては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次に示すプラグイン関数のメンバーsuggestionの値が,OK以外かどうかを判定する場合の例です。
-
対象のIM管理ノード:選択中のIM管理ノード
-
プラグイン関数:jp1pfmSuggestionCreateReportURL
JP1/PFMのレポートのURLを作成する関数です。jp1pfmSuggestionCreateReportURL関数の詳細については,マニュアル「JP1/Performance Management リファレンス」を参照してください。
-
引数:レポートのID
{ "type":"plugin", "key":{ "sid":"${.:tree:sid:}", "method":"jp1pfmSuggestionCreateReportURL", "args":{ "reportId":"ac102ce0:3b9952:ec20ca1bfc:-7b99" } }, "ope":"NOTIN", "val":"", "description":"レポートURL生成が成功" }
-
(f) typeに「cmd」を指定した場合の提案活性条件
type(条件種別)にcmdを指定した場合は,コマンドの実行結果(戻り値,標準出力,標準エラー出力)を提案活性条件に指定できます。
- 形式
{ "type":"cmd", "key":{ "host":"コマンドの実行先ホスト名", "cmd":"実行コマンド", "env":"環境変数", "envFile":"環境変数ファイル名", "param":"コマンドの実行結果の種別" }, "ope":"比較キーワード", "val":"比較値", "cache":"条件情報キャッシュの使用可否", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるコマンドの情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- host:"コマンドの実行先ホスト名"
-
コマンドの実行先ホスト名を指定します。指定できる範囲は,1〜254バイトです。データ型はstringです。このメンバーは省略できません。
- "cmd":"実行コマンド"
-
実行コマンドと引数を指定します。指定できる範囲は,1〜4,095バイトです。
コマンド名に空白を含む場合は"(ダブルクォーテーション)で囲みます。データ型はstringです。このメンバーは省略できません。
- "env":"環境変数"
-
実行先ホストでコマンドを実行する際の環境変数をオブジェクトのキーに,環境変数の値をオブジェクトの値に指定します。
最大30個まで指定できます。オブジェクトのキーと値は,全体で1〜7,107バイトの範囲で指定します。データ型はobjectです。このメンバーは省略できます。
- "envFile":"環境変数ファイル名"
-
実行先ホストのファイル名を,絶対パス形式で指定します。指定できる範囲は,1〜255バイトです。データ型はstringです。このメンバーは省略できます。
- "param":"比較値"
-
比較対象を指定します。次の値を指定できます。
-
rc:戻り値
-
stdout:標準出力
-
stderr:標準エラー出力
データ型はstringです。このメンバーは省略できません。
-
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
IN:keyで指定したコマンドのparamの値とvalで指定した値と一致する
-
NOTIN:keyで指定したコマンドのparamの値とvalで指定した値が一致しない
-
REGEX:keyで指定したコマンドのparamの値がvalに指定した値と正規表現で一致(部分一致)する
-
GT:keyに指定したコマンドのparamの値がvalに指定した値より大きい
-
LT:keyに指定したコマンドのparamの値がvalに指定した値より小さい
指定できるparamとopeの組み合わせは,表2-8を参照してください。
データ型はstringです。このメンバーは省略できません。
-
- "val":"比較値"
-
コマンドの実行結果と比較する値を指定します。指定する値は,paramに指定した値によって異なります。詳細は,次の表を参照してください。なお,型がstringの場合は,サイズが1メガバイト未満の文字列を指定してください。このメンバーは省略できません。
表2‒8 cmdで指定できるparam,ope,valの型の組み合わせ 項番
paramの値
opeに指定できる値
valの型
valに指定する値
1
rc
-
IN
-
NOTIN
-
GT
-
LT
number
コマンドの戻り値と比較する値
2
stdout
-
IN
-
NOTIN
-
REGEX
string
コマンドの標準出力と比較する値
3
stderr
-
IN
-
NOTIN
-
REGEX
string
コマンドの標準エラー出力と比較する値
-
typeが「cmd」の提案活性条件に指定した変数は,変数を変換したあとに次の文字変換が実行されます。
-
次の制御文字が提案活性条件に指定した変数に含まれていた場合,半角スペース(0x20)に変換します。
・0x01から0x1F(タブ(0x09)を除く)
・0x7F
-
文字変換は,イベント引き継ぎ情報変換設定ファイルに従って実行されます。詳細は,「イベント引き継ぎ情報変換設定ファイル(event_info_replace.conf)」(2. 定義ファイル)を参照してください。
cacheメンバー,descriptionメンバーについては,「(1) 提案活性条件」の各メンバーの説明を参照してください。
- 指定例
-
次の条件のコマンドの標準出力に「DISPLAY_NAME: JP1/AJSサービス」が含まれるかどうか(JP1/AJSサービスが起動中か)を判定する場合の例です。
-
コマンドの実行先ホスト名:選択中のIM管理ノード※のノード名称
注※ JP1/AJSマネージャーのホストのノード
-
実行コマンド:sc query
-
環境変数ファイル名:対象ホストのC:\envFile.txt
-
コマンドの実行結果の種別:標準出力
{ "type":"cmd", "key":{ "host":"${.:tree:value.label:}", "cmd":"sc query", "envFile":"C:\\envFile.txt", "param":"stdout" }, "ope":"REGEX", "val":"DISPLAY_NAME: JP1/AJS3", "description":"JP1/AJSサービスが起動中" }
-
(g) typeに「struct」を指定した場合の提案活性条件
type(条件種別)にstructを指定した場合は,特定のIM管理ノードの構成が存在するかどうかを,提案活性条件に指定できます。
- 形式
{ "type":"struct", "key":{ "idType":"ノードの形式", "sid":"構成情報のSIDまたはツリーSID" }, "ope":"比較キーワード", "val":"比較値", "description":"条件の説明" }
記述内容
- "key"
-
提案活性条件の対象となるIM管理ノードの情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "idType":"ノードの形式"
-
対象となるノードのid種別を指定します。次の値を指定できます。
-
target:構成情報のSID
-
tree:ツリーSID
データ型はstringです。このメンバーは省略できません。
-
- "sid":"構成情報のSIDまたはツリーSID"
-
構成情報のSIDまたはツリーのSIDを指定します。指定できる文字は,SIDの仕様に従います。
sidメンバーに指定した変数の変換に失敗した場合に,その原因が次のどちらかのときは,判定失敗ではなくSIDは存在しないものとみなし処理を続行します。
-
対象ノードが存在しない
-
対象種別にtargetまたはtarget[製品名]を指定し,該当する構成情報のSIDが存在しない
データ型はstringです。このメンバーは省略できません。
-
- "ope":"比較キーワード"
-
比較キーワードを指定します。次の値を指定できます。
-
EXIST:keyで指定した条件のIM管理ノードが存在するかどうか
データ型はstringです。このメンバーは省略できません。
-
- "val":"比較値"
-
keyで指定した条件のIM管理ノードが存在するかどうかを指定します。
「true」または「false」のどちらかを指定します。IM管理ノードが存在する場合は「true」,IM管理ノードが存在しない場合は「false」です。
データ型はbooleanです。このメンバーは省略できません。
descriptionメンバーについては,「(1) 提案活性条件」の説明を参照してください。
- 指定例
-
選択中のJP1/PFM - AgentのIM管理ノードと同じホストのJP1/AJS - AgentのIM管理ノードが,存在するかどうかを判定する場合の例です。
-
ID種別:ツリーSID
-
SID:次の条件を満たすSID
-
選択中のJP1/PFM - AgentのツリーSIDと3つ上位のIM管理ノード(ホストのIM管理ノード)までツリーSIDが一致する。
-
ホスト以降のツリーSIDが,JP1/AJS-Agentを示す次のツリーSIDである。
_CATEGORY_managementApplications/_OBJECT_JP1AJSAGT
{ "type":"struct", "key":{ "idType":"tree", "sid":"${../../..:tree:sid:}/_CATEGORY_managementApplications/_OBJECT_JP1AJSAGT" }, "ope":"EXIST", "val":true, "description":"選択中のJP1/PFM - AgentのIM管理ノードと同じホストに,JP1/AJS - Agentのノードが存在する" }
-
(2) 対処アクション
対処アクションについて説明します。
対処アクションの形式
{ "type":"対処アクション種別", "params":"対処アクションのパラメーター", "description":"対処アクションの説明" }
対処アクションの記述内容
- "type":"対処アクション種別"
-
対処アクションの種別を指定します。次の値を指定できます。
-
restApi:REST APIの実行を定義する場合に指定します。
-
plugin:製品プラグインの実行を定義する場合に指定します。
-
cmd:コマンドの実行を定義する場合に指定します。
-
eventStatus:イベントの対処状況の変更を定義する場合に指定します。
-
jump:特定URLまたは[繰り返しイベント一覧]画面へのジャンプを定義する場合に指定します。
データ型はstringです。このメンバーは省略できません。
なお,cmdはコマンドの実行先ホストのJP1/Baseのバージョンが12-10以降の場合に指定します。12-10未満のバージョンの場合はコマンドの実行に失敗し,戻り値に0,標準出力および標準エラー出力は空で返却されます。
-
- "params":"対処アクションのパラメーター"
-
対処アクションのパラメーターを指定します。指定できるメンバーはtypeによって異なります。データ型はobjectです。このメンバーは省略できません。
- "description":"対処アクションの説明"
-
対処アクションの説明を指定します。指定できるのは,制御文字を含まない512文字以内の文字列です。空文字は指定できません。
データ型はstringです。このメンバーは省略できません。
(A) 対処アクション種別ごとの指定できる値
対処アクションのtype(対処アクション種別)によってメンバーに指定できる値は異なります。typeごとに指定できる値について説明します。なお,descriptionメンバーは,どのtypeの場合でも指定できます。
(a) typeに「restApi」を指定した場合の対処アクション
type(対処アクション種別)にrestApiを指定した場合は,REST APIの実行を対処アクションに指定できます。
- 形式
{ "type":"restApi", "params":{ "method":"REST APIのメソッド", "url":"REST APIのURL", "headers":"REST APIのリクエストヘッダー", "body":"REST APIのリクエストのボディー" }, "description":"対処アクションの説明" }
記述内容
- "params"
-
対処アクションの対象となるREST APIの情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "method":"REST APIのメソッド"
-
REST APIのメソッドを指定します。次の値を指定できます。
-
GET
-
HEAD
-
POST
-
PUT
-
PATCH
-
DELETE
-
OPTIONS
-
TRACE
データ型はstringです。このメンバーは省略できません。
-
- "url":"REST APIのURL"
-
REST APIのURLを指定します。指定できる文字は,半角英数字およびRFC 2396の仕様に準拠した次の記号です。
「;」,「/」,「?」,「:」,「@」,「&」,「=」,「+」,「$」,「,」,「-」,「_」,「.」,「!」,「~」,「*」,「'」,「(」,「)」,「%」
先頭には「http://」または「https://」を指定します。
データ型はstringです。このメンバーは省略できません。
ホスト名を含むURLを指定する場合,ホスト名はhostsファイルやDNSに登録し,JP1/IM - ManagerホストのOS上で名前解決できるようにしてください。
jp1hostsファイルおよびjp1hosts2ファイルの設定は参照されません。
- "headers":"REST APIのリクエストヘッダー"
-
REST APIのリクエストヘッダーです。データ型はobjectです。このメンバーは省略できません。
- "body":"REST APIのリクエストボディー"
-
REST APIのリクエストボディーです。メソッドがGET,またはDELETEの場合でボディーが不要のときは,省略します。データ型はobjectです。このメンバーは省略できます。
descriptionメンバーについては,「(2) 対処アクション」の説明を参照してください。
- 指定例
-
次のJP1イベントの情報を用いてREST APIを実行する場合の例です。
-
URL:https://test
-
リクエストヘッダー
認証情報:yyyy/zzzz
リクエストボディーのメディアタイプ:application/json
-
リクエストボディー
リクエストボディーのパラメーター「body1」:${:event[1]:B.ID:}
casesに指定したtypeが「event」の1番目の提案活性条件に該当するJP1イベントのイベントIDです。
-
リクエストボディーのパラメーター「body2」:${:event[1]:B.MESSAGE:}
casesに指定したtypeが「event」の1番目の提案活性条件に該当するJP1イベントのメッセージです。
{ "type":"restApi", "params":{ "method":"POST", "url":"https://test", "headers":{ "Authorization":"yyyy/zzzz", "Content-Type": "application/json" }, "body":{ "body1":"${:event[1]:B.ID:}", "body2":"${:event[1]:B.MESSAGE:}" } }, "description":"JP1イベントの情報を用いてREST API testを実行する" }
-
(b) typeに「plugin」を指定した場合の対処アクション
type(対処アクション種別)にpluginを指定した場合は,プラグイン関数の実行を対処アクションに指定できます。
- 形式
{ "type":"plugin", "params":{ "sid":"ツリーSID", "method":"プラグイン関数名", "args":"プラグイン関数の引数" }, "description":"対処アクションの説明" }
記述内容
- "params"
-
対処アクションの対象となるプラグイン関数の情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "sid":"ツリーSID"
-
ツリーSIDを指定します。指定できる文字はツリーSIDの仕様に準じます。指定したツリーSIDに紐付いている構成情報のSIDを指定してプラグイン関数を実行します。指定したツリーSIDに複数の構成情報のSIDが紐付いている場合は,一つの構成情報のSIDを指定してプラグイン関数を実行し,実行に成功した場合は,それ以降の構成情報のSIDは無視します。構成情報のSIDを指定する順番は,不定です。
プラグイン内でargs.setErrorメソッドが実行された場合,プラグイン関数の実行に失敗したと判断され,次の構成情報のSIDでプラグイン関数を実行します。
データ型はstringです。このメンバーは省略できます。省略した場合は,選択中のノードを指定したと仮定されます。
- "method":"プラグイン関数名"
-
プラグイン関数名を指定します。プラグイン関数を追加したあとに,JP1/IM3-Managerサービスが再起動されているか確認してください。指定するプラグイン関数は,次のすべての条件を満たす必要があります。
-
module.exportsでモジュール化されている。
-
引数はobject型の「args」だけである。
-
returnではなく,args.setResult(Object result)メソッドでレスポンスを返却する。
「result」にはレスポンスを指定します。
-
例外ではなくargs.setError(String message)メソッドによって,エラー通知する。
「message」にはエラーメッセージを指定します。
-
「__」(アンダースコア二つ)から始まる関数名ではない。
データ型はstringです。このメンバーは省略できません。
-
- "args":"プラグイン関数の引数"
-
実行するプラグイン関数の引数を指定します。渡す情報が存在しない場合は,空オブジェクトを指定します。指定したオブジェクトは,実行するプラグイン関数の引数args.methodArgsに渡されます。そのほかのプラグイン関数のargsに渡される値については,「5.7.1 プラグイン処理実行」を参照してください。
データ型はobjectです。このメンバーは省略できません。
descriptionメンバーについては,「(2) 対処アクション」の説明を参照してください。
- 指定例
-
次の条件のプラグイン関数を実行する場合の例です。
-
対象のIM管理ノード:選択中のIM管理ノード
-
プラグイン関数:jp1pfmSuggestionSetStatusOfEventsToProcessed
JP1イベントを対処済みにする関数です。jp1pfmSuggestionSetStatusOfEventsToProcessed関数の詳細については,マニュアル「JP1/Performance Management リファレンス」を参照してください。
-
引数:イベントSID
casesに指定したtypeが「pugin」の,3番目の提案活性条件で実行したプラグイン関数のレスポンスsuggestionの値です。
{ "type":"plugin", "params":{ "sid":"${.:tree:sid:}", "method":"jp1pfmSuggestionSetStatusOfEventsToProcessed", "args":{ "eventSids":"${:plugin[3]::}" } }, "description":"現在の状態が正常なアラームまたはエージェントのイベントの対処状況を「対処済」にする" }
-
JP1/PFMと連携する場合は,JP1/PFMのプラグインメソッドが利用できます。詳細については,マニュアル「JP1/Performance Management 運用ガイド」を参照してください。
(c) typeに「cmd」を指定した場合の対処アクション
type(対処アクション種別)にcmdを指定した場合は,コマンドの実行を対処アクションに指定できます。
- 形式
{ "type":"cmd", "params":{ "host":"コマンドの実行先ホスト", "cmd":"実行コマンド", "env":"環境変数", "envFile":"環境変数ファイル名" }, "description":"対処アクションの説明" }
記述内容
- "params"
-
対処アクションの対象となるコマンドの情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "host":"コマンドの実行先ホスト"
-
コマンドの実行先ホスト名を指定します。指定できる範囲は,1〜254バイトです。データ型はstringです。このメンバーは省略できません。
- "cmd":"実行コマンド"
-
実行コマンドと引数を指定します。指定できる範囲は,1〜4,095バイトです。
コマンド名に空白を含む場合は"(ダブルクォーテーション)で囲みます。データ型はstringです。このメンバーは省略できません。
- "env":"環境変数"
-
実行先ホストでコマンドを実行する際の環境変数をオブジェクトのキーに,環境変数の値をオブジェクトの値に指定します。
最大30個まで指定できます。オブジェクトのキーと値は,全体で1〜7,107バイトの範囲で指定します。データ型はobjectです。このメンバーは省略できます。
- "envFile":"環境変数ファイル名"
-
実行先ホストのファイル名を,絶対パス形式で指定します。指定できる範囲は,1〜255バイトです。データ型はstringです。このメンバーは省略できます。
typeが「cmd」の対処アクションに指定した変数は,変数を変換したあとに次の文字変換が実行されます。
-
次の制御文字が対処アクションに指定した変数に含まれていた場合,半角スペース(0x20)に変換します。
・0x01から0x1F(タブ(0x09)を除く)
・0x7F
-
文字変換は,イベント引き継ぎ情報変換設定ファイルに従って実行されます。詳細は,「イベント引き継ぎ情報変換設定ファイル(event_info_replace.conf)」(2. 定義ファイル)を参照してください。
descriptionメンバーについては,「(2) 対処アクション」の説明を参照してください。
- 指定例
-
次の条件のコマンドを実行する場合の例です。
-
コマンドの実行先ホスト名:選択中のIM管理ノード(JP1/IMのホストのノード)のノード名称
-
実行コマンド:"C:\Program Files (x86)\Hitachi\JP1IMM\tools\jim_log" -f C:\\temp -q
JP1/IMの資料採取コマンドです。
-
環境変数ファイル名:対象ホストのC:\envFile.txt
{ "type":"cmd", "params":{ "host":"${.:tree:value.label:}", "cmd":"\"C:\\Program Files (x86)\\Hitachi\\JP1IMM\\tools\\jim_log\" -f C:\\temp -q", "envFile":"C:\\envFile.txt" }, "description":"JP1/IMの資料採取コマンド実行" }
-
(d) typeに「eventStatus」を指定した場合の対処アクション
type(対処アクション種別)にeventStatusを指定した場合は,JP1イベントの対処状況の変更を,対処アクションに指定できます。
- 形式
{ "type":"eventStatus", "params":{ "dealt":対処状況, "sid":"JP1イベントのSID,..." }, "description":"対処アクションの説明" }
記述内容
- "params"
-
対処アクションの対象となるイベントと対処状況を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "dealt":対処状況
-
変更後の対処状況を指定します。指定できる値を次に示します。
-
0:未対処
-
1:対処済
-
2:処理中
-
3:保留
データ型はnumberです。このメンバーは省略できません。
-
- "sid":"JP1イベントのSID"
-
対処状況を取得したいJP1イベントのSIDを指定します。
複数のJP1イベントのSIDを指定する場合は,JP1イベントのSIDを「,」で連結して指定します。指定できる文字は,SIDの仕様に従います。指定できるイベントのSIDは1〜2,000個です。データ型はstringです。このメンバーは省略できません。
descriptionメンバーについては,「(2) 対処アクション」の説明を参照してください。
- 指定例
-
次の条件のイベントの対処状況を1(対処済み)に変更する場合の例です。
-
イベントSID:${:event[1]:sid:},${:event[2]:sid:}
casesに指定したtypeが「event」の1番目と2番目の提案活性条件に該当するJP1イベントのイベントSIDです。
{ "type":"eventStatus", "params":{ "dealt":1, "sid":"${:event[1]:sid:},${:event[2]:sid:}" }, "description":"イベントID:${:event[1]:B.ID:},${:event[2]:B.ID:}を対処済みに変更する" }
-
(e) typeに「jump」を指定した場合の対処アクション
type(対処アクション種別)にjumpを指定した場合は,特定のURLまたは[繰り返しイベント一覧]画面へのジャンプを,対処アクションに指定できます。
- 形式
{ "type":"jump", "params":{ "url":"URL", "target":"HTMLのターゲット属性", "relatedEvent":繰り返しイベント一覧画面情報 }, "description":"対処アクションの説明" }
記述内容
- "params"
-
対処アクションの対象となるジャンプ先の情報を指定するオブジェクトです。データ型はobjectです。このメンバーは省略できません。
- "url":"URL"
-
ジャンプ先のURLを,次のどちらかの形式で指定します。
指定できる文字は,半角英数字およびRFC 2396の仕様に準拠した次の記号です。
「;」,「/」,「?」,「:」,「@」,「&」,「=」,「+」,「$」,「,」,「-」,「_」,「.」,「!」,「~」,「*」,「'」,「(」,「)」,「%」
先頭には「http://」,「https://」,「index?」のどれかを指定します。
-
任意のURL
任意のURLを指定します。
-
JP1/IMのダイレクトアクセスURL
JP1/IMのダイレクトアクセスURLを,[統合オペレーション・ビューアー]画面のindexから指定します。画面を再読み込みしないで,現在開いている画面内で指定したURLにジャンプします。ダイレクトアクセスURLの形式については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「4.12 ダイレクトアクセスURLの設定」を参照してください。
データ型はstringです。このメンバーかrelatedEventメンバーのどちらかを,必ず指定する必要があります。
-
- "tagret":"HTMLのターゲット属性"
-
ジャンプ先のURLを開く際のHTMLのtarget属性を指定します。省略した場合は「_blank」を指定したと仮定します。次の値は指定できません。
-
_self
-
_parent
-
_top
-
JP1IM_から始まる値
urlメンバーが省略されている場合,またはurlメンバーの値に「index」から始まるURLを指定した場合は,targetメンバーの値は無視します。データ型はstringです。このメンバーは省略できます。
-
- "relatedEvent":検索条件の番号
-
[繰り返しイベント一覧]画面を表示する場合に指定します。対象となるのはtypeがeventの提案活性条件で検索されたイベントです。casesに指定したtypeがeventの提案活性条件のうち,何番目の条件で検索されたイベントかを1〜100の数字で指定します。
該当するJP1イベントが複数存在する場合は,登録日時が最も新しいJP1イベントの[繰り返しイベント一覧]画面が表示されます。
データ型はnumberです。このメンバーかurlメンバーのどちらかを,必ず指定する必要があります。
descriptionメンバーについては,「(2) 対処アクション」の説明を参照してください。
- 指定例1
-
ターゲット名を指定して特定URLにジャンプする場合の例です。
{ "type":"jump", "params":{ "url":"https://sample/web/application", "target":"sampleWebApplication" }, "description":"「https://sample/web/application」にジャンプする" }
- 指定例2
-
ダイレクトアクセスURLを指定する場合の例です。
{ "type":"jump", "params":{ "url":"index?sid=${../../..:tree:sid:URLENC}%2F%5FCATEGORY%5FmanagementApplications%2F%5FOBJECT%5FJP1AJSAGT&view=tree&eou=1" }, "description":"JP1/IMの画面移動(同じホストのJP1/AJS - Managerのノード)" }
- 指定例3
-
[繰り返しイベント一覧]画面を指定する場合の例です。
{ "type":"jump", "params":{ "relatedEvent":1 }, "description":"繰り返しイベント一覧画面を開く" }
(3) 変数
提案活性条件と対処アクションには,変数を指定できます。変数は,選択中のIM管理ノードの情報,現在時刻を,提案活性条件の判定時に取得した情報に置き換えることができます。変数の使用によって,動的な提案活性条件,対処アクションの定義ができます。
- 変数による提案活性条件の指定例
-
提案活性条件
-
提案活性条件1:イベントIDがxxxのJP1イベントが存在する
-
提案活性条件2:登録日時が「提案活性条件1に該当するイベントの登録日時」以降のJP1イベントが存在する
「提案活性条件1に該当するイベントの登録日時」を変数で定義します。提案活性条件に指定した変数は,提案活性条件ごとに判定時に変換されます。判定がスキップされる場合は変換されません。判定のスキップについては「(1) 提案活性条件」の説明を参照してください。
対処アクションに指定された変数は,対処アクションを提案する条件を判定したあとに変換されます。判定が成立しない場合は,変換されません。
- 指定例
"cases":[ ["提案活性条件1","提案活性条件2"], ["提案活性条件3"] ], "action":"対処アクション"
上記の例の場合,次に示す順序で処理が実行されます。
-
提案活性条件1に指定されている変数の変換
-
提案活性条件1の判定(成立)
-
提案活性条件2に指定されている変数の変換
-
提案活性条件2の判定(不成立)
-
提案活性条件3に指定されている変数の変換
-
提案活性条件3の判定(成立)
-
対処アクションに指定されている変数の変換
-
対処アクションの提案
-
変数は提案活性条件,および対処アクションのtype以外のstring型のメンバー,および配列のstring型の要素,objectのstring型のメンバー(メンバー名は除く)に指定できます。変数の形式を次に示します。
${"対象ノード":"対象種別":"対象キー":"エンコード種別"}
- 重要
-
変数の形式の「:」(コロン)は省略できません。また,対象ノードに「$」,「{」,「}」は使用できません。対象種別,対象キー,エンコード種別に「:」,「$」,「{」,「}」は使用できません。
(A) 対象ノード
情報の取得元のIM管理ノードを,ツリーSIDまたは選択中のIM管理ノードからの相対パス形式で指定します。変数の変換対象の種別によっては省略できます。詳細は「表2-10 対象種別に指定できる値」を参照してください。対象ノードが不要な対象種別に対象ノードを指定した場合は無視されます。
相対パスの形式を次の表に示します。「/」で連結して指定してください。
項番 |
相対パスの形式 |
対象ノードの先頭に指定した場合に表すノード |
対象ノードの1番目の「/」より後ろに指定した場合に表すノード |
---|---|---|---|
1 |
. |
選択中のIM管理ノード,または対処アクション提案APIのリクエストで指定したツリーSIDのノードを表す場合に指定します。 |
指定できません。 |
2 |
.. |
選択中のIM管理ノードの上位ノード,または対処アクション提案APIのリクエストで指定したツリーSIDの上位ノードを表す場合に指定します。 |
現在のノードの上位ノードを表す場合に指定します。 |
3 |
構造化ID |
ノードを絶対パス形式で指定する場合に,絶対パスの構造化IDを指定します。 構造化IDに指定できる文字については「7.1 SID」を参照してください。 |
現在のノードの下位のノードを指定する場合に,現在のノードのツリーSID以降の構造化IDを指定します。 構造化IDに指定できる文字については「7.1 SID」を参照してください。 |
4 |
リンクの方向<linkType> |
指定できません。 |
現在のノードとリンク情報の種別<linkType>のリンクで,関連しているノードを表す場合に指定します。 ツリーSID,構成情報のSIDのどちらのリンク情報も指定できます。 リンクの方向には次のどちらかを指定できます。
<linkType>にTreeは指定できません。また,リンクの方向,<linkType>に該当するリンクが複数存在する場合は,最初のリンクの関連ノードを指定したものとして動作します。<linkType>に指定できる文字については,「IM管理ノードリンク定義ファイル(imdd_nodeLink_def.conf)」(2. 定義ファイル)の「type」(処理対象種別)の説明を参照してください。 |
(B) 対象種別
対象種別には,変数をイベント情報に変換する,REST API実行結果に変換するなど,どのように変換するのか,変換の対象種別を指定します。対象種別に指定できる値を,次の表に示します。
項番 |
対象種別 |
説明 |
対象ノードの指定要否 |
---|---|---|---|
1 |
target[製品名] |
対象ノードの構成情報のSIDのうち,[製品名]の製品プラグインが作成した構成情報のSIDの情報に変換されます。 対象ノードに,対象の製品プラグインが作成した構成情報のSIDが複数存在する場合は,最初に取得した構成情報のSIDの情報に変換されます。取得する順番は不定です。 [製品名]は省略できます。省略した場合は,最初に取得した構成情報のSIDの情報に変換されます。この場合も,取得する順番は不定です。 [製品名]に指定できる値は,構成取得対象ホスト定義ファイルのproductに指定できる値と同じです。詳細については「構成取得対象ホスト定義ファイル(imdd_target_host.conf)」(2. 定義ファイル)を参照してください。 |
要 |
2 |
tree |
対象ノードのツリーSIDの情報に変換されます。 |
要 |
3 |
time |
時刻の情報に変換されます。 |
不要 |
4 |
event[n] |
casesに指定したtypeが「event」の提案活性条件のうち,n番目の提案活性条件に該当するJP1イベントの情報に変換されます。 該当するJP1イベントが複数存在する場合は,登録日時が最も新しいJP1イベントの情報に変換されます。 [n]には1〜100の数字を指定してください。 |
不要 |
5 |
eventCount[n] |
casesに指定したtypeが「eventCount」の提案活性条件のうち,n番目の提案活性条件に該当するJP1イベントの情報に変換されます。 該当するJP1イベントが複数存在する場合は,すべてのJP1イベントの情報をまとめた情報に変換されます。 [n]には1〜100の数字を指定してください。 |
不要 |
6 |
restApi[n] |
casesに指定したtypeが「restApi」の提案活性条件のうち,n番目の提案活性条件で実行したREST APIのレスポンスの情報に変換されます。 [n]には1〜100の数字を指定してください。 |
不要 |
7 |
plugin[n] |
casesに指定したtypeが「plugin」の提案活性条件のうち,n番目の提案活性条件で実行したプラグイン関数の実行結果の情報に変換されます。 [n]には1〜100の数字を指定してください。 |
不要 |
8 |
cmd[n] |
casesに指定したtypeが「cmd」の提案活性条件のうち,n番目の提案活性条件で実行したコマンドの実行結果の情報に変換されます。 [n]には1〜100の数字を指定してください。 |
不要 |
(C) 対象キー
対象キーには,変数を変換する対象種別ごとの要素を指定します。例えば,REST APIの実行結果の場合は,レスポンスのステータスコード要素,ボティー要素などを指定します。対象キーに指定できる値は,対象種別によって異なります。対象種別ごとに指定できる対象キーについて説明します。
(a) 対象種別がtargetの場合
対象種別がtargetの場合,対象キーには構成情報のSIDの要素を指定します。指定できる対象キーを次に示します。
- sid
-
対象ノードの構成情報のSIDの値に変換されます。
- value.メンバー名
-
対象ノードの構成情報のSIDに付与されたvalue値のメンバー名に指定されたメンバーの値に変換されます。
オブジェクトの配下のメンバーをさらに指定したい場合は,次の形式で指定します。
オブジェクト名.メンバー名
ただし,指定したメンバーの型が配列,またはオブジェクトの場合は指定できません。
[統合オペレーション・ビューアー]画面の[関連ノード]タブ−[関連ノードのプロパティ]領域に表示される,製品プラグインが設定したプロパティの値を変換する場合は,次の形式で指定します。
value.property.プロパティ名
- 指定例
-
選択中のIM管理ノード(JP1/PFMのエージェントのIM管理ノード)のSIDからサービスIDを取得し,監視一時停止コマンドを実行する場合の例です。
なお,サービスIDは変数に次の値を指定して取得したものとします。
-
対象ノード:選択中のIM管理ノード
-
対象種別:target(構成情報のSID)
-
対象キー:value.property.SerViceId(Value値のpropertyのメンバーServiceId)
{ "type":"cmd", "params":{ ... "cmd":"\"C:\\Program Files (x86)\\Hitachi\\jp1pc\\tools\\jpctool\" monitor suspend -noquery -id ${.:target:value.property.ServiceId:}" }, "description":"JP1/PFMの監視一時停止コマンドを実行" }
-
(b) 対象種別がtreeの場合
対象種別がtreeの場合,対象キーにはツリーのSIDの要素を指定します。指定できる対象キーを次に示します。
- sid
-
対象ノードのツリーのSIDの値に変換されます。
- value.メンバー名
-
対象ノードのツリーのSIDに付与されたvalue値のメンバー名に指定されたメンバーの値に変換されます。
オブジェクトの配下のメンバーをさらに指定したい場合は,次の形式で指定します。
オブジェクト名.メンバー名
ただし,配列,またはオブジェクトのメンバーは指定できません。
- 指定例
-
選択中のノードのツリーSIDを指定した場合の例です。
{ "type":"event", "key":{ "sid":"${.:tree:sid:}", ... }, ... }
(c) 対象種別がtimeの場合
対象種別がtimeの場合,対象キーには現在日時(ISO8601形式のUTC時刻)からの相対日時を指定します。相対日時の指定形式を次に示します。
[+|-]値.単位.切り出し部分
対象キーは省略できます。省略した場合は,ISO8601形式の現在日時に変換されます。timeに指定できる対象キーを次に示します。
- [+|-]
-
現在日時から未来,または過去の日時かどうかを指定します。
-
+:現在日時から未来の日時に変換されます。
-
-:現在日時から過去の日時に変換されます。
このキーは省略できます。省略した場合は現在の時間に変換されます。
-
- 値.単位
-
現在日時からどの程度,未来,過去の時刻かを指定します。
値には,1〜2147483647の整数を指定します。単位には次のどれかの値を指定します。
-
y:年
-
M:月
-
d:日
-
h:時間
-
m:分
-
s:秒
[+|-]の指定が省略されている場合,このキーは指定できません。[+|-]が指定されている場合,このキーの指定は省略できません。なお,変数の変換結果の日時が次の場合は,エラーとなります。
-
1970-01-01T00:00:00Zより過去の日時
-
9999-12-31T23:59:59Zより未来の日時
-
- 切り出し部分
-
指定した日時の一部だけを変換したい場合に,変換したい一部を切り出して指定します。指定できる値を次に示します。
-
y:年部分
-
M:月部分
-
d:日
-
h:時間分
-
m:分部分
-
s:秒部分
このキーは省略できます。省略した場合はすべてを変換します。
-
- 指定例
-
イベント条件で,昨日のUTC23時から今日のUTC2時の時間帯のイベントを指定した場合の例です。
なお,「昨日のUTC23時」,「今日のUTC2時」を次の変数の組み合わせで取得したものとします。
- 昨日のUTC23時
-
-
${:time:-1.d.y:} 現在時刻の1日前の年部分
-
${:time:-1.d.M:} 現在時刻の1日前の月部分
-
${:time:-1.d.d:} 現在時刻の1日前の日部分
各変数は対象種別にtime,対象キーに-1.d.切り出し部分を指定することで現在時刻の1日前の日時の切り出し部分の値を取得しています。
-
- 今日のUTC2時
-
-
${:time:..y:} 現在時刻の年部分
-
${:time:..M:} 現在時刻の月部分
-
${:time:..d:} 現在時刻の日部分
各変数は対象種別にtime,対象キーに切り出し部分を指定することで現在時刻の日時の切り出し部分の値を取得しています。
-
{ "type":"event", "key":{ "B.TIME":["${:time:-1.d.y:}-${:time:-1.d.M:}-${:time:-1.d.d:}T23:00:00Z", "${:time:..y:}-${:time:..M:}-${:time:..d:}T02:00:00Z"], ... }, ... }
(d) 対象種別がevent[n]の場合
対象種別がevent[n]の場合,対象キーにはJP1イベントの要素を指定します。指定できる対象キーを次に示します。
- sid
-
JP1イベントのSIDに変換されます。
- 属性名
-
JP1イベントの<属性名>の属性の値に変換されます。指定できる属性名については「5.6.1 イベント検索」を参照してください。
- 指定例
-
イベント条件で未対処のイベントID:XXXXの後に,未対処イベントID:YYYYが発行されている条件を指定する場合の例です。
なお,2番目のイベント条件のB.TIME(登録日時)の1番目の要素に,1番目のイベント条件に該当したイベントの登録日時を指定し,2番目の要素に現在時刻を指定することでXXXXの後のYYYYのイベントという条件を指定したものとします。また,1番目のイベント条件に該当したイベントの登録日時は,変数に次の値を指定することで取得したものとします。
-
対象種別:event[1] 1番目のイベント条件
-
対象キー:B.TIME イベントの登録日時
"cases":[ [ { "type":"event", "key":{ "sid":"${.:tree:sid:}", "statusFilter":[30], "B.ID":["XXXX"], "E.@JP1IM_DEALT":[0] }, ... }, { "type":"event", "key":{ "sid":"${.:tree:sid:}", "statusFilter":[30], "B.TIME":["${:event[1]:B.TIME:}","${:time::}"], "B.ID":["YYYY"], "E.@JP1IM_DEALT":[0] }, ... } ] ]
-
(e) 対象種別がeventCount[n]の場合
対象種別がeventCount[n]の場合,対象キーにはJP1イベントの要素を指定します。指定できる対象キーを次に示します。
- sid
-
JP1イベントのSIDに変換されます。複数のJP1イベントが該当する場合は,各イベントを「,」で区切った文字列に変換されます。
- 指定例
-
JP1イベントの対処状況の変更の対処アクションで,イベント条件でヒットしたJP1イベントをすべて対処済みにする場合の例です。
{ "type":"eventStatus", "params":{ "sid":"${:eventCount[1]:sid:}", "dealt":1 }, "description":"該当するすべてのJP1イベントを対処済みに変更する" }
(f) 対象種別がrestApi[n]の場合
対象種別がrestApi[n]の場合,対象キーにはREST APIのレスポンスの要素を指定します。指定できる対象キーを次に示します。
- status
-
REST APIのレスポンスのステータスコードに変換されます。
- headers
-
REST APIのレスポンスヘッダーに変換されます。変換後の形式については,「(1)(d) typeに「restApi」を指定した場合の提案活性条件」の「REST APIのレスポンスヘッダーの文字列の形式」の説明を参照してください。
- body
-
REST APIのレスポンスボディーに変換されます。
- 指定例
-
プラグイン関数実行の対処アクションの引数に,REST APIの条件で実行したREST APIのレスポンスボディーを指定する場合の例です。
なお,REST APIの条件で実行したREST APIのレスポンスボディーは,変数に次の値を指定することで取得したものとします。
-
対象種別:restApi[1] 1番目のREST APIの条件
-
対象キー:body レスポンスボディー
"cases":[ [ { "type":"restApi", ... } ] ... "action": { "type":"plugin", "params":{ ... "args":{ "apiResponse":"${:restApi[1]:body:}" } }, ... }
-
(g) 対象種別がplugin[n]の場合
対象種別がplugin[n]の場合,対象キーを指定する必要はありません。案活性条件のkeyで指定したプラグイン関数が,args.setResultメソッドに渡したオブジェクトのsuggestionメンバーの値に変換されます。
- 指定例
-
プラグイン関数の実行の対処アクションの引数に,プラグイン関数の条件で実行したプラグイン関数のレスポンスを指定する場合の例です。
なお,プラグイン関数の条件で実行したプラグイン関数のレスポンは,変数に次の値を指定することで取得したものとします。
-
対象種別:plugin[1] プラグイン関数の条件
-
対象キー:指定なし
"cases":[ [ { "type":"plugin", ... } ] ... "action": { "type":"plugin", "params":{ ..., "args":{ "pluginResult":"${:plugin[1]::}" } }, ... }
-
(h) 対象種別がcmd[n]の場合
対象種別がcmd[n]の場合,対象キーにはコマンドの実行結果の要素を指定します。指定できる対象キーを次に示します。
- rc
-
コマンドの戻り値に変換されます。
- stdout
-
コマンドの標準出力に変換されます。
- stderr
-
コマンドの標準エラー出力に変換されます。
- 指定例
-
プラグイン関数の実行の対処アクションの引数に,コマンド実行の条件で実行したコマンドの標準出力を指定する場合の例です。
なお,コマンド実行の条件で実行したコマンドの標準出力は,変数に次の値を指定することで取得したものとします。
-
対象種別:cmd[1] 1番目のコマンドの条件
-
対象キー:stdout 標準出力
"cases":[ [ { "type":"cmd", ... } ] ... "action": { "type":"plugin", "params":{ ..., "args":{ "cmdStdOut":"${:cmd[1]:stdout:}" } }, ... }
-
(i) エンコード種別
変数を変換する際にエンコードする場合に指定します。エンコード種別は省略できます。省略した場合はエンコードされません。
指定できるエンコード種別を次に示します。
-
ENC:変数をBase64でエンコードします。
-
URLENC:変数をURLでエンコードします。
注意事項
-
提案定義ファイルには,Windowsの場合はAdministrator権限,UNIXの場合はroot権限を設定してください。
-
提案定義ファイルは,正規表現で指定できます。正規表現で指定する場合,すべての文字に一致する表現の「.*」を多用すると,マッピングに時間が掛かることがあります。「.*」を使用する場合は,必要な個所にだけ「.*」を使用するようにしてください。
-
提案定義ファイルの正規表現は部分一致のため,先頭および末尾に「.*」を指定した場合と,先頭および末尾に「.*」を指定しない場合は同じ条件になります。
例えば,次の例1と,例2は同じ条件になります。
(例1)「_OBJECT_JP1IMMGR」を含む文字列の場合に一致する正規表現
.*_OBJECT_JP1IMMGR.*
(例2)「_OBJECT_JP1IMMGR」を含む文字列の場合に一致する正規表現
_OBJECT_JP1IMMGR
先頭および末尾に「.*」を指定した場合,検索に時間が掛かることがあるので,先頭および末尾に「.*」は指定しないでください。
-
正規表現を使用していて,次に示すどちらかに一致している場合,jddupdatesuggestionコマンドを実行した際にKAJY22042-Wメッセージが表示されます。
-
正規表現として,先頭または末尾に「.*」が指定されている
-
正規表現として,「.*」が連続して指定されている
KAJY22042-Wメッセージの詳細については,マニュアル「JP1/Integrated Management 3 -Manager メッセージ」を参照してください。
-
-
一つのIM管理ノードで表示する提案情報の数によっては,提案活性条件の判定に時間が掛かる場合があります。十分にテスト運用し,問題ないことを確認してください。
定義例
次の条件の場合の提案定義ファイルの定義例について説明します。
- 提案表示条件
-
-
ヘルスチェックイベントがマッピングされるJP1/PFM - Agentのノードに提案を表示する。
-
ユーザーは,JP1_AJS_AdminまたはJP1_AJS_EditorのJP1権限を付与されている。
-
- 提案活性条件
-
-
選択中のIM管理ノードと同じホストにJP1/AJS - Agentのノードが存在し,かつ選択中のIM管理ノードに,過去1時間以内にホスト停止のヘルスチェックイベントが発行され,対処状況は未対処となっている。
-
- 対処アクション
-
-
選択中のIM管理ノードと同じホストに存在するJP1/AJS - Agentの[関連ノード]タブに画面を移動する。
図2‒2 同一ホスト内にJP1/AJS-AgentとJP1/PFM-Agentが存在する場合のツリー構成例
-
上記の図で「JP1/AJS3 - Agent」がJP1/AJS - Agentのノードです。ツリーSIDを次に示します。
_ROOT_AllSystems/_HOST_HOSTA/_CATEGORY_managementApplications/_OBJECT_JP1AJSAGT
上記の図で「HostA<Windows>」が,ヘルスチェックイベントがマッピングされるJP1/PFM - Agentのノードです。ツリーSIDを次に示します。
_ROOT_AllSystems/_HOST_HOSTA/_CATEGORY_managementApplications/_SUBCATEGORY_JP1%2FPFM%20-%20Windows/_OBJECT_JP1PFM-ATA1HostAJP1AGENTSERVICE
提案定義ファイルに記載する定義を次に示します。
{ "meta":{ "version":"1" }, "suggestions":[ { "suggestionId":"check_affected_rootJobnet", "label":"ホスト停止に影響されるルートジョブネットの影響", "node":"_CATEGORY_managementApplications.*_OBJECT_JP1PFM-A", "permissions":[ ["JP1_AJS_Admin"], ["JP1_AJS_Editor"] ], "cases":[ [ { "type":"struct", "key":{ "idType":"tree", "sid":"${../..:tree:sid:}/_OBJECT_JP1AJSAGT" }, "ope":"EXIST", "val":true, "description":"選択中のノード(PFM-Agent)と同じホストにJP1/AJS-Agentのノードが存在する" }, { "type":"event", "key":{ "sid":"${.:tree:sid:}", "statusFilter":[20,30,40], "B.TIME":["${:time:-1.h.:}","${:time::}"], "B.ID":["00004860"], "REGEX_B.MESSAGE":"KAVL15022-E.*hcsstatus=Host Not Available", "E.@JP1IM_DEALT":[0] }, "ope":"EXIST", "val":true, "description":"ホスト停止のJP1イベントが発行されている" } ] ], "action":{ "type":"jump", "params":{ "url":"index?sid=${../..:tree:sid:URLENC}%2F%5FOBJECT%5FJP1AJSAGT&view=tree&tab=relation&eou=1" }, "description":"JP1/AJS-Agentのノードの[関連ノード]タブに移動" } } ] }