Logic Appsを使ったLog Analyticsログ検索の自動化とメール送信手順
Azure Logic Apps(ロジックアプリ)を使って、Log Analyticsワークスペースに保管されたログをクエリ検索し、メールで送信する方法です。
Logic AppsにはAzure Monitor Logsのコネクタが用意されています。
これを利用してワークフローからLog AnalyticsやApplication Insightsへ接続し、クエリ検索が可能です。
Azure Logic Apps 内のワークフローから Log Analytics または Application Insights に接続する
ワークフロー内で取得したクエリ結果は、メールで送信したり、ストレージアカウントに保存したりできます。
ワークフローを利用することでクエリ検索をスケジュール化することも可能です。
仮想マシンのHeartbeatログを例として、Logic AppsのワークフローでLog AnalyticsのログをKQLクエリで検索する手順を確認しています。
クエリ実行はスケジュール化し、結果をメール送信しています。
※本記事内では、Azure Logic Apps(ロジックアプリ)をLogic Appsと記載しています。
※本記事内では、Log AnalyticsワークスペースをLog Analyticsと記載しています。
※メール送信には、SendGridを利用しています。
Logic Appsのリソースを作成と権限割り当て
Logic Appsのリソース作成
Logic Appsのリソースを作成します。
リソース名はlogic-log-01としています。
Logic Appsのリソース作成手順については、こちらで紹介しています。
今回は従量課金(消費)(マルチテナント)プランで作成しています。
トリガーやアクションの概要についても、こちらで紹介しています。
システム割り当てマネージドIDを設定
Logic Appsでシステム割り当てマネージドIDの設定を行います。
Logic AppsのワークフローからLog Analyticsでログ検索を行うための権限を付与します。
マネージドIDの有効化と、必要なロールの割り当てを行います。
※ユーザー割り当てマネージドIDを利用しても同じことが可能です。同様に、対象リソースへのアクセス権限を割り当てます。
Logic Appsでクエリ実行結果をメール送信するワークフローを作成
クエリをスケジュール実行し、結果をメール送信します。
ワークフロー作成にあたっては、こちらの記事を参考に進めます。
Logic Apps および Power Automate の Azure Monitor Logs コネクタ
ワークフローの作成にはロジックアプリデザイナーを使用しています。
今回は2つの方法で確認します。
-
- クエリを実行して結果を一覧表示
- JSON形式で出力したクエリ実行結果をHTML化
- クエリを実行して結果を視覚化
- クエリ実行結果をHTML Tableとして出力
- クエリを実行して結果を一覧表示
ワークフローの実行スケジュールをトリガーで設定
スケジュール設定にはScheduleコネクタのRecurrenceトリガーを利用します。
朝9時30分(日本時間)に実行されるように設定します。
Azure Monitor ログコネクタのクエリを実行して結果を一覧表示するアクションを設定
“Azure Monitor ログ"コネクタには、以下の2つのアクションがあります。
-
- クエリを実行して結果を一覧表示する
- クエリ実行結果をJSON形式で出力
- クエリを実行して結果を視覚化する
- クエリ実行結果を指定したグラフの種類で出力
- クエリを実行して結果を一覧表示する
“クエリを実行して結果を一覧表示する"アクションを利用します。
仮想マシンのHeartbeatログの最終取得時間をKQLクエリ実行サンプルとしています。
Log Analyticsワークスペースには、事前に準備したlog-test-01を利用しています。
-
- “クエリを実行して結果を一覧表示する"アクションの設定内容
- サブスクリプション: Log Analyticsワークスペースのサブスクリプションを選択
- リソースグループ:Log Analyticsワークスペースのリソースグループを指定
- リソースの種類:Log Analytics Workspace
- クエリ:実行するKQLクエリ
- 時間範囲の種類:時間範囲の設定方法
- Time Range(もしくはFrom To):ログ検索の対象時間範囲
- “クエリを実行して結果を一覧表示する"アクションの設定内容
※今回はV2のアクションを利用しています。
Heartbeatログについてはこちらで紹介しています。
Heartbeatログを利用すると、仮想マシンがLog Analyticsワークスペースに正常に接続されているかどうかの状況を確認、監視することができます。
Logic Appsのワークフローにおける日付関連のアクションについては、こちらで紹介しています。
クエリを実行して結果を一覧表示する V2のアクションの出力結果はJSON形式
クエリを実行して結果を一覧表示する V2のアクションは、出力結果をJSON形式で返します。
出力結果は、クエリを実行して結果を一覧表示する V2アクションまでのワークフローを実行することで確認できます。
クエリを実行して結果を一覧表示する V2アクションの出力結果 | |
ワークフローを実行し、実行結果を確認します。 クエリを実行して結果を一覧表示する V2アクションの実行結果を確認します。 出力結果はJSON形式で表示されます。 |
![]() |
|
Parse Jsonのアクションを使ってJSON形式の出力結果から値を取得
Data operationsコネクタのParse Jsonアクションを利用して、JSON形式の出力結果から値を取得できます。
Parse Jsonアクションの設定 | |
検索欄にData Operationsを入力します。 Parse Jsonアクションを選択します。 |
![]() |
サンプルのペイロードを使用してスキーマを生成するを選択します。 クエリを実行して結果を一覧表示する V2アクションの実行結果をサンプルのJSONペイロードとして貼り付けます。 完了を選択します。
|
![]() |
![]() |
|
Contentは入力値になります。 |
![]() |
Parse Jsonアクションの例です。 |
![]() |
Create HTML tableアクションを使ってHTMLテーブルを作成
Data operationsコネクタのCreate HTML tableアクションを利用して、値からHTMLテーブルを作成できます。
“Create HTML table"アクションの設定 | |
検索欄にData Operationsを入力します。 Create HTML tableアクションを選択します。 |
![]() |
FromがHTMLテーブル作成の入力値になります。 Parse JSONアクションのBodyを選択します。 |
![]() |
![]() |
|
詳細パラメーターでColumnsを選択できます。 Columnsを利用して作成するHTMLをカスタマイズできます。 |
![]() |
![]() |
|
![]() |
SendGridを使ってメール送信
今回はSendGridを使ってメール送信します。
Logic AppsにはSendGridのコネクタが用意されています。
SendGridコネクタにはメール送信のアクションが含まれています。
-
- メール送信設定
- 送信元メールアドレス:SendGridで送信元として認証されているメールアドレス
- 送信先メールアドレス:送信先のメールアドレス
- 件名:メールの件名
- 本文:HTMLテーブル作成の出力結果を設定
- メール送信設定
Logic AppsのワークフローでSendGridを使ってメール送信する手順や、SendGrid API Keyの発行手順についてはこちらで紹介しています。
SendGridを使ってメール送信 | |
検索欄にメールの送信(V4)と入力します。 メール送信の設定では、件名、送信元、宛先を指定します。 ※SendGridコネクタを利用する際は、接続の作成が必要です。 |
![]() |
![]() |
|
![]() |
作成したワークフローを保存
作成したワークフローを保存します。
作成したワークフロー | |
今回作成したワークフローです。 ※アイテムやトリガーの必須項目に未設定の項目がある場合、保存できずエラーとなります。 |
![]() |
ワークフローを実行してメール受信結果を確認
ワークフローを実行し、メール送信結果を確認します。
確認は実行履歴から行います。
トリガーを実行して結果を確認します。
ワークフローの実行履歴を確認 | |
ワークフローが正常に終了すると、緑色のチェックマークが表示されます。 | ![]() |
受信したメールを確認します。 メール本文にKQLクエリの実行結果が表示されていることを確認できます。 |
![]() |
—広告—
”クエリを実行して結果を視覚化する V2”アクションを使ってクエリ実行結果をメール送信
ワークフローを作成
クエリを実行して結果を視覚化するアクションを使用すると、検索結果をHTMLテーブルとして出力できます。
Parse JSONやCreate HTML tableのアクションは必要ありません。
※今回はクエリを実行して結果を視覚化する V2を利用しています。
クエリを実行して結果を視覚化する V2のアクションを利用 | ||
Azure Monitor ログのコネクタでクエリを実行して結果を視覚化する V2のアクションを選択します。 |
![]() |
|
Log Analyticsワークスペースのリソース、時間範囲、クエリを設定します。
グラフの種類はHtml Tableを選択します。
|
![]() |
|
メールの送信設定を行います。 |
![]() |
|
![]() |
ワークフローを実行してメール受信結果を確認
ワークフローを実行して、メールの受信結果を確認します。
メール受信結果を確認 | |
メール受信結果を確認します。 |
![]() |
—広告—
最後に
Logic Appsを使ってLog Analyticsのクエリ実行結果をメール送信することができました。
クエリの実行方法には2種類があり、両方利用できることが分かりました。
今回は実施していませんが、クエリ実行結果を加工することも可能です。
-
- Azure Monitor ログ(コネクタ)
- クエリを実行して結果を一覧表示する
- クエリ実行結果はJSON形式
- HTMLテーブル作成時にクエリ実行結果を加工できる
- クエリを実行して結果を視覚化する
- グラフの種類で指定した内容で出力
- クエリ実行結果をそのまま視覚化できるため設定が簡単
- クエリを実行して結果を一覧表示する
- Azure Monitor ログ(コネクタ)
引き続き、いろいろ試してみたいと思います。
Logic Appsのワークフローでストレージアカウントへファイルを保管する方法については、こちらで紹介しています。
Logic AppsのワークフローからKey Vaultのシークレット値を参照する手順については、こちらで紹介しています。
Logic AppsのワークフローでSlackへ連携する方法については、こちらで紹介しています。
Azure Monitorのアラート通知を例に、手順を紹介しています。