Log Analyticsクエリ実行結果をLogic Apps使ってメール送信
Azure Logic Apps(ロジックアプリ)にはLog Analyticsクエリ実行用のコネクタが用意されています。
Logic Apps および Power Automate の Azure Monitor Logs コネクタ(MS社公式)
Azure Monitor Logs(ログ)コネクタを使うとLog Analyticsのクエリ実行結果をLogic Apps(ロジックアプリ)で取得出来ます。
取得したクエリ結果はメール送信やストレージアカウントに保管する事が出来ます。
今回はLogic AppsのAzure Monitor Logsコネクタを使いクエリ実行結果をメール送信してみました。
-
- 前提条件
- ワークフローはスケジュール実行する
- Azure VM(仮想マシン)からのHeartBeat(ハートビート)最終取得時刻の一覧をクエリで取得する
- クエリ実行結果のHTMLテーブル化を2種類で実施
- JSONで出力されたクエリ実行結果を変換する方法
- クエリ実行時に視覚化(グラフ化)する方法
- メール送信にはSendGridのコネクタを利用する
- 前提条件
VM Insightsの設定はこちらを参照願います。
Azure Logic Apps(ロジックアプリ)のリソースを作成
Azure Logic Appsの(ロジックアプリ)のリソースを作成します。
リソース作成
Azure Monitor Logs(ログ)コネクタの認証にはマネージドIDが使えない
Azure Monitor Logs(ログ)コネクタを利用する際にはAzureの認証が必要になります。
利用できる認証方法はサービスプリンシパルもしくはアカウントでのサインインになります。
マネージドIDは利用できません。
クエリ実行結果をメール送信するワークフローを作成
クエリをスケジュール実行し結果をメール送信します。
ワークフロー作成にあたってはこちらの記事を参考に進めます。
Logic Apps および Power Automate の Azure Monitor Logs コネクタ(MS社公式)
ワークフローの作成はロジックアプリデザイナーを使います。
最初はJSONで出力されたクエリ実行結果をHTML化する方法でやってみます。
参考記事はクエリ実行時にHTMLテーブル化しています。(こちらは後でやってみます。)
ワークフローのスケジュール実行設定
スケジュール実行させる場合は、繰り返しトリガーを利用します。
日本時間朝9時に実行するように設定します。
トリガー作成 | |
リソースメニューでロジックアプリデザイナーを選択します。 |
![]() |
ロジックアプリを実行する頻度に日を選択します。 |
![]() |
実行時間を設定します。
|
![]() |
Azure Monitor Logs(ログ)のコネクタを使ってクエリ検索
Azure Monitor Logs(ログ)のコネクタには以下の2つのアクションがあります。
-
- クエリを実行して結果を一覧表示する
- クエリ実行結果をJSON形式で出力します
- クエリを実行して結果を視覚化する
- クエリ実行結果を指定したグラフの種類で出力します
- クエリを実行して結果を一覧表示する
まずは”クエリを実行して結果を一覧表示する”アクションを利用してやってみます。
-
- ”クエリを実行して結果を一覧表示する”アクションでの設定内容
- サブスクリプション:Log Analyticsワークスペースのサブスクリプションを選択
- リソースグループ:Log Analyticsワークスペースのリソースグループ
- リソースの種類:Log Analytics Workspace
- クエリ:実行するクエリ
- 時間範囲:クエリの対称時間範囲
- ”クエリを実行して結果を一覧表示する”アクションでの設定内容
”クエリを実行して結果を一覧表示する”の出力結果はJSON形式
”クエリを実行して結果を一覧表示する”のアクションを実行した場合、クエリにの実行結果はJSON形式で出力されます。
出力結果 | |
クエリの実行結果を確認します。 JSON形式で出力されている事が分かります。 |
![]() |
JSONの解析
JSONの解析を利用してクエリの出力結果の値を取得します。
HTMLテーブルの作成
HTMLテーブルの作成を利用すると、JSONの解析結果を表形式で表示出来ます。
HTMLテーブルの作成 | |
検索欄に”HTMLテーブルの作成”と入力します。”HTMLテーブルの作成”を選択します。 | ![]() |
開始が入力値になります。 JSONの解析の本文を選択します。 |
![]() |
開始と列の設定を確認します。 列は自動としています。 |
![]() |
SendGridのコネクタを使ってメール送信
Logic Apps(ロジックアプリ)にはSendGrid用のコネクタが準備されています。
メール送信用のアクションを利用します。
-
- メール送信設定
- 送信元メールアドレス:SendGridで送信元として認証されているメールアドレス
- 送信先メールアドレス:送信先のメールアドレス
- 件名:メールの件名
- 本文:HTMLテーブルの作成の出力結果を設定
- メール送信設定
SendGridのAPI Key設定についてはこちらも併せて参照願います。
ワークフローの保存
設定が終わったらワークフロー保存します。
ワークフローの保存 | |
1つのトリガーと4つのアクションが定義されています。確認後保存します。 ※必須項目に未設定項目があると保存時にエラーになります。 |
![]() |
ワークフローを実行してメール送信結果を確認
ワークフローを実行してクエリ実行結果がメール送信されるか確認します。
”トリガーの実行”を使うとワークフローを実行できます。
トリガーの実行 | |
”トリガーの実行”の”実行”を選択します。 | ![]() |
実行完了するとグリーンのチェックマークが表示されます。 | ![]() |
メール受信結果を確認します。 クエリ実行結果が表示されている事が確認出来ます。 |
![]() |
”クエリを実行して結果を視覚化する”のアクションを使う
”クエリを実行して結果を視覚化する”のアクションを使っても同様の事が可能です。
この場合JSONの解析やHTMLテーブルの作成が必要ありません。
最後に
Azure Logic Apps(ロジックアプリ)を使ってLog Analyticsのクエリ実行結果をメール送信する事が確認出来ました。
クエリの実行は2種類の方法があり両方利用できる事が分かりました。
今回は実施していませんがクエリ実行結果を加工する事も可能です。
-
- Azure Monitor Logs(ログコネクタ)
- クエリを実行して結果を一覧表示する
- クエリ実行結果はJSON形式
- HTMLテーブル作成時にクエリ実行結果を加工する事ができる
- クエリを実行して結果を視覚化する
- グラフの種類で指定した内容で出力
- クエリ実行結果をそのまま視覚化するので設定が簡単
- クエリを実行して結果を一覧表示する
- Azure Monitor Logs(ログコネクタ)
ストレージアカウントへの保管についてはこちらに纏めています。
Logic Apps(ロジックアプリ)からAzure OpenAIを利用する方法についてはこちらに纏めています。