Go to main content

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

印刷ビューの終了

更新: 2021 年 8 月
 
 

ワークフロー内からのカスタムアラートの作成および送信

アラートは、ワークフローで定義されたイベントに対応してワークフロー内から送信できます。アラートアクションは、ワークフローで作成するか、BUI または CLI を使用して作成できます。アラートは、ワークフロー内から送信する必要があります。

カスタムアラートは、管理ポリシーまたはコンプライアンスを強制するために使用できます。カスタムアラートは、ワークフローの問題を診断する場合にも役立ちます。

次の表では、カスタムアラートアクションを作成してカスタムアラートを送信するためにユーザーが持っている必要のある承認について説明します。

表 160  カスタムアラートを使用するために必要な承認
タスク
BUI の承認
CLI の承認
説明
カスタムアラートアクションの作成
スコープ: アラート
承認: 構成
スコープ: alert
承認: allow_configure
BUI、CLI、またはワークフローの createalert 関数を使用してカスタムアラートアクションを作成するために必要です。
カスタムアラートの送信
スコープ: アラート
承認: 送信
スコープ: alert
承認: allow_post
ワークフローの postalert 関数を使用するために必要です。
ワークフローの実行
スコープ: ワークフロー
承認: 読み取り
スコープ: workflow
承認: allow_read
ワークフローを実行するために必要です。

ユーザーに承認を付与する手順については、ユーザーの構成を参照してください。

カスタムアラートの作成

カスタムアラートを作成するには、次のいずれかの方法を使用します。

  • 次のドキュメントの説明に従って、アラートアクションの作成時に「カスタム」または custom イベントカテゴリを指定します。

  • スクリプトまたはワークフローで createalert 関数を使用します。スクリプトで createalert を使用するには、カスタムアラート関数の使用を参照してください。このセクションの残り部分では、ワークフローで createalert を使用する方法について説明します。


注 -  createalert が呼び出されるたびに、新しいアラートが異なる UUID で作成されます。createalert を使用するワークフローの実行ごとに同じアラートアクションのコピーを何度も作成するより、使用例 20, 既存のアラートアクション UUID を使用したカスタムアラートの送信の説明に従って、BUI または CLI を使用してカスタムアラートアクションを作成し、そのアラートアクションの UUID を postalert 関数に渡すことをお勧めします。

createalert 関数は、次のパラメータを取得して、作成されたカスタムアラートアクションの UUID を返します。

表 161  createalert 関数のパラメータ
パラメータ
タイプ
説明
actions
オブジェクト
必須。ハンドラ (アラートアクション) と任意の引数のリスト。表 49, アラートアクションタイプの「CLI アクションタイプ」列を参照してください。

注 -  execute_workflow がアクション (handler) として指定されている場合、実行されたワークフローはアラートを送信できません。

severity
文字列
オプション。警告の原因となったイベントの重要度。有効な値は Critical、Minor、または Major です。
description
文字列
必須。アラートの原因となったイベントの説明。
response
文字列
オプション。このイベントの影響を軽減するためにシステムが実行するアクションの説明。
impact
文字列
オプション。このイベントのアプライアンスに対する影響の説明。
recommended_action
文字列
オプション。このイベントの影響を軽減するために管理者が実行するアクションの説明。
使用例 18  ワークフロー内からのカスタムアラートの作成

この例は、UUID custom_alert_uuid を持つカスタムアラートを作成するワークフローを示しています。

var workflow = {
    name:        'createalert',
    description: 'Create a Custom Alert',
    version:     '1.0',
    origin:      'Oracle',
    alert:       false,
    setid:       true,
    execute:     function () {
                     var actions = [{
                         handler: 'email',
                         args: {
                             address: 'admin@example.com',
                             subject: 'Custom Alert Response'
                         }
                     }];
                     var createparams = {
                         description: 'createalert from within a workflow'
                     };
                     var custom_alert_uuid = createalert(actions, createparams);
                 }
};

ワークフローを使用してカスタムアラートを作成すると、BUI および CLI のアラートアクションリストにアラートが表示されます。

ワークフローを使用してカスタムアラートを作成すると、次のサマリーとともに監査ログエントリが作成されます。

Workflow name_of_workflow: created custom alert value_of_custom_alert_uuid

カスタムアラートを BUI または CLI を使用して作成するか、script コマンドでスクリプトを実行して作成すると、次のサマリーとともに監査ログエントリが作成されます。

Created custom alert value_of_custom_alert_uuid

カスタムアラートの送信

postalert 関数を使用して、ワークフローで発生したイベントに対応して、そのワークフロー内からカスタムアラートを送信します。

createalert 関数は script コマンドを使用してスクリプト内から呼び出すことができますが、postalert 関数はワークフロー定義内からのみ呼び出すことができます。

postalert 関数は、第 1 パラメータ以外は createalert 関数が取得するものと同じパラメータを取得します。createalert はハンドラまたはアラートアクションのリストを取得し、postalert は送信されるアラートの UUID を取得します。ほかのパラメータの説明については、表 161, createalert 関数のパラメータを参照してください。

createalert でオプションのパラメータの値 (severityresponseimpact、および action) は、postalert でオプションではありません。postalert 呼び出しでは、これらの値は次の規則に従って決定されます。

  • オプションパラメータの値が createalert に指定されているが、その UUID の postalert 呼び出しには指定されていない場合、postalert 呼び出しは、対応する createalert 呼び出しからそれらのパラメータ値を継承します。

  • オプションパラメータの値が createalert に指定されていないが、その UUID の postalert 呼び出しには指定されている場合、postalert 呼び出しは、postalert 呼び出しに指定された値を使用します。

  • オプションパラメータの値が createalert と対応する postalert の両方に指定されている場合、各呼び出しはその呼び出しに指定されたパラメータ値を使用します。

  • オプションパラメータの値が createalert にも対応する postalert にも指定されていない場合、エラーメッセージによって postalert 呼び出しに値を指定するよう指示されます。

postalert 関数は、送信されるカスタムアラートの UUID を返します。

使用例 19  ワークフロー内からのカスタムアラートの作成および送信

この例では、使用例 18, ワークフロー内からのカスタムアラートの作成で作成したアラートを送信します。postalert 呼び出しは、ワークフローで発生したイベントに対応します。この例では、postalert 呼び出しの前に発生したイベントを定義するコードは省略されています。

var workflow = {
    name:        'createalert and postalert',
    description: 'Create and Post a Custom Alert',
    version:     '1.0',
    origin:      'Oracle',
    alert:       false,
    setid:       true,
    execute:     function () {
                     var actions = [{
                         'handler': 'resume_dataset',
                         'args': {
                             'dataset': 'dataset_to_resume'
                         }
                     }];
                     var createparams = {
                         description: 'createalert and postalert from within a workflow'
                     };
                     var postparams = {
                         severity: 'Minor',
                         description: 'postalert from within a workflow',
                         response: 'The alert action resumes dataset dataset_to_resume',
                         impact: 'What happened to the appliance',
                         recommended_action: 'What the administrator should do'
                     };
                     var custom_alert_uuid = createalert(actions, createparams);
                     var posted_alert_uuid = postalert(custom_alert_uuid, postparams);
                 }
};

postalert 関数を呼び出すワークフローを実行すると、次のサマリーとともにアラートログエントリが作成されます。

Custom: name_of_workflow
使用例 20  既存のアラートアクション UUID を使用したカスタムアラートの送信

同じアラートアクションのコピーを増やすより、postalert 関数の第 1 引数として既存のカスタムアラートの UUID を使用することをお勧めします。

  1. BUI、CLI、スクリプト、ワークフロー、または RESTful API を使用して、カスタムアラートアクションを作成します。

  2. BUI、CLI、または監査ログを使用して、カスタムアラートアクションの UUID を取得します。

  3. 取得した UUID を postalert 関数の第 1 引数として使用します。

var workflow = {
    name:        'postalert',
    description: 'Post a Custom Alert using existing uuid',
    version:     '1.0',
    origin:      'Oracle',
    alert:       false,
    setid:       true,
    execute:     function () {
                     var postparams = {
                         severity: 'Minor',
                         description: 'postalert from within a workflow',
                         response: 'What the system will do',
                         impact: 'What happened to the appliance',
                         recommended_action: 'What the administrator should do'
                     };
                     var posted_alert_uuid = postalert('uuid_of_existing_custom_alert', postparams);
                 }
};