Logic Apps を使用してアラート通知をカスタマイズする
この記事では、ロジック アプリを作成し、Azure Monitor アラートと統合する方法について説明します。
Azure Logic Apps を使用すると、統合のためにワークフローをビルドおよびカスタマイズできます。 Logic Apps を使用してアラート通知をカスタマイズします。 次のようにすることができます。
- 独自のメールの件名と本文の形式を使用して、アラート メールをカスタマイズします。
- 影響を受けるリソースのタグを検索するか、ログ クエリ検索結果をフェッチして、アラート メタデータをカスタマイズします。 アラート データを含む検索結果行にアクセスする方法については、以下を参照してください。
- Outlook、Microsoft Teams、Slack、PagerDuty などの既存のコネクタを使用して、外部サービスと統合します。 独自のサービス用にロジック アプリを構成することもできます。
この例では、一般的なアラート スキーマを使用してアラートから詳細を送信するロジック アプリを作成します。
ロジック アプリを作成します
Azure portal で、新しいロジック アプリを作成します。 ページの上部にある検索バーに、「ロジック アプリ」と入力します。
[ロジック アプリ] ページで、[追加] を選択します。
ロジック アプリ用のサブスクリプションとリソース グループを選択します。
[ロジック アプリ名] を設定します。 [プランの種類] で [従量課金] を選択します。
[確認と作成]>[作成] の順に選択します。
デプロイが完了したら、[リソースに移動] を選びます。
[Logic Apps デザイナー] ページで、[HTTP 要求の受信時] を選択します。
次の 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": {} } } } } }
(省略可能)。 アラート通知をカスタマイズするには、アラートが発生した、影響を受けているリソース (リソースのタグなど) に関する情報を抽出します。 その後、これらのリソース タグをアラート ペイロードに含め、通知を送信するための論理式で情報を使用できます。 この手順を実行するには、次のことを行います。
- 影響を受けるリソース ID の変数を作成します。
- さまざまな要素 (サブスクリプション、リソース グループなど) を使用できるように、リソース ID を 配列に分割します。
- Azure Resource Manager コネクタを使用して、リソースのメタデータを読み取ります。
- リソースのタグをフェッチします。このタグは、ロジック アプリの後続の手順で使用できます。
[+]>[アクションの追加] の順に選んで、新しいステップを挿入します。
[検索] フィールドで検索し、[変数の初期化] を選択します。
[名前] フィールドに、変数の名前 (AffectedResources など) を入力します。
[種類] フィールドで、[配列] を選択します。
[値] フィールドで、[動的コンテンツの追加] を選択します。 [式] タブを選択し、文字列
split(triggerBody()?['data']?['essentials']?['alertTargetIDs'][0], '/')
を入力します。[+]>[アクションの追加] の順に選んで、別のステップを挿入します。
[検索] フィールドで、Azure Resource Manager を検索して選択し、[リソースの読み取り] を選択します。
[リソースの読み取り] アクションのフィールドに、
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 バージョン] が表示されます。
動的コンテンツには、影響を受けたリソースのタグが含まれるようになりました。 これらのタグは、次の手順で説明するように通知を構成するときに使用できます。
メールを送信するか、Teams メッセージを投稿します。
[+]>[アクションの追加] の順に選んで、新しいステップを挿入します。
検索フィールドで Outlook を検索します。
[Office 365 Outlook] を選択します。
[アクション] の一覧で、[メールの送信 (V2)] を選択します。
接続の作成を求めるメッセージが表示されたら、Office 365 にサインインします。
静的テキストを入力し、[動的コンテンツ] 一覧からフィールドを選択してアラート ペイロードから取得したコンテンツを含めることで、メールの本文を作成します。 次に例を示します。
- アラートに監視条件あり:[動的コンテンツ] 一覧から [monitorCondition] を選択します。
- 発生日:[動的コンテンツ] 一覧から [firedDateTime] を選択します。
- 影響を受けるリソース:[動的コンテンツ] 一覧から [alterTargetIDs] を選択します。
静的テキストを入力し、[動的コンテンツ] 一覧からフィールドを選択してアラート ペイロードから取得したコンテンツを含めることで、[件名] フィールドに件名のテキストを作成します。 次に例を示します。
- アラート:[動的コンテンツ] 一覧から [alertRule] を選択します。
- 重大度:[動的コンテンツ] 一覧から [severity] を選択します。
- 条件あり:[動的コンテンツ] 一覧から [monitorCondition] を選択します。
[宛先] フィールドにアラートの送信先のメール アドレスを入力します。
[保存] を選択します。
指定したアドレスにメールを送信するロジック アプリを作成し、それをトリガーしたアラートの詳細を指定しました。
次の手順では、ロジック アプリをトリガーするアクション グループを作成します。
アクション グループを作成する
ロジック アプリをトリガーするには、アクション グループを作成します。 次に、そのアクション グループを使用するアラートを作成します。
[Azure Monitor] ページに移動し、左側のペインから [アラート] を選択します。
[アクション グループ]>[作成] を選択します。
[サブスクリプション]、[リソース グループ]、[リージョン] の値を選択します。
[アクション グループ名] と [表示名] に名前を入力します。
[Actions](アクション) タブを選択します。
[アクションの種類] の [アクション] タブで、[ロジック アプリ] を選択します。
[ロジック アプリ] セクションで、ドロップダウンからロジック アプリを選択します。
[共通アラート スキーマを有効にする] に [はい] を設定します。 [いいえ] を選択すると、使用するアラート スキーマがアラートの種類によって決まります。 アラート スキーマの詳細については、コンテキスト固有のアラート スキーマに関する記事を参照してください。
[OK] を選択します。
[名前] フィールドに名前を入力します。
[確認と作成]>[作成] の順に選択します。
アクション グループをテストする
アクション グループを選択します。
[ロジック アプリ] セクションで、[テスト アクション グループ (プレビュー)] を選択します。
[サンプルの種類を選択] ドロップダウンからサンプル アラートの種類を選択します。
[Test] を選択します。
指定したアカウントに次のメールが送信されます。
アクション グループを使用してルールを作成する
いずれかのリソースのルールを作成します。
ルールの [アクション] タブで、[アクション グループの選択] を選択します。
一覧からアクション グループを選択します。
[選択] を選択します。
ルールの作成を完了します。