Logic Apps を使用してアラート通知をカスタマイズする

この記事では、ロジック アプリを作成し、Azure Monitor アラートと統合する方法について説明します。

Azure Logic Apps を使用すると、統合のためにワークフローをビルドおよびカスタマイズできます。 Logic Apps を使用してアラート通知をカスタマイズします。 次のようにすることができます。

  • 独自のメールの件名と本文の形式を使用して、アラート メールをカスタマイズします。
  • 影響を受けるリソースのタグを検索するか、ログ クエリ検索結果をフェッチして、アラート メタデータをカスタマイズします。 アラート データを含む検索結果行にアクセスする方法については、以下を参照してください。
  • Outlook、Microsoft Teams、Slack、PagerDuty などの既存のコネクタを使用して、外部サービスと統合します。 独自のサービス用にロジック アプリを構成することもできます。

この例では、一般的なアラート スキーマを使用してアラートから詳細を送信するロジック アプリを作成します。

ロジック アプリを作成します

  1. Azure portal で、新しいロジック アプリを作成します。 ページの上部にある検索バーに、「ロジック アプリ」と入力します。

  2. [ロジック アプリ] ページで、[追加] を選択します。

  3. ロジック アプリ用のサブスクリプションリソース グループを選択します。

  4. [ロジック アプリ名] を設定します。 [プランの種類][従量課金] を選択します。

  5. [確認と作成]>[作成] の順に選択します。

  6. デプロイが完了したら、[リソースに移動] を選びます。

    [ロジック アプリの作成] ページを示すスクリーンショット。

  7. [Logic Apps デザイナー] ページで、[HTTP 要求の受信時] を選択します。

    [Logic Apps デザイナー] 開始ページを示すスクリーンショット。

  8. 次の JSON から共通アラート スキーマを [要求本文の JSON スキーマ] フィールドに貼り付けます。

     {
        "type": "object",
        "properties": {
            "schemaId": {
                "type": "string"
            },
            "data": {
                "type": "object",
                "properties": {
                    "essentials": {
                        "type": "object",
                        "properties": {
                            "alertId": {
                                "type": "string"
                            },
                            "alertRule": {
                                "type": "string"
                            },
                            "severity": {
                                "type": "string"
                            },
                            "signalType": {
                                "type": "string"
                            },
                            "monitorCondition": {
                                "type": "string"
                            },
                            "monitoringService": {
                                "type": "string"
                            },
                            "alertTargetIDs": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "originAlertId": {
                                "type": "string"
                            },
                            "firedDateTime": {
                                "type": "string"
                            },
                            "resolvedDateTime": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "essentialsVersion": {
                                "type": "string"
                            },
                            "alertContextVersion": {
                                "type": "string"
                            }
                        }
                    },
                    "alertContext": {
                        "type": "object",
                        "properties": {}
                    }
                }
            }
        }
    }
    

    [HTTP 要求の受信時] ペインの [パラメーター] タブを示すスクリーンショット。

  9. (省略可能)。 アラート通知をカスタマイズするには、アラートが発生した、影響を受けているリソース (リソースのタグなど) に関する情報を抽出します。 その後、これらのリソース タグをアラート ペイロードに含め、通知を送信するための論理式で情報を使用できます。 この手順を実行するには、次のことを行います。

    • 影響を受けるリソース ID の変数を作成します。
    • さまざまな要素 (サブスクリプション、リソース グループなど) を使用できるように、リソース ID を 配列に分割します。
    • Azure Resource Manager コネクタを使用して、リソースのメタデータを読み取ります。
    • リソースのタグをフェッチします。このタグは、ロジック アプリの後続の手順で使用できます。
    1. [+]>[アクションの追加] の順に選んで、新しいステップを挿入します。

    2. [検索] フィールドで検索し、[変数の初期化] を選択します。

    3. [名前] フィールドに、変数の名前 (AffectedResources など) を入力します。

    4. [種類] フィールドで、[配列] を選択します。

    5. [値] フィールドで、[動的コンテンツの追加] を選択します。 [式] タブを選択し、文字列 split(triggerBody()?['data']?['essentials']?['alertTargetIDs'][0], '/') を入力します。

      [変数を初期化する] ペインの [パラメーター] タブを示すスクリーンショット。

    6. [+]>[アクションの追加] の順に選んで、別のステップを挿入します。

    7. [検索] フィールドで、Azure Resource Manager を検索して選択し、[リソースの読み取り] を選択します。

    8. [リソースの読み取り] アクションのフィールドに、AffectedResource 変数の配列値を設定します。 各フィールドで、フィールド内を選択し、下にスクロールしてカスタム値を入力します[動的コンテンツの追加] を選択し、次に [式] タブを選択します。次の表の文字列を入力します。

      フィールド 文字列値
      サブスクリプション variables('AffectedResource')[2]
      リソース グループ variables('AffectedResource')[4]
      リソース プロバイダー variables('AffectedResource')[6]
      短いリソース ID concat(variables('AffectedResource')[7], '/', variables('AffectedResource')[8])
      クライアント API バージョン リソースの種類の API バージョン

      リソースの種類の API バージョンを見つけるには、リソースの概要ページの右上にある [JSON ビュー] リンクを選びます。 [リソース JSON] ページが開き、ページの上部に [ResourceID][API バージョン] が表示されます。

    動的コンテンツには、影響を受けたリソースのタグが含まれるようになりました。 これらのタグは、次の手順で説明するように通知を構成するときに使用できます。

  10. メールを送信するか、Teams メッセージを投稿します。

  11. [+]>[アクションの追加] の順に選んで、新しいステップを挿入します。

    [HTTP 要求の受信時] のパラメーターを示すスクリーンショット。

  1. 検索フィールドで Outlook を検索します。

  2. [Office 365 Outlook] を選択します。

    Logic Apps デザイナーの [アクションの追加] ページを示すスクリーンショット。Office 365 Outlook が選択されています。

  3. [アクション] の一覧で、[メールの送信 (V2)] を選択します。

  4. 接続の作成を求めるメッセージが表示されたら、Office 365 にサインインします。

  5. 静的テキストを入力し、[動的コンテンツ] 一覧からフィールドを選択してアラート ペイロードから取得したコンテンツを含めることで、メールの本文を作成します。 次に例を示します。

    • アラートに監視条件あり:[動的コンテンツ] 一覧から [monitorCondition] を選択します。
    • 発生日:[動的コンテンツ] 一覧から [firedDateTime] を選択します。
    • 影響を受けるリソース:[動的コンテンツ] 一覧から [alterTargetIDs] を選択します。
  6. 静的テキストを入力し、[動的コンテンツ] 一覧からフィールドを選択してアラート ペイロードから取得したコンテンツを含めることで、[件名] フィールドに件名のテキストを作成します。 次に例を示します。

    • アラート:[動的コンテンツ] 一覧から [alertRule] を選択します。
    • 重大度:[動的コンテンツ] 一覧から [severity] を選択します。
    • 条件あり:[動的コンテンツ] 一覧から [monitorCondition] を選択します。
  7. [宛先] フィールドにアラートの送信先のメール アドレスを入力します。

  8. [保存] を選択します。

    [メールの送信] ペインの [パラメーター] タブを示すスクリーンショット。

指定したアドレスにメールを送信するロジック アプリを作成し、それをトリガーしたアラートの詳細を指定しました。

次の手順では、ロジック アプリをトリガーするアクション グループを作成します。

アクション グループを作成する

ロジック アプリをトリガーするには、アクション グループを作成します。 次に、そのアクション グループを使用するアラートを作成します。

  1. [Azure Monitor] ページに移動し、左側のペインから [アラート] を選択します。

  2. [アクション グループ]>[作成] を選択します。

  3. [サブスクリプション][リソース グループ][リージョン] の値を選択します。

  4. [アクション グループ名][表示名] に名前を入力します。

  5. [Actions](アクション) タブを選択します。

    [アクション グループの作成] ページの [アクション] タブを示すスクリーンショット。

  6. [アクションの種類][アクション] タブで、[ロジック アプリ] を選択します。

  7. [ロジック アプリ] セクションで、ドロップダウンからロジック アプリを選択します。

  8. [共通アラート スキーマを有効にする][はい] を設定します。 [いいえ] を選択すると、使用するアラート スキーマがアラートの種類によって決まります。 アラート スキーマの詳細については、コンテキスト固有のアラート スキーマに関する記事を参照してください。

  9. [OK] を選択します。

  10. [名前] フィールドに名前を入力します。

  11. [確認と作成]>[作成] の順に選択します。

    [アクション グループの作成] ページの [アクション] タブと [ロジック アプリ] ペインを示すスクリーンショット。

アクション グループをテストする

  1. アクション グループを選択します。

  2. [ロジック アプリ] セクションで、[テスト アクション グループ (プレビュー)] を選択します。

    [テスト アクション グループ] オプションが表示されたアクション グループの詳細ページを示すスクリーンショット。

  3. [サンプルの種類を選択] ドロップダウンからサンプル アラートの種類を選択します。

  4. [Test] を選択します。

    アクション グループの詳細のテスト ページを示すスクリーンショット.

    指定したアカウントに次のメールが送信されます。

    テスト ページによって送信されたサンプル メールを示すスクリーンショット。.

アクション グループを使用してルールを作成する

  1. いずれかのリソースのルールを作成します。

  2. ルールの [アクション] タブで、[アクション グループの選択] を選択します。

  3. 一覧からアクション グループを選択します。

  4. [選択] を選択します。

  5. ルールの作成を完了します。

    [アラート ルールの作成] ペインの [アクション] タブと [アクション グループの選択] ペインを示すスクリーンショット。

次のステップ