Tuning Manager APIリファレンスガイド
ここでは,アラート定義情報の作成手順を説明します。
アラート定義情報を次に示します。なお,見やすくするために改行を入れています。
各変数に対する値域については,オブジェクトの説明の個所を参照してください。
{ "alertDefName": "<アラート定義名>", "targets": [{ "targetID": "<target ID>", "targetDef": { "type": "<装置の特定>", "key": { "model": "<機種名>" }, "filters": [{ "filterConditions": [{ "fieldName": "<フィールド>", "value": "<絞り込む値>" }] }] } }], "notices": [{ "noticeID": "<notice ID>", "emailNotification": ["warning","caution","normal"], "emails": [{ "addresses": [ "<emailの宛先>" ], "subject": "<emailのタイトル>, "body": "<emailの本文>" }] }], "triggers": [{ "triggerID": "<trigger ID>", "isActive": "<設定したアラート定義情報の有効/無効>", "monitorAlways": "<アラート機能の状態>", "monitoringTime": { "starttime": "<開始時間>", "endtime": "<終了時間>" }, "alertEveryTime": "<状態変化時の通知有無>", "evaluateAllData": "<全レコードの評価方法>", "evaluatePoR": "<値の存在を確認するかしないか>", "condition": { "targetOfPoR": "<存在を確認する値>", "warning": "<異常値の条件式>", "caution": "<警告値の条件式>" }, "frequency": { "count": "n/m" } }], "definitions": [{ "targetIDs": [<targetIDのリスト>], "noticeIDs": [<noticeIDのリスト>], "triggerIDs": [<triggerIDのリスト>] }] }
- この節の構成
- A.2.1 アラート定義情報を定義する前に確認すること
- A.2.2 アラート定義情報を定義する際に使用できる文字について
- A.2.3 アラート定義情報の定義例
アラート定義情報の定義を始める前に,定義に使用する情報および定義方法について,次の説明を読んで確認してください。
アラート定義情報を適用する監視対象の定義(target型内のtargetDef型)で使用します。
- ストレージシステムの場合:
- 機種名
HTM - Agent for RAIDのPDレコードまたはPD_PDXレコードのDKC_NAMEフィールドの値に相当します。アラート定義情報の「model」に指定する値です。- シリアル番号※
HTM - Agent for RAIDのPDレコードまたはPD_PDXレコードのDKC_SERIAL_NUMBERフィールドの値に相当します。アラート定義情報の「serial」に指定する値です。
注※ ストレージシステムをより限定したい場合にだけ,必要です。
- Hitachi Virtual File Platform※の場合:
- インスタンス作成時にdestination_address,またはdetour_addressで指定したIPアドレス。
- アラート定義情報の「nasSystemIp」に指定する値です。
注※ 次のファイルサーバを総称して,「Hitachi Virtual File Platform」と呼びます。
- Hitachi Virtual File Platform
- Hitachi Capacity Optimization
- Hitachi Essential NAS Platform
- 外部NAS Managerで管理されるNAS Platformの場合:
- インスタンス作成時にSMU/NAS Manager IP Addressで指定したIPアドレス。
- アラート定義情報の「smuIp」に指定する値です。
- 内部NAS Managerで管理されるNAS Platformの場合:
- NASモジュールを搭載したストレージシステムの機種名
HTM - Agents情報の取得のAPIで取得したストレージシステムの機種名を指定します。- NASモジュールを搭載したストレージシステムのシリアル番号
インスタンスの作成時に指定したNASモジュールを搭載したストレージシステムのシリアル番号を指定します。アラート定義情報を適用するリソースを絞り込む定義(target型内のtargetDef型)で使用します。
なお,全インスタンスに対して適用する場合,確認は不要です。
- レコードID
- フィールド名(PFM - Manager名)
- 絞り込む条件値
- 絞り込み条件のリソース定義名の形式:
<レコードID>.<フィールド名(PFM - Manager名)>- (例)PI_PRCS.ADAPTOR_ID
- 絞り込み条件値で使用できる文字:
- 半角英数字
- 半角スペース
- エスケープ文字※
- 特定の記号※
- 注※
- 詳細については,「A.2.2 アラート定義情報を定義する際に使用できる文字について」を参照してください。
- 定義する際の注意点:
- filters変数内でfilterCondition型を複数定義した場合,"OR"条件で結びつきます。
- filterCondition型内で複数定義した場合,"AND"条件で結びつきます。
- リソースの絞り込み条件の定義例:
- (絞り込み条件:次のどちらかに該当するリソースであること)
- PI_PRCSレコードの,Adaptor IDフィールドがA,かつ
Processor IDフィールドが1のリソース- PI_PRCSレコードの,Adaptor IDフィールドがB,かつ
Processor IDフィールドが2のリソース
"filters":[{ "filterConditions": [{ "fieldName": "PI_PRCS.ADAPTOR_ID", "value": "A" }, { "fieldName": "PI_PRCS.PROCESSOR_ID", "value": "1" }] }, { "filterConditions": [{ "fieldName": "PI_PRCS.ADAPTOR_ID", "value": "B" }, { "fieldName": "PI_PRCS.PROCESSOR_ID", "value": "2" }] }]アラートイベント発行時にemailを送信する場合のアクション情報の定義(notice型内のemail型)で使用します。
- emailの宛先
(例)alert@example.com- emailのタイトル
- emailの本文
- emailのタイトルとして使用できる文字:
- 半角英数字
- 特定の記号※
- 注※
- 詳細については,「A.2.2 アラート定義情報を定義する際に使用できる文字について」を参照してください。
- (例)Alert occurred in %INST%
- emailの本文として使用できる文字:
- 半角英数字
- 半角スペース
- エスケープ文字※
- 定義変数※
- 特定の記号※
- 注※
- 詳細については,「A.2.2 アラート定義情報を定義する際に使用できる文字について」を参照してください。
- (例)%STAT%:%VAL.PI.CACHE_WRITE_PENDING_RATE% = %PROD% %NAME% on %HOST%
次に,emailの例を示します。emailのタイトルおよびemailの本文の指定する際の参考にしてください。
図A-2 evaluateAllData変数にYを指定した場合のemailの例
図A-3 evaluateAllData変数にNを指定した場合のemailの例
存在を確認する値および条件式の定義(trigger型内のcondition型)で使用します。
- レコードID
- フィールド名(PFM - Manager名)
監視する方法としては,値の存在を確認して監視する方法と,異常値および警告値の条件式によって監視する方法があります。なお,次で説明する形式で使用している"△"は,半角スペースを表します。
アラート定義の監視条件情報を定義する際の定義方法(値の存在を確認して監視する場合)
- 定義の形式:
%<レコードID>.<フィールド名(PFM - Manager名)>%△=△'<値>'
- <値>に使用できる文字:
- 半角英数字
- 半角スペース
- エスケープ文字※
- 特定の記号※
- 注※
- 詳細については,「A.2.2 アラート定義情報を定義する際に使用できる文字について」を参照してください。
- (例)%PI.CACHE_WRITE_PENDING_RATE% = '70'
アラート定義の監視条件情報を定義する際の定義方法(異常値および警告値の条件式によって監視する場合)
異常値の条件式,および警告値の条件式は,次のどれかの形式で定義します。
- 注意
- 異常値の条件式と警告値の条件式は,条件式の右辺以外は同じにしてください。
- 単一条件式として定義する場合の形式:
%<レコードID>.<フィールド名(PFM - Manager名)>%△<条件式の判定記号>△'<値>'
- <条件式の判定記号>で指定できる値を次に示します。
条件式の判定記号 説明 = %<レコードID>.<フィールド名(PFM - Manager名)>%の値と<値>の値が等しい。 <> %<レコードID>.<フィールド名(PFM - Manager名)>%の値と<値>の値が異なる。 > %<レコードID>.<フィールド名(PFM - Manager名)>%の値が<値>の値よりも大きい。 >= %<レコードID>.<フィールド名(PFM - Manager名)>%の値が<値>の値よりも大きいか,または等しい。 < %<レコードID>.<フィールド名(PFM - Manager名)>%の値が<値>の値よりも小さい。 <= %<レコードID>.<フィールド名(PFM - Manager名)>%の値が<値>の値よりも小さいか,または等しい。 - 絞り込み条件値で使用できる文字:
・半角英数字
・半角スペース
・エスケープ文字※
・特定の記号※
注※
詳細については,「A.2.2 アラート定義情報を定義する際に使用できる文字について」を参照してください。
- (例)
- 「PIレコードのCACHE_WRITE_PENDING_RATEが70%を超えた」ときに,異常値だと知らせるときの定義例
- "warning": "%PI.CACHE_WRITE_PENDING_RATE% > '70'"
- 複合条件式として定義する場合の形式:
- 単一条件式の定義を,and(またはAND),またはor(またはOR)で結びつけて定義します。
"<アラートイベントを発行する契機>": "<単一条件式の定義>△and△<単一条件式の定義>"- または
"<実行する契機>": "<単一条件式の定義>△or△<単一条件式の定義>"
- (例)
- PIレコードの,「CACHE_WRITE_PENDING_RATEが70%を超えた」とき,または「CACHE_MEMORY_USAGE_RATEが80%を超えた」ときに,異常値だと知らせるときの定義例
- "warning": "%PI.CACHE_WRITE_PENDING_RATE% > '70' or %PI.CACHE_MEMORY_USAGE_RATE% > '80'"
- 数式的に順序付けて定義する場合の形式:
- 複合条件式を,"("")"で囲むことで,数式的に順序を付けた定義になります。
- (例)
- PIレコードの,「CACHE_WRITE_PENDING_RATEが40%を超えた」かつ「CACHE_SIDE_FILE_RATEが40%を超えた」とき,または「CACHE_MEMORY_USAGE_RATEが80%を超えた」ときに,異常値だと知らせるときの定義例
- "warning": "(%PI.CACHE_WRITE_PENDING_RATE% > '40' and %PI.CACHE_SIDE_FILE_RATE% > '40') or %PI.CACHE_MEMORY_USAGE_RATE% > '80'"
A.2.2 アラート定義情報を定義する際に使用できる文字について
ここでは,アラート定義情報を定義する際に使用できる文字について,説明します。
アラート定義情報を定義する場合に使用できる次の文字を「エスケープ文字」として,説明します。
エスケープ文字 説明 %0009 タブ %000A ラインフィード %000D 改行 %0022 ダブルクォーテーション(") %0024 $ %0025 % %0027 シングルクォーテーション(') %005C バックスラッシュ アラート定義情報を定義する場合に使用できる次の変数を「定義変数」として,説明します。
定義変数 説明 %NAME% アラート定義名 %INST% アラートイベントを発行したエージェントのインスタンス名 %VAL.<レコードID>.<フィールド名(PFM - Manager名)>% 条件式に設定したレコードの測定値 %HOST% アラートイベントを発行したエージェントのホスト名
なお,クラスタシステムで運用している場合は,論理ホスト名になります。%PROD% プロダクト名 %STAT% メッセージ出力の対象となったアラート状態 %TIME% エージェントホストのシステム時刻
なお,通知時刻ではなく,異常が発生または通常に戻った時刻になります。アラート定義情報を定義する場合に使用できる次の記号を「特定の記号」として示します。
! # & ( ) * - . / : ; < = > @ _ |
次にアラート定義情報の定義例を示します。
{ "alertDefName": "Cache Write Pending", "targets": [{ "targetID": "0", "targetDef": { "type": "model", "key": { "model": "VSP G1000" }, "filters": [{ "filterConditions": [{ "fieldName": "PI_CLPS.CLPR_NUMBER", "value": "10" }] }, { "filterConditions": [{ "fieldName": "PI_CLPS.CLPR_NUMBER", "value": "20" }] }] } }, { "targetID": "1", "targetDef": { "type":"model", "key": { "model": "VSP G800" }, "filters": [{ "filterConditions": [{ "fieldName": "PI_CLPS.CLPR_NUMBER", "value": "10" }] }, { "filterConditions": [{ "fieldName": "PI_CLPS.CLPR_NUMBER", "value": "20" }] }] } }, { "targetID": "2", "targetDef": { "type":"model", "key": { "model": "VSP G1000" } } }, { "targetID": "3", "targetDef": { "type":"model", "key": { "model": "VSP G800" } } }], "notices": [{ "noticeID": "0", "emailNotification": ["warning","caution"], "emails": [{ "addresses": [ "alertA@example.com" ], "subject": "Alert occurred in %INST%", "body": "%STAT% = %PROD% %NAME% on %HOST%" }, { "addresses": [ "alertB@example.com" ], "subject": "Alert occurred in %INST%", "body": "%STAT% = %PROD% %NAME% on %HOST%" }] }], "triggers": [{ "triggerID": "0", "isActive": "Y", "monitorAlways": "N", "monitoringTime": { "starttime": "05:00", "endtime": "01:00" }, "alertEveryTime": "N", "evaluateAllData": "Y", "evaluatePoR": "N", "condition": { "warning": "%PI_CLPS.CACHE_WRITE_PENDING_RATE% > '60'", "caution": "%PI_CLPS.CACHE_WRITE_PENDING_RATE% > '30'" }, "frequency": { "count": "1/1" } }, { "triggerID": "1", "isActive": "Y", "monitorAlways": "N", "monitoringTime": { "starttime": "05:00", "endtime": "01:00" }, "alertEveryTime": "N", "evaluateAllData": "Y", "evaluatePoR": "N", "condition": { "warning": "%PI_PRCS.PROCESSOR_TYPE% > 'MPB' and %PI_PRCS.PROCESSOR_BUSY_RATE% >= '80'", "caution": "%PI_PRCS.PROCESSOR_TYPE% > 'MPB' and %PI_PRCS.PROCESSOR_BUSY_RATE% >= '40'" }, "frequency": { "count": "1/1" } }, { "triggerID": "2", "isActive": "Y", "monitorAlways": "N", "monitoringTime": { "starttime": "05:00", "endtime": "01:00" }, "alertEveryTime": "N", "evaluateAllData": "Y", "evaluatePoR": "N", "condition": { "warning": "%PI_RGS.BUSY_RATE% >= '50'", "caution": "%PI_RGS.BUSY_RATE% >= '50'" }, "frequency": { "count": "1/1" } }, { "triggerID": "3", "isActive": "Y", "monitorAlways": "N", "monitoringTime": { "starttime": "05:00", "endtime": "01:00" }, "alertEveryTime": "N", "evaluateAllData": "Y", "evaluatePoR": "N", "condition": { "warning": "%PI_RGS.READ_HIT_RATE% <= '25' and %PI_RGS.READ_HIT_IO_COUNT% > '0'", "caution": "%PI_RGS.READ_HIT_RATE% <= '25' and %PI_RGS.READ_HIT_IO_COUNT% > '0'" }, "frequency": { "count": "1/1" } }], "definitions": [{ "targetIDs": [0,1], "noticeIDs": [0], "triggerIDs": [0] }, { "targetIDs": [2,3], "noticeIDs": [0], "triggerIDs": [1] }, { "targetIDs": [2,3], "noticeIDs": [0], "triggerIDs": [2,3] }] }
All Rights Reserved. Copyright© 2014, 2020, Hitachi, Ltd.