LoginSignup
0
0

【備忘録】Azure Monitorのログ検索アラート機能の仕様について

Posted at

初投稿です。
業務でAzure Monitorのログ検索アラートを使用するにあたり、仕組みの理解に苦戦しましたので、備忘として残します。

実現したい事

・Azure Functionsがエラーログを出したらメール通知。
・メール本文にログ内容を表示。 ※ここでハマりました...

処理の流れ

1.Functionsの関数A実行(Communication Serviceによるメール送信)

2.ログ出力(Functions → Application Insights → Log Analyticsワークスペース)

3.Azure Monitorによるアラートメール送信
アラートルール:
・10分間隔でクエリ発行
・クエリ内容:出力元がFunctions、かつ関数Aのエラーで絞り込み
・1件以上の場合に指定アドレスへメール送信

4.メール確認(運用者)
・メール本文から、エラーログの詳細(申請ID等の値が含まれる)を確認したい。

課題

メール本文にログ検索結果が記載されない。

ログ検索アラート API バージョン 2021-08-01 以降では、アラート通知ペイロードから検索結果が削除されました。 検索結果は、以前の API バージョン (2018-04-16) で作成された警告ルールでのみ利用できます。

最新のAPIバージョンではメール内容にログが含まれない(以前はヒットしたログが10件まで記載されていた)。
一応、確認時点(2024/5/19)ではAPIバージョン2018-04-16を使ってデプロイも可能(コマンドライン)だが、廃止予定のため非推奨。

最新APIでもメール本文にAzure PortalへのURLが記載されていて、Azure Monitorの画面まで1クリックで移動してログを確認する事は可能。
ただメールのみで確認するよりも手間がかかる。エラー件数が多いとより不便か。

解決策

Logic Appsなどの別アプリケーションでメール送信処理を実装する

Azure Monitorはアラートルールで定義した内容に合致したら、指定したアクショングループを実行する。
アクショングループの内容には大きく「通知」「アクション」がある。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/alerts/action-groups

「通知」にはメール送信などが含まれる。
「アクション」にはLogic Appsの呼び出しなどが含まれる。

アラート発報時にアクションでLogic Appsを呼び出してペイロード(ログ検索結果などを含む)を渡し、Logic Apps側でメール内容を作り込む事が可能。
ただし、メール送信手段を別途用意する必要がある。
 ・Office365アカウント
 ・SMTPサーバ
 ・Communication Service
など。

ログを調査する必要があるときは、アラートにある、ログ内の検索結果へのリンクを使用します。
生の検索結果、または他の高度なカスタマイズが必要な場合は、Azure Logic Apps を使用してください。

参考資料

Bicep関連

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0