2025-05-30
クラウドを運用していると、「障害やエラーの通知」がとても重要です。
Azure Monitorはエラーを検知してメールで教えてくれる便利な機能ですが、アラートの通知メールをそのまま使っていると次のようなお悩みがでてきませんか?
実際に「アラートの通知内容をもっとわかりやすくできませんか?」というご相談をいただいたことから、今回改善に取り組みました。
Azure Monitorの通知は、標準でカスタムクエリを用いたエラー検出とアクショングループによるメール通知を行うことができますが、通知内容を整形することはできず、英文・UTCの形式で届きます。
そこで、Logic Apps(ロジックアプリ)の出番です。通知の内容を見やすく整えることができます。
今回、以下のように設計を変更しました。
1. Logic Appsのリソースを作成
2. Azure Monitorの送信先として、アクショングループにLogic Appsを登録
3. Logic Appsの中で受信したエラーログのデータを日本語・JSTのメール文に整形し、メール通知
Azureポータルから「Logic Apps」を検索・作成します。
作成後、リソースの編集から最初のトリガー When a HTTP request is received(HTTPリクエストを受信したとき)を設定します。

このトリガーは、Azure Monitorから通知データを受け取るために必要です。
また、Request Body JSON Schemaに共通アラートスキーマのJSONを貼り付けることで、通知データの形式を認識できるようになります。
https://learn.microsoft.com/ja-jp/azure/azure-monitor/alerts/alerts-common-schema
Azure Monitorのアクショングループを作成します。アクションタブから、通知アクションとしてLogic Appsを選択し、作成済みのLogic Appsリソースを指定します。(通知タブの標準のメール設定は今回不要なのでスキップします。)
「共通アラートスキーマを有効にする」にチェックを入れることで、Logic Appsへのデータ送信がスムーズになります。


Azure Monitorで「どんな条件のときに通知を出すか」を設定します。


Logic Appsのロジックアプリデザイナーを開きます。
ワークフロー内では、受信したアラートデータを For each で展開し、対象のエラーごとにメール本文を構築します。


時刻のUTC -> JST変換には convertTimeZone 関数が利用できます。
convertTimeZone(triggerBody()?['data']?['essentials']?['firedDateTime'], 'UTC', 'Tokyo Standard Time', 'yyyy-MM-dd HH:mm:ss')アクショングループから通知のテストを行います。以下のようにLogic Appsでログが整形されたメールを受信することができるようになりました。

Azure Monitorの通知が今回の改善でさらに実用的で良いものとなりました。
Logic Appsを組み合わせることで、運用現場に寄り添った通知フローを構築することができます。
もし同じような課題を抱えている方がいれば、ぜひこのアプローチを参考にしてみてください。
弊社ではAzure構築・導入支援サービスを提供しております。
マイクロソフト出身、 Azure 認定資格を保持するエンジニアが Azure に関するアドバイスや、環境構築などのご支援をいたします。
200を超えるAzureのサービスの中から、どのようなサービスを利用すれば良いのか、どういう組み合わせで利用できるのか、ランニングコストはどれくらいかかるのかなど、様々な角度から生じるお客様の疑問にお答えし、弊社にて Azure 環境の構築や Azure の導入をサポートします。
Azure をより活用し、最適な構成を構築するご支援をいたしますので、ご検討の方はお気軽にお問い合わせください。