Log Analyticsクエリ実行結果をLogic Apps使ってメール送信

2021-02-11Azure,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の(ロジックアプリ)のリソースを作成します。

リソース作成

Logic Apps(ロジックアプリ)リソース作成

Logic Apps(ロジックアプリ)のメニューで追加を選択します。

Azure Logic Apps(リソースデプロイ)

Logic Apps(ロジックアプリ)の作成画面で以下の項目を設定します。

  • リソースグループ名
  • ロジックアプリ名
  • リージョン
  • ログ分析
  • プランの種類
  • ゾーン冗長

今回利用しない為”ログ分析を有効化”はいいえを選択しています。
”確認および作成”を選択します。

※ロジックアプリ名は”LogCheck”としています。

Azure Monitor Logs(ログ)コネクタの認証にはマネージドIDが使えない

Azure Monitor Logs(ログ)コネクタを利用する際にはAzureの認証が必要になります。
利用できる認証方法はサービスプリンシパルもしくはアカウントでのサインインになります。
マネージドIDは利用できません。

クエリ実行結果をメール送信するワークフローを作成

クエリをスケジュール実行し結果をメール送信します。
ワークフロー作成にあたってはこちらの記事を参考に進めます。

Logic Apps および Power Automate の Azure Monitor Logs コネクタ(MS社公式)

ワークフローの作成はロジックアプリデザイナーを使います。
最初はJSONで出力されたクエリ実行結果をHTML化する方法でやってみます。
参考記事はクエリ実行時にHTMLテーブル化しています。(こちらは後でやってみます。)

ワークフローのスケジュール実行設定

スケジュール実行させる場合は、繰り返しトリガーを利用します。
日本時間朝9時に実行するように設定します。

トリガー作成

リソースメニューでロジックアプリデザイナーを選択します。
繰り返しのトリガーを選択します。

ロジックアプリを実行する頻度に日を選択します。
Add new parameterを選択し、タイムゾーン、設定時刻(時間)、設定時刻(分)を追加します。

実行時間を設定します。
タイムゾーンは日本時間を選択します。
設定時刻(時間)と(分)を9時00分と設定します。

 

Azure Monitor Logs(ログ)のコネクタを使ってクエリ検索

Azure Monitor Logs(ログ)のコネクタには以下の2つのアクションがあります。

まずは”クエリを実行して結果を一覧表示する”アクションを利用してやってみます。

    • ”クエリを実行して結果を一覧表示する”アクションでの設定内容
      • サブスクリプション:Log Analyticsワークスペースのサブスクリプションを選択
      • リソースグループ:Log Analyticsワークスペースのリソースグループ
      • リソースの種類:Log Analytics Workspace
      • クエリ:実行するクエリ
      • 時間範囲:クエリの対称時間範囲
クエリを実行して結果を一覧表示する

Azure Monitor ログのコネクタを利用します。
検索欄にAzure Monitor Logと入力します。

”クエリを実行して結果を一覧表示する”を選択します。

Azure Monitorログへの接続作成にはAzureへのサインインが必要になります。
サインインをクリックするとAzureへのログイン画面が表示されます。
自身のAzureアカウントでログインします。

Azureへのログインが完了すると設定画面が表示されます。環境に併せて設定します。

クエリに以下の通り入力します。

Heartbeat
| summarize max(TimeGenerated) by Computer, Category
| sort by Computer

”クエリを実行して結果を一覧表示する”の出力結果はJSON形式

”クエリを実行して結果を一覧表示する”のアクションを実行した場合、クエリにの実行結果はJSON形式で出力されます。

出力結果
クエリの実行結果を確認します。
JSON形式で出力されている事が分かります。

JSONの解析

JSONの解析を利用してクエリの出力結果の値を取得します。

JSONの解析

JSONの解析
検索欄に”JSON”と”の解析”を入力します。
データ操作コネクタのJSONの解析を選択します。

コンテンツを指定します。
コンテンツは入力値になります。
クエリの実行結果のvalueを選択します。

スキーマは先ほどの出力結果をサンプルペイロードとして利用します。

クエリの出力結果を貼り付けて完了を選択します。

※”クエリを実行して結果を一覧表示する”のアクションまで作成した時点でワークフローを実行します。その出力結果をサンプルペイロードとして利用します。

コンテンツとスキーマが設定出来ている事を確認します。

HTMLテーブルの作成

HTMLテーブルの作成を利用すると、JSONの解析結果を表形式で表示出来ます。

HTML テーブルの作成アクション

HTMLテーブルの作成
検索欄に”HTMLテーブルの作成”と入力します。”HTMLテーブルの作成”を選択します。
開始が入力値になります。
JSONの解析の本文を選択します。
開始と列の設定を確認します。
列は自動としています。

SendGridのコネクタを使ってメール送信

Logic Apps(ロジックアプリ)にはSendGrid用のコネクタが準備されています。
メール送信用のアクションを利用します。

    • メール送信設定
      • 送信元メールアドレス:SendGridで送信元として認証されているメールアドレス
      • 送信先メールアドレス:送信先のメールアドレス
      • 件名:メールの件名
      • 本文:HTMLテーブルの作成の出力結果を設定
SendGridを使ってメール送信
検索欄に”SendGrid”と入力します。
”メールの送信”を選択します。
SendGridの接続情報になります。
接続名は任意で設定します。
SendGrid Api KeyはSendGridのAPIキーを指定します。

メール送信設定します。
件名は”最終HeartBeat取得時間”としています。

メール本文にHTMLテーブルの作成の出力結果を設定します。

メールの本文に”出力”が設定されている事を確認します。

SendGridのAPI Key設定についてはこちらも併せて参照願います。

ワークフローの保存

設定が終わったらワークフロー保存します。

ワークフローの保存

1つのトリガーと4つのアクションが定義されています。確認後保存します。

※必須項目に未設定項目があると保存時にエラーになります。

ワークフローを実行してメール送信結果を確認

ワークフローを実行してクエリ実行結果がメール送信されるか確認します。
”トリガーの実行”を使うとワークフローを実行できます。

トリガーの実行
”トリガーの実行”の”実行”を選択します。
実行完了するとグリーンのチェックマークが表示されます。
メール受信結果を確認します。
クエリ実行結果が表示されている事が確認出来ます。

”クエリを実行して結果を視覚化する”のアクションを使う

”クエリを実行して結果を視覚化する”のアクションを使っても同様の事が可能です。
この場合JSONの解析やHTMLテーブルの作成が必要ありません。

”クエリを実行して結果を視覚化する”を利用

Azure Monitor ログのコネクタで"クエリを実行して結果を視覚化する"を選択します。

クエリは”クエリを実行して結果を一覧表示する”を利用した場合と同じになります。
グラフの種類を選択します。

※グラフ形式はクエリ内で指定しません。

メール本文に”クエリを実行して結果を視覚化する”の出力結果の本文を指定します。

※これでワークフローの設定は完了です。

クエリを実行してメール受信結果を確認します。同様にテーブル形式でクエリ実行結果が確認出来ます。

最後に

Azure Logic Apps(ロジックアプリ)を使ってLog Analyticsのクエリ実行結果をメール送信する事が確認出来ました。
クエリの実行は2種類の方法があり両方利用できる事が分かりました。
今回は実施していませんがクエリ実行結果を加工する事も可能です。

    • Azure Monitor Logs(ログコネクタ)
      •  クエリを実行して結果を一覧表示する
        • クエリ実行結果はJSON形式
        • HTMLテーブル作成時にクエリ実行結果を加工する事ができる
      • クエリを実行して結果を視覚化する
        • グラフの種類で指定した内容で出力
        • クエリ実行結果をそのまま視覚化するので設定が簡単

ストレージアカウントへの保管についてはこちらに纏めています。

Logic Apps(ロジックアプリ)からAzure OpenAIを利用する方法についてはこちらに纏めています。

スポンサーリンク