APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

LogicAppsでサーバアラートを受け取る

はじめに

Power Platform推進チームの鈴木です。 本日はLogicAppsを使って、AzureMonitorによるサーバアラートを受け取る処理を検証してみたいと思います。 Power Platform推進チームがなんでLogic Apps?と思われるかもしれませんが、Power Platformの一つであるPower AutomateとLogicAppsはどちらもデザイナー画面を中心にノーコード・ローコードで自動化や色々なサービス(コネクタ)との連携を実現できるシロモノです。 私が担当しているお仕事ではLogicAppsを使うことが多いので、今回はLogicAppsによる自動化処理について、学習してみます。

やりたいこと

  • AzureMonitorでWindowsサーバのEventログを採取する
  • Eventログを定期的に検索し、エラーログだけLogicAppsへ転送する
  • 転送したエラーログをLogicAppsで二次加工し、別の処理に活用する

やってみる

さっそく以下の順番で実施します。
なお、AzureMonitorによるEventログは、事前にAzureMonitorのデータ収集ルールで設定してあります。

1.LogicAppsを作成し、HTTP受信トリガーのワークフローを作成する
2.アクショングループを作成する
3.アラートルールを作成する

1.LogicAppsを作成し、HTTP受信トリガーのワークフローを作成する

AzurePortalからLogicAppsを作成します。今回の検証は、消費プランを選択しました。

LogicAppsの作成画面

次にデザイナー画面でHTTP受信トリガーを作成していきます。デザイナーのトップ画面から[HTTP要求の受信時]を選択します。

LogicAppsトリガー選択画面

HTTP受信トリガーが作成されました。HTTP受信トリガーでは、任意のHTTPリクエストを受け取ることが可能です。
LogicAppsでHTTPリクエストを受け取るためには、リクエストに応じたJSONスキーマを事前に定義しておく必要があります。 今回は、AzureMonitorのログアラートを受け取るため、Microsoftが用意しているLog Alert V2の共通スキーマを用います。

learn.microsoft.com

リンク先のJSONサンプルをコピーしたら、HTTP受信トリガーの[サンプルのペイロードを使用してスキーマを生成する]ウインドウを開き、JSONサンプルを張り付けてください。 自動的にリクエスト本文のスキーマが生成されます。

HTTP受信トリガー画面

設定したら、一度ワークフローを保存します。
こうすることでHTTP受信トリガーには、HTTPリクエストを受け取るためのURLが生成されます。

HTTP受信トリガーのURL生成

2.アクショングループを作成する

次にアクショングループを作成します。 アクショングループは、AzureMonitorがキックするアラートをメールやSMSなどのアラートアクションに変換する、ハブのような役割を持ちます。
AzurePortalからモニター画面を開き、左メニューから[アラート]を選択します。
中央ペインから[アクショングループ]を選択します。

モニター画面

[作成]ボタンからウィザードに従い、アクショングループを作成していきます。 設定する項目のポイントは以下の通りです。

  • [通知]タブは選ばない
    通知タブ
  • [アクション]タブで、作成済みのLogicAppsを選択する
  • 共通アラートスキーマを有効にする
    アクションタブ

ウィザードに従い、アクショングループ作成が完了すると、下図のようにアクショングループ一覧に作成したアクショングループが表示されます。

アクショングループ一覧

3.アラートルールを作成する

最後にアラートルールを設定します。
AzurePortalからモニター画面を開き、左メニューから[アラート]を選択。中央ペインから[アラートルール]を選択します。

モニター画面

[作成]ボタンからウィザードに従い、アラートルールを作成していきます。 設定する項目のポイントは以下の通りです。

  • [スコープ]タブでは、Eventログを格納したLog Analyticsワークスペースを指定

    スコープタブ

  • [アクション]タブでは、作成済みのアクショングループを選択する

    アクションタブ

ウィザードに従い、アラートルール作成が完了すると、下図のようにアラートルール一覧に作成したアラートルールが表示されます。

アラートルール一覧

動かしてみる

ここまで設定をすると、アラートルールで設定した時間間隔に従って、アラートログがLogicAppsへ飛ぶようになります。
※もし、LogicAppsがワークフロー結果が失敗となる場合は、HTTP受信トリガーのJSONスキーマ設定を見直してみてください。

LogicAppsワークフロー結果

まとめ

今回は、LogicAppsでAzureMonitorのアラートルールを受け取る方法を検証しました。 受け取ったアラートルールは、アラート情報を整理し、LogicAppsで二次加工することにより、TeamsやSharePointなどMicrosoft365への連携も可能です。 次回の投稿では、受け取ったアラートルールの二次加工にフォーカスを当てて、検証してみたいと思います。