Application Insights Smart Detectionのアラート設定勘所|検知した異常が誰にも届かない状態を防ぐ
Smart Detection の既定の通知先は、メールアドレスではなく「サブスクリプションの範囲で監視系のロールを持つ人」です。
権限をリソースグループ単位で最小化した環境ほど、この宛先は空になります。検知は正常に動き続けるため、アラートの記録は残るのに誰にも届かないという状態に、気づく手がかりがありません。
アラートを設計するとき、アクショングループの宛先を点検するのは基本中の基本です。ところが Application Insights を作ると自動で用意される Smart Detection のアクショングループは、宛先が個々のメールアドレスではなくロールで書かれています。宛先の一覧を見ても、実際に誰が受け取るのかはロールの割り当てを別に調べるまで分かりません。点検したつもりでも、ここがすり抜けます。この記事では、Smart Detection が何をしてくれる機能なのかを整理したうえで、既定の宛先が空になる条件と、それを前提にした通知の設計、届くことの確かめ方を解説します。
目次
株式会社ロクシアシステムズは、福岡と東京を拠点に、全国のお客様へ Microsoft 365・Azure の導入支援と、AIの業務活用(AIプライベート)の支援を提供しているIT企業です。
Application Insights Smart Detection とは
Smart Detection は、Application Insights に送られてくるアプリのテレメトリ(要求・依存関係の呼び出し・例外など)を自動で分析し、いつもと違う振る舞いを見つけて知らせる機能です。Microsoft Learn は「失敗率の急上昇や、クライアントまたはサーバーのパフォーマンスに異常なパターンがあると、アラートが届きます。この機能は構成を必要としません。アプリが十分なテレメトリを送信していれば動作します」と説明しています。
しきい値を自分で決める通常のアラートとの違いは、2点あります。
しきい値を決めなくてよい
「失敗率が何%を超えたら通知」という線を引く必要がありません。代表的な検出である Failure Anomalies(失敗の異常)は、機械学習でそのアプリの正常な失敗率を学習し、そこから大きく外れたときに知らせます。負荷が上がると失敗も増えやすい、特定の要求は失敗しやすい、といったアプリごとの癖も織り込んで判断します。
原因の手がかりまで分析して届ける
異常を見つけると、失敗した要求に共通する特徴(応答コード・要求名・アプリのバージョンなど)を分析し、関連する例外や依存関係の失敗、トレースログの例を添えて通知します。Learn は「通常のメトリックアラートは、問題があるかもしれないことを伝えます。Smart Detection は診断作業を代わりに始め、本来なら自分で行う分析の多くを実行します」としています。通知を開いた時点で、どこから調べ始めればよいかが分かるのが強みです。
検出の種類と、2つの系統
Smart Detection には複数の検出があり、通知の仕組みの上で2つの系統に分かれます。この違いを知らないと、設定を探す場所を間違えます。
| 検出 | 何を見つけるか | 通知の仕組み |
|---|---|---|
| Failure Anomalies(失敗の異常) | 要求や依存関係の呼び出しの失敗率が、学習した正常範囲を外れた | 最初から Azure Monitor のアラートルールとして作られる。アクショングループで通知する |
| 応答時間の劣化/依存関係の所要時間の劣化 | 処理時間が過去の基準より遅くなった | 従来型の Smart Detection の設定で通知する。アラートルールへ移行する仕組みがあり、移行すればアクショングループで通知できる(移行はプレビュー) |
| トレースの重大度の劣化/例外量の異常な増加/メモリリークの可能性 | ログの重大度の比率、例外の件数、メモリ消費のパターンの変化 |
移行について、Learn は「移行は Application Insights リソースごとに個別に適用する必要があります。明示的に移行していないリソースでは、Smart Detection はこれまでどおり動作します」としています。一方で、ページ読み込みの遅さ・サーバー応答の遅さ・依存関係の長い所要時間・セキュリティ上の問題・日次データ量の異常な増加の5つは、利用が少ないことなどを理由にアラートへ変換されず、移行後はそのリソースで使えなくなります。これらの検出に頼っている場合は、移行前に代わりの監視を用意してください。
この記事では、以降、アプリの障害にいちばん直結する Failure Anomalies を中心に扱います。
「設定不要なら放っておいてよいのでは?」への答え
構成が要らないのなら、何もしなくてよさそうに見えます。検知については、そのとおりです。Learn は「Application Insights リソースを作成すると、Failure Anomalies のアラートルールが自動で作成されます」と書いています。
問題は通知先です。このアラートルールは、「Application Insights Smart Detection」という名前のアクショングループとセットで作られます。Learn はその中身をこう説明しています。
「既定では、このアクショングループには Email Azure Resource Manager Role のアクションが含まれ、サブスクリプションで監視共同作成者(Monitoring Contributor)または監視閲覧者(Monitoring Reader)のロールを持つユーザーに通知を送信します」
つまり既定の宛先は、特定のメールアドレスではなく「そのロールを持っている人」です。そしてアクショングループ側の仕様として、ロール宛てのメールには条件があります。

割り当ては「サブスクリプション」の範囲でなければならない
Learn は、ロール宛てのメールを使う条件として「ロールにはユーザーまたはグループを割り当てる」「割り当てはサブスクリプションのレベルで行う」「ユーザーの Microsoft Entra のプロフィールにメールアドレスが設定されていることを確認する」の3つを挙げています。
お客様専用の環境では、権限を最小限にするために、リソースグループの範囲でだけロールを割り当てることがよくあります。この運用自体は正しいのですが、その場合、監視閲覧者を割り当てていても既定の通知は誰にも届きません。サブスクリプションの範囲では所有者しかいない、という構成でも同じです。既定の宛先は監視共同作成者と監視閲覧者だけで、所有者は含まれないからです。
届いていないことに、気づく手段がない
この状態でも、検知そのものは正常に行われます。ポータルのアラートの一覧には記録が残ります。しかし、誰もポータルを開かなければ、障害は気づかれないまま進みます。「検知はされていたのに、誰にも届いていなかった」という形の見落としは、障害が起きて初めて表に出ます。
弊社も、お客様専用環境の点検でこの状態を見つけ、宛先を明示する形に直したことがあります。自動で作られたものは、作られたこと自体に安心して中身を確認しない、という落とし穴になりがちです。
現在の割り当てを確認するには、サブスクリプションの範囲に絞ってロールの割り当てを一覧します。
az role assignment list \
--scope /subscriptions/<サブスクリプションID> \
--role "Monitoring Reader" \
--query "[].{name:principalName, type:principalType}" -o table
監視共同作成者(Monitoring Contributor)についても同じように確認します。--scope をサブスクリプションにしておくと、リソースグループの範囲の割り当ては結果に含まれません。ここで誰も出てこなければ、既定の通知はどこにも飛んでいません。
通知先を設計する
ロールの割り当てを通知のために広げるのは、筋がよくありません。権限の設計と通知の設計は、別々に決めるべきものです。弊社では、宛先を明示したアクショングループを用意して、アラートルールに付け替える形を採っています。
宛先は個人ではなく、共有の受け皿にする
担当者個人のメールアドレスを宛先にすると、異動や退職、休暇のたびに通知が途切れます。運用チームの共有メールボックスや配布グループのように、人が入れ替わっても受け皿として残る宛先を指定します。
既定のアクショングループを直接編集しない
「Application Insights Smart Detection」という名前のアクショングループは、同じサブスクリプションの複数の Application Insights で共有されることがあります。Learn は、移行の処理について「その名前の既存のアクショングループが見つかった場合は、新しいアラートルールをそのアクショングループにつなぎます」と説明しています。これを直接書き換えると、意図しない別のアプリの通知先まで変わります。自分のアプリ用のアクショングループを別に作り、アラートルールの側で付け替えるほうが、影響範囲をはっきりさせられます。
構成をコードで管理するなら、アラートルールも含める
Failure Anomalies のアラートルールは microsoft.alertsmanagement/smartdetectoralertrules という種類のリソースで、テンプレートで定義し直せます。自動で作られたものをポータルで直すだけだと、環境を作り直したときに既定の状態へ戻ります。構成をコードで管理している場合は、アクショングループとアラートルールの付け替えまでをコードに含めておくと、再現性が保てます。

(2026年9月更新)
補足:現在の Microsoft Learn には、アクショングループの宛先にメールアドレスを指定した場合、保存してから30分以内にワンタイムパスコード(OTP)で確認する必要があると記載されています。確認していない宛先は、強制が有効になった後はアラートもテスト通知も受け取れません。一度確認すれば、同じテナント内の過去と今後のすべてのアクショングループに引き継がれます。なお、ロール宛てのメールにはこの確認は不要です。宛先を追加したら、確認メールへの対応までを設定作業に含めてください。
届くかどうかを確かめる
通知先を設定したら、届くことを確かめます。ここで確認の範囲を取り違えやすいので、何が確認できて何が確認できないかを分けて考えます。
ポータルのテストで分かるのは「宛先に届くか」まで
アクショングループには、ポータルからテスト通知を送る機能があります。件名に「Test」と付いたメールが届けば、その宛先へ配信できることは確認できます。ただし Learn によると、テストメールの詳細やリンクは見本のデータです。また、一定時間あたりに実行できるテストの回数には上限があります。
テストで確認できるのは、あくまで「そのアクショングループから宛先へ届くか」です。Smart Detection のアラートルールが、そのアクショングループにつながっているかは、テストでは分かりません。付け替えを忘れていても、テストは成功します。
つながりは、アラートルールの側から確かめる
Application Insights の[アラート]から[アラートルール]を開き、シグナルの種類を「Smart Detector」に絞ると、Failure Anomalies のルールが表示されます。ルールを開いて、付いているアクショングループが自分で用意したものになっているかを確認します。
Failure Anomalies は、狙って発火させることが難しい検出です。そこで弊社では、同じアクショングループを付けた一時的なアラートルールを別に作って発火させ、実際のアラートとして宛先に届くことを確かめたうえで、一時的なルールを削除しています。テストの成功だけで完了とせず、「本物のアラートが、本物の経路で届く」ことまでを確認の範囲にしています。
閉域の環境では、通知の出口を先に決める
アプリを仮想ネットワークの中に閉じ込め、外向きの通信を絞った環境では、アプリ自身から外部へ通知を送る作りは使えません。通知はアプリの外、Azure Monitor の側で出す設計になります。
アクショングループの側にも制約があります。Learn は Webhook のアクションについて「Webhook のエンドポイントは、パブリックにアクセスできる必要があります」と書いています。Private Link に対応しているアクションの種類は Event Hubs だけです。閉じた環境の中に通知の受け口を置く、という作りは基本的にできません。
このため閉域の環境では、Azure Monitor のアラートからメールで通知する形を軸にし、Webhook を使うなら受け口は閉域の外に置く、と最初に決めておきます。閉域の構成そのものはAzure OpenAI・AI Searchを閉域で使うで解説しています。
通知を受けたら、どこを見るか
Failure Anomalies の通知には、通常時と比べた失敗率、影響を受けた利用者の数、失敗に共通する特徴、関連する例外・依存関係の失敗・トレースが含まれます。影響を受けた利用者の数は、どれだけ急ぐべきかを判断する材料になります。
さらに掘り下げるときは、ログを直接照会します。ワークスペースベースの Application Insights では、テレメトリは Log Analytics ワークスペースの AppRequests(要求)・AppExceptions(例外)・AppTraces(トレース)・AppDependencies(依存関係)といったテーブルに入っています。
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| summarize failed = count() by Name, ResultCode
| order by failed desc
通知に添えられた「失敗に共通する特徴」と、この集計が一致すれば、原因の当たりはかなり絞れます。同じ時間帯の AppExceptions を見て、どの例外が出ているかを確かめるのが次の手順です。
運用で見落としやすい細部
最後に、仕様として知っておかないと誤解しやすい点をまとめます。
| 仕様 | 運用上の意味 |
|---|---|
| 使い始めて24時間は学習期間 | アプリが一定量のデータを送るようになってから、正常な振る舞いを学ぶのに24時間かかります。構築した直後の障害は検知されません。 |
| 判定は Application Insights 全体の失敗率 | API ごとやアプリごとには通知しません。1つの Application Insights に複数のアプリを送っていると、1つのアプリの失敗が全体の中に埋もれることがあります。 |
| 復旧しても通知は来ない | 問題が8〜24時間検出されなければ自動で解決扱いになりますが、その際の通知はありません。解決したかどうかはポータルで確認します。 |
| Application Insights を削除してもルールは残る | 対応するアラートルールは自動では削除されません。環境を片付けるときは、ルールも忘れずに削除します。 |
| ロールを追加してから届くまで最大24時間 | ロール宛てのメールを使う場合、新しいロールを追加してから通知が届き始めるまで最大24時間かかることがあります。追加した直後に届かなくても、慌てず時間を置きます。 |
設定の勘所のまとめ
- 既定の宛先は「サブスクリプションの範囲で監視系ロールを持つ人」だけと心得る
- 自分のアプリ用のアクショングループに、共有の宛先を明示する
- アラートルールの側で付け替え、つながりを確認する
- テストの成功で終わらせず、本物のアラートで届くことを確かめる
- 閉域の環境では、通知の出口を最初に決める
弊社の支援
弊社は、お客様専用のAI基盤やアプリをAzure上に構築する形で、AIの業務活用を支援しています。構築して終わりではなく、障害に気づける状態で運用を始められるよう、監視と通知の設計も構築の範囲に含めています。
監視は、何かが起きるまで効いているかどうかが分からない仕組みです。だからこそ、宛先を明示し、届くことを確かめる手順を、構築の段階で済ませておくことを重視しています。公開面の守り方はAzure Front Door の背後のアプリを守るもあわせてご覧ください。
よくあるご質問
こちらをクリックして「よくある質問」を表示
Smart Detection を使うのに、何か設定は必要ですか?
検知には設定は要りません。アプリが十分なテレメトリを送っていれば動作し、Failure Anomalies のアラートルールも Application Insights を作ると自動で作成されます。ただし通知先は既定のままだと届かないことがあるため、宛先の確認と設定は必要です。
監視閲覧者のロールを割り当てているのに、通知が届きません。なぜですか?
割り当ての範囲を確認してください。ロール宛てのメールは、サブスクリプションの範囲で割り当てたユーザーやグループにしか届きません。リソースグループの範囲の割り当ては対象外です。あわせて、ユーザーの Microsoft Entra のプロフィールにメールアドレスが入っているかも確認してください。
サブスクリプションの所有者には通知が届きますか?
既定のアクショングループのままでは届きません。既定の宛先は監視共同作成者と監視閲覧者のロールだけです。所有者に届けたい場合も、ロールに頼らず、宛先を明示したアクショングループを用意することをお勧めします。
アクショングループのテストが成功すれば、設定は完了と考えてよいですか?
完了とは言えません。テストで分かるのは、そのアクショングループから宛先へ届くかどうかまでです。Smart Detection のアラートルールがそのアクショングループにつながっているかは別に確認が必要です。実際のアラートとして届くことまで確かめてください。
アラートルールへの移行は、すぐに行うべきですか?
Failure Anomalies は最初からアラートルールなので、移行は不要です。他の検出を移行するとアクショングループで柔軟に通知できるようになりますが、移行はプレビューで、ページ読み込みの遅さなど5つの検出は移行後に使えなくなります。それらに頼っていないかを確認してから判断してください。
障害が解決したときにも通知を受け取れますか?
Failure Anomalies では受け取れません。問題が一定時間検出されなければ自動で解決扱いになりますが、その際の通知や処理は行われない設計です。解決したかどうかは、Azure ポータルのアラートの一覧で確認してください。
お客様専用の環境の監視をどこまで作り込むかは、業務への影響の大きさによって変わります。現在の構成や運用体制をお聞かせいただければ、監視と通知の設計案をご提案します。お問い合わせよりお気軽にご相談ください。
関連サービス・関連コラム
- クラウド導入支援(Azure)|アセスメントから移行・運用まで一気通貫で伴走
- Azure OpenAI・AI Searchを閉域で使う|Private Endpointと仮想ネットワークの設計
- Azure Front Door の背後のアプリを守る|App Service 認証(Easy Auth)とオリジンロックの設計
- Azureのインフラ払い出しをセルフサービス化する|IaCとDeployment Stacksで申請から変更管理まで統制する
- ゼロトラストとは|中小企業がMicrosoft 365で始めるセキュリティ
- Azure Functions Flex Consumption のデプロイと運用|従来プランとの違いと利用の注意点
- Azure Container Apps の料金を抑える設定|使わない間は止めるか、常時起動にするかの判断基準
- Azureの構成をBicepで管理するときの落とし穴|手作業の設定が消える理由と、本番に適用する前の確認
- Azure DevOps で本番環境へのデプロイを管理する|承認・自動確認・切り戻しの組み立て方
- 稼働中のシステムを別のAzureリージョンへ移す|引き継がれない設定と、切り替えの順序設計
まずは無料トライアルで、効果をご確認ください
「AIプライベート」は短期・低コストで試せます。帳票入力(AI-OCR)・電話対応(AI-Voice)・計画づくり(AI-Enhance)の自動化から、クラウド(Azure・Microsoft 365)・DXのご相談まで、お気軽にどうぞ。

