Azure Monitorのアラート通知が届かない、WebhookやAzure Functionsが動かない、同じ通知が何度も来る。こうした問題は、原因を「アラートが発火していない」のか「発火後の通知・アクションが失敗している」のかに分けると、かなり早く切り分けできます。
Microsoft Learnの「Troubleshooting Azure Monitor alerts and notifications – Azure Monitor」は、新機能の追加や強制移行の告知というより、Azure Monitorアラートと通知で起きやすい障害パターンを整理したトラブルシューティング記事です。特に確認すべきポイントは、アクション グループのテスト、アラート処理ルールによる抑制、メール・SMSのレート制限、WebhookのIP許可リスト、共通アラート スキーマ、そしてアラート ルール操作に関わるGeneva Alert RPです。公式英語版は確認時点で「Last updated on 2026-05-14」と表示され、日本語版は更新表示に差があるため、最新差分を確認する場合は英語版とGitHub履歴を併用するのが安全です。(Microsoft Learn)
Azure Monitorアラート通知の更新は「運用時の切り分け精度」が重要
今回の公式情報で押さえるべき本質は、Azure Monitorのアラート通知まわりで発生する典型的な問題を、症状ごとに確認できるようにした点です。公式記事では、メール・SMS・音声・プッシュ通知が届かない、WebhookやAzure Functionsなどの期待したアクションが起動しない、通知が重複する、通知内容が想定と違う、アラート処理ルールが動作しない、アラート ルールの作成・更新・削除でエラーになる、といったシナリオが扱われています。(Microsoft Learn)
GitHubの履歴では、2026年5月3日にアラート ルール操作のトラブルシューティングとしてGeneva Alert RPの確認項目が追加され、2026年5月14日のコミットでは「予期しない通知内容」周辺の複数項目が見つけやすい見出し構造に整理されています。つまり、すぐに全環境で設定変更が必要というより、既存の監視運用手順や障害対応Runbookに反映すべき更新と見るのが現実的です。(GitHub)
| 更新・整理された観点 | 実務上の意味 | まず確認すべきこと |
|---|---|---|
| 通知未達の切り分け | Azure Monitor側だけでなく、メールサーバー、端末、配信停止、レート制限も原因になる | アクション グループのテスト、受信側の迷惑メール・検疫設定、履歴タブ |
| Webhookや関数の未実行 | アラートは発火していても、ネットワーク制限やエンドポイント障害でアクションが失敗する | 送信元IP許可、Webhookログ、HTTP応答、スキーマ形式 |
| 通知内容の差異 | 共通アラート スキーマと従来形式の違い、ログ検索アラートのAPIバージョン差が影響する | アクションごとのスキーマ設定、受信ペイロードの実測 |
| アラート処理ルール | 抑制・追加アクションのルールが期待どおり効かないケースがある | ルールの有効状態、スコープ、フィルター、発生済みアラートの履歴 |
| アラート ルール操作エラー | 権限不足だけでなく、Microsoft Entraテナント側のプラットフォーム コンポーネントも影響する | Monitoring Contributor権限、Geneva Alert RPの存在・有効状態 |
影響を受けるのはAzure管理者だけではない
Azure Monitorのアラート通知は、監視設定を作る管理者だけで完結しません。メール通知ならメールセキュリティ管理者、Webhookならアプリ開発者、Azure Functionsなら関数やストレージを管理する担当者、アラート ルールの作成・更新エラーならMicrosoft Entra管理者まで関わります。
| 対象者 | 影響を受ける領域 | 確認すべき設定 |
|---|---|---|
| Azure管理者・SRE | アラート ルール、アクション グループ、アラート処理ルール | 発火履歴、アクション グループ、抑制ルール、スコープ |
| アプリ開発者 | Webhook、Azure Functions、Logic Apps、受信側API | JSONスキーマ、HTTPステータス、再試行、ログ出力 |
| メール・セキュリティ管理者 | メール通知、配布リスト、検疫、迷惑メール対策 | 許可送信元、外部メール受信、メールルール |
| Microsoft Entra管理者 | アラート ルールのCRUD操作 | Geneva Alert RP、エンタープライズ アプリケーション、権限 |
| 運用担当者 | 障害対応フロー、通知先、エスカレーション | 通知先の重複、配信停止、電話番号、Runbook |
特に見落としやすいのは、アラートがAzure portal上では発火しているのに、通知やアクションだけが失敗しているケースです。この場合、メトリック条件やログ検索クエリを何度も修正するより、アクション グループと通知経路を先に調べるほうが早く解決できます。
最初に見るべきはアクション グループのテストと履歴タブ
公式ドキュメントでは、アラートが意図どおり発火しているのに通知が期待どおり動かない場合、まずアクション グループをテストするよう案内されています。ここを飛ばすと、アラート条件、通知先、受信側システムのどこが悪いのか分からないまま調査が長引きます。(Microsoft Learn)
| 切り分け順 | 確認内容 | 判断基準 |
|---|---|---|
| 1 | Azure portalでアラートが発火しているか | 発火していなければ、通知ではなくアラート条件・クエリ・メトリック設定を調べる |
| 2 | アクション グループのテストが成功するか | 失敗する場合、通知先やアクション設定に問題がある |
| 3 | 発火済みアラートの履歴タブを見る | アラート処理ルールで抑制されたか、どのアクション グループが実行されたか確認する |
| 4 | 受信側のログを見る | メールサーバー、Webhook、Logic Apps、Azure Functionsに到達しているか確認する |
| 5 | ペイロード形式を確認する | 共通アラート スキーマと従来形式の違いで処理に失敗していないか確認する |
障害対応では、まず「Azure Monitorが通知を送っていない」のか「送ったが受信側で落ちている」のかを分けることが重要です。WebhookやFunctionsの連携では、受信時にリクエスト本文、ヘッダー、HTTPステータスをログに残しておくと、調査の速度が大きく変わります。
メール通知が届かない場合の確認ポイント
メール通知の未達では、Azure Monitor側の設定ミスだけでなく、メールセキュリティ製品や配布リストの仕様が原因になることがあります。まず、発火済みアラートの履歴タブでアラート処理ルールによりアクション グループが抑制されていないか確認します。
次に、メール送信元を許可します。公式情報では、Azure Monitorのアラート通知メール送信元として [email protected]、[email protected]、[email protected] の許可が案内されています。社内の配布リストは外部送信元を拒否することがあるため、まず個人の業務メールアドレスをアクション グループに追加して届くか試すと、メール基盤側の問題かどうかを切り分けやすくなります。(Microsoft Learn)
「Email Azure Resource Manager Role」を使っている場合は、ロール割り当てのスコープにも注意が必要です。このアクションはサブスクリプション スコープのユーザーまたはグループのロール割り当てを参照するため、リソース グループや個別リソースのロールだけでは期待どおり通知されない可能性があります。(Microsoft Learn)
また、メール通知にはレート制限があります。公式情報では、1つのメールアドレスあたり1時間に100通を超えると、それ以上のメール通知は送信されないと説明されています。大量通知が必要な運用では、メールだけに頼らず、Webhook、Logic Apps、Azure Functions、Automation Runbookなどのアクションを組み合わせる設計にしたほうが安定します。(Microsoft Learn)
SMS・音声通話・プッシュ通知が届かない場合の確認ポイント
SMSや音声通知では、国番号や電話番号の誤り、端末側のブロック、配信停止操作、レート制限がよくある原因です。公式情報では、SMSと音声通話は電話番号ごとに5分あたり1通知に制限され、このしきい値を超える通知は破棄されると説明されています。(Microsoft Learn)
SMSでは、利用者が過去に STOP や DISABLE action_group_short_name に相当する応答で配信停止していないかも確認します。再登録はSMSコマンドで行うか、アクション グループからSMSアクションを削除して再追加します。障害対応の一次通知にSMSを使う場合は、同じ電話番号に短時間で多数の通知が集中しないよう、重大度ごとに通知先を分ける設計が有効です。
プッシュ通知では、Azure mobile app側だけでなく、スマートフォンの通知設定、アプリ単位の通知ブロック、OS側の集中モードなども確認対象です。重要アラートをプッシュだけに依存すると、端末設定ひとつで見逃しが起きるため、メールやWebhookとの併用を前提にしましょう。
Webhook・Azure Functions・Logic Appsが起動しない場合の確認ポイント
WebhookやAzure Functions、Logic Appsが動かない場合も、まず発火済みアラートの履歴タブを確認します。アラート処理ルールによってアクションが抑制されていれば、Webhook側のコードを調べても原因は見つかりません。
Webhookでは、ネットワーク制限が大きな落とし穴です。公式情報では、Webhookはパブリック ネットワークとファイアウォールのみをサポートし、Webhookが呼び出される送信元IPを許可リストに追加する必要があるとされています。受信側でIP制限、WAF、API Gateway、認証プロキシを使っている場合は、Azure Monitorからの到達が拒否されていないか確認します。(Microsoft Learn)
Webhookの再試行仕様も運用上重要です。最初の呼び出しが失敗した場合、複数回の再試行が行われますが、再試行後も失敗するとアクション グループは15分間エンドポイントを呼び出しません。408、429、503、504などのステータスコードや一部例外は再試行対象です。受信側が一時的に過負荷になった場合、Azure Monitorの通知がすぐに復旧しないように見えることがあるため、受信側ログとアラート履歴を合わせて確認しましょう。(Microsoft Learn)
SlackやMicrosoft Teamsへ直接Webhook送信している場合も注意が必要です。これらのエンドポイントは期待するJSON形式が決まっているため、Azure Monitorのペイロードをそのまま送っても期待どおり表示されないことがあります。実務では、Logic AppsでAzure Monitorのペイロードを受け取り、TeamsやSlack向けの形式に変換して送る構成のほうが保守しやすくなります。
Azure Functionsをアクションに使う場合は、HTTP POSTを受け付けること、関数のエンドポイントやアクセスキーが有効であること、必要なストレージ アカウントへアクセスできることも確認します。アクション グループに保存されたFunctionsのアクセスキーを変更した場合は、アクションの再作成が必要になるケースがあるため、キー ローテーション手順に監視設定の再検証を含めておくべきです。(Microsoft Learn)
通知が重複する場合は「同じアラートか」を先に確認する
通知が複数回来た場合、まず本当に同じアラートか確認します。似た条件のアラートが同じ時間帯に複数発火しているだけのケースがあります。たとえば、アクティビティ ログ アラートでイベントの開始と終了の両方を拾っていたり、ログ検索アラートで複数ディメンションの組み合わせが評価されていたりすると、同じ通知に見えることがあります。公式情報でも、タイムスタンプ、アラートID、関連付けID、発火済みアラート一覧の確認が案内されています。(Microsoft Learn)
次に、同じメールアドレスやWebhook URLが複数のアクション グループに含まれていないか確認します。Azure Monitorでは、アラートが発火すると各アクション グループが個別に処理されます。そのため、同じ通知先が複数のアクション グループに登録されていると、アクション グループごとに通知が実行されます。通知の重複を防ぐには、重大度別・システム別のアクション グループ設計を見直し、共通の一次通知先を必要以上に重複登録しないことが大切です。(Microsoft Learn)
通知内容が想定と違う場合はスキーマとAPIバージョンを見る
通知内容が欠けている、JSONの構造が違う、過去は含まれていた検索結果がない。このような場合は、通知チャネルの不具合ではなく、ペイロード仕様の違いである可能性があります。
Azure Monitorのアクションには、従来形式と共通アラート スキーマがあります。アクション グループ内の各アクションで形式が異なる場合があるため、WebhookやFunctionsのコードが想定している形式と、実際のアクション設定が一致しているか確認します。開発時はサンプルだけで判断せず、実際のアクション グループからテスト通知を送り、受信したJSONを保存しておくと安全です。(Microsoft Learn)
ログ検索アラートでは、APIバージョンの違いも重要です。公式情報では、ログ検索アラートAPIバージョン 2021-08-01 以降、アラート通知ペイロードから検索結果が削除され、検索結果は古い 2018-04-16 APIバージョンで作成されたアラート ルールでのみ利用できると説明されています。Azure portalで新規作成するルールは新しいバージョンが既定になるため、古い通知本文の検索結果に依存した運用や自動処理は見直しが必要です。(Microsoft Learn)
そのほか、解決済みのステートフル ログ検索アラートで MetricValue が null になること、クエリが行を返さない場合にディメンション一覧やタイトルのディメンション名が空になること、アクティビティ ログ自体に存在しないフィールドはアラートにも含まれないことも、仕様として理解しておくべき点です。また、カスタム プロパティはWebhook、Azure Functions、Azure Logic Appsなどのペイロードには渡されますが、メール、SMS、プッシュ通知には含まれません。(Microsoft Learn)
アラート処理ルールが効かない場合はスコープと対象リソースを分けて見る
アラート処理ルールは、メンテナンス中に通知を抑制したり、特定条件で追加のアクション グループを付与したりする便利な機能です。一方で、設定したつもりのルールが効かない場合は、まずルールが有効か確認します。Azure portalでは既定で有効なルールだけが表示されることがあるため、フィルターを変更して無効なルールも確認しましょう。(Microsoft Learn)
重要なのは、スコープとターゲット リソースの違いです。スコープはアラート ルールや処理ルールが適用される範囲で、ターゲット リソースは実際にアラートを発生させた個別リソースです。たとえばログ検索アラートでスコープがLog Analyticsワークスペースになっていても、_ResourceId 列を使うとターゲット リソースが別リソースとして扱われ、意図した処理ルールと一致しないことがあります。(Microsoft Learn)
また、Service Healthアラートはアラート処理ルールの影響を受けません。保守時間中の抑制ルールを作ったつもりでも、Service Healthアラートには適用されないため、運用手順で別扱いにする必要があります。Service Healthアラートをアクション グループで扱う場合は、アクション グループのリージョンをGlobalにする必要がある点も併せて確認しましょう。(Microsoft Learn)
アラート ルールの作成・更新・削除エラーで見るべき設定
ログ検索アラート ルールの作成時にエラーになる場合、クエリやディメンション、アクション グループ、説明文を含むプロパティ全体のサイズが大きすぎる可能性があります。公式情報では、ログ検索アラート ルールのプロパティ内の合計データサイズが64KB、または32K文字を超えると失敗する可能性があるとされています。長いKQL、過剰なディメンション、長すぎる説明文を使っている場合は、ルールを分割するか、説明やクエリを整理します。(Microsoft Learn)
任意の種類のアラート ルールで作成・更新・削除に失敗する場合は、権限だけでなくGeneva Alert RPも確認対象です。公式情報では、Azure Monitorはアラート ルール リソースのCRUD操作にMicrosoft所有のファースト パーティ アプリケーションであるGeneva Alert RPを利用し、このエンタープライズ アプリケーションが無効化または削除されていると、アラート ルールを想定どおり作成・更新・管理できない可能性があると説明されています。(Microsoft Learn)
アラート処理ルールの作成・更新・削除エラーでは、Monitoring Contributor組み込みロール、またはアラート処理ルールとアラートに関する個別権限が必要です。ポータルで操作しているユーザーに十分な権限があるか、PowerShellやIaCで指定しているパラメーターが公式仕様に合っているかを確認しましょう。(Microsoft Learn)
移行・展開時に失敗しやすいポイント
Azure Monitorアラート通知の設定を新規展開・移行・標準化する場合は、次の点を事前に確認しておくとトラブルを減らせます。
| チェック項目 | 失敗しやすいパターン | 推奨対応 |
|---|---|---|
| アクション グループのテスト | 本番障害時に初めて通知経路を使う | 本番適用前にメール、Webhook、Functions、Logic Appsをテストする |
| 通知先メール | 配布リストが外部送信元を拒否する | 個人メールで疎通確認後、配布リスト側の許可設定を行う |
| 高頻度通知 | メールやSMSに大量通知を集約する | 重大通知は人へ、詳細イベントはWebhookやEvent Hubsなどへ分離する |
| Webhook受信側 | IP制限、WAF、429応答で通知を落とす | Azure Monitorの送信元IP許可と受信ログを整備する |
| スキーマ | 従来形式と共通アラート スキーマが混在する | アクションごとにスキーマ設定を棚卸し、受信コードの期待値を統一する |
| ログ検索アラート | 古い通知ペイロードの検索結果に依存する | APIバージョン差を確認し、必要なら通知後にLog Analyticsを再照会する設計に変える |
| Functions連携 | 関数キーのローテーション後にアクションが動かない | キー変更後にアクション グループの再設定とテストを行う |
| Service Health通知 | アラート処理ルールで抑制できると思い込む | Service Healthは別ルールとして扱い、アクション グループのGlobal設定も確認する |
| Entra側の変更 | エンタープライズ アプリケーションを整理してGeneva Alert RPを無効化する | テナント管理者に存在・有効状態を確認してもらう |
運用設計では、通知チャネルごとに役割を分けることが重要です。メールやSMSは人間が判断するための通知、WebhookやEvent Hubsはシステム連携、Logic Appsは整形や分岐、Automation Runbookは復旧処理というように分担すると、レート制限やスキーマ差の影響を受けにくくなります。
管理者と開発者が今すぐ確認すべきチェックリスト
| 優先度 | 確認項目 | 合格基準 |
|---|---|---|
| 高 | 重要アラートのアクション グループをテストする | メール、Webhook、Functions、Logic Appsが実際に成功する |
| 高 | 発火済みアラートの履歴タブを確認する | 抑制されたアクション グループ、追加されたアクション グループが分かる |
| 高 | Webhook受信側でリクエストログを取る | ペイロード、時刻、HTTPステータス、エラー理由を追跡できる |
| 高 | メール送信元を許可する | 3つの公式送信元アドレスがブロックされない |
| 中 | アラート処理ルールのスコープを確認する | 対象リソースと発火したターゲット リソースが一致している |
| 中 | 共通アラート スキーマの利用状況を棚卸しする | 受信コードが期待する形式とアクション設定が一致している |
| 中 | ログ検索アラートのAPIバージョン依存を確認する | 検索結果入りペイロードを前提にした処理がない |
| 中 | Geneva Alert RPの状態を確認する | Microsoft Entraテナントに存在し、無効化・削除されていない |
| 低 | 通知先の重複を整理する | 同じメールアドレスやWebhook URLが不要に複数グループへ登録されていない |
まず取り組むべきことは、最重要のアラートを1つ選び、発火から通知・自動アクションまでを実際にテストすることです。そこで得た結果をもとに、アクション グループ、アラート処理ルール、Webhook受信側、メール基盤、Microsoft Entraの確認項目をRunbookに落とし込みます。
Azure Monitorのアラート通知は、障害対応の入口です。通知が届かない、重複する、内容が違うという問題は、単なる設定ミスではなく、運用品質そのものに直結します。今回の公式情報は、既存環境をすぐ移行するための告知ではなく、アラート通知を確実に機能させるための点検リストとして活用するのが最も実践的です。

コメント