Go to main content

Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

警告アクションでのワークフローの使用

ワークフローを警告アクションとして実行できます。警告アクションとして実行されるワークフローは、アラートアクションの追加に説明されているように、「ワークフローの実行」警告アクションに対して選択したワークフローであるか (BUI)、execute_workflow ハンドラの workflow プロパティーの値です (CLI)。

ワークフローを警告アクションとして実行できるようにするには、workflow グローバル変数で alert: true メンバーを指定する必要があります。

デフォルトでは、ワークフローは、そのワークフローを実行しているユーザーとして実行されます。ただし、警告アクションとして実行されるワークフローは、デフォルトでそのワークフローを作成したユーザーとして実行されます。警告アクションとして実行できるようにするには、ワークフローの workflow グローバル変数で setid: true メンバーを指定する必要があります。

警告アクションには、次のメンバーを持つ 1 つのオブジェクトパラメータがあります。

表 158  警告の実行コンテキストの必須メンバー
必須メンバー
タイプ
説明
class
文字列
警告のクラス。
code
文字列
警告のコード。
items
オブジェクト
警告を記述したオブジェクト。
timestamp
日付
警告の時間。

parameters オブジェクトの items メンバーには、次のメンバーがあります。

表 159  items メンバーの必須メンバー
必須メンバー
タイプ
説明
url
文字列
警告を記述した Web ページの URL
action
文字列
警告に対応してユーザーが実行するべきアクション。
impact
文字列
警告の原因となったイベントの影響。
description
文字列
警告を記述した、人間が読める形式の文字列。
severity
文字列
警告の原因となったイベントの重要度。
使用例 17  リブートの失敗を監査するワークフロー

警告アクションとして実行されるワークフローは、audit 関数を使用して監査ログエントリを生成できます。たとえば、デバッグ情報は監査ログに書き込むようにしてください。

次の例で、複数回使用されている audit 関数を参照してください。このワークフローの特徴は次のとおりです。

  • このワークフローの実行を指定する警告 params.uuid に対応して実行されます。

  • 両方のシステムがクラスタ化状態の場合のみ、システムをリブートします。

  • リブートの失敗を監査します。

var workflow = {
       name: 'Failover',
       description: 'Fail the node over to its clustered peer',
       alert: true,
       setid: true,
       execute: function (params) {
               var uuid = params.uuid;
               var clustered = 'AKCS_CLUSTERED';

               audit('attempting failover in response to alert ' + uuid);

               try {
                       run('configuration cluster');
               } catch (err) {
                       audit('could not get clustered state; aborting');
                       return;
               }

               if ((state = get('state')) != clustered) {
                       audit('state is ' + state + '; aborting');
                       return;
               }

               if ((state = get('peer_state')) != clustered) {
                       audit('peer state is ' + state + '; aborting');
                       return;
               }

               run('cd /');
               run('confirm maintenance system reboot');
       }
};