Azure Monitorのメトリックアラートをロジックアプリを使ってSlack通知

Azure,Logic Apps,Monitor

Azure MonitorのメトリックアラートをLogic Appを使ってSlackに通知してみました。

色々なやり方があるかと思いますが、今回は以下の感じで実施してみました。

      • Azure Monitorで仮想マシンのCPU使用率を監視しCPU使用率が80%超えたらアラート
      • Azure Monitorのアクショングループを利用してSlackへ通知
      • アクショングループの指定はロジックアプリを指定
      • ロジックアプリでAzure Monitorからアラートを受信しSlackへの通知する設定

スポンサーリンク

Azure Logic Appsを作成

まず最初にロジックアプリを作成します。

作成手順

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

ロジックアップの作成で設定を行います。

  • リソースグループ名
  • ロジックアプリ名
  • リージョン

設定する値の入力が完了したら確認および作成をクリックします。

確認画面が表示されます。内容を確認し問題が無ければ作成をクリックします。これで作成作業は完了です。

ロジックアプリデザイナーを使ってメトリクスアラートをSlackへ通知するロジックアプリを作成 

ロジックアップデザイナーを使って作成していきます。

作成手順

ロジックアプリデザイナーのメニューを選択すると一般的なトリガーで開始するという項目が表示されます。

Azure Monitorのアクショングループで指定する場合はHTTP要求の受信時になります。選択しデザイナーでの設定作業を開始します。

HTTP要求の受信時の設定画面が表示されます。

サンプルのペイロードを使用してスキーマを生成するを選択する。

サンプルペイロードですが、今回はこちらのURLのものを利用しました。

サンプルペイロードを貼り付けたら完了をクリックします。

※汎用的なサンプルペイロードもあり、こちらを利用しても設定可能です。表示したい項目によって選択をして下さい。

Common alert schema definitions(公式サイト)

要求本文のJSONスキーマが作成されていれば設定が完了です。

これでトリガーの設定は完了です。新しいステップをクリックします。

Slackへの通知する為のアクションを作成します。

Slackの投稿メッセージを選択します。

Slackのログイン画面が表示されますのでSlackへログインします。Slackのログインは通知するワークスペースに対して行います。

 

Slackへログインが完了するとLogic-Appsアクセス許可が表示されます。許可するを選択します。

投稿先のSlackのチャネルを選択します。

メッセージテキスト欄を選択します。

選択できる項目が表示されます。通知したい内容を選択します。選択項目で何が表示されるかは、ペイロードの内容を見て確認します。

今回はこんな感じで作ってみました。

設定が終わったら、Logic Appsデザイナーで保存します。

これでLogic Appの設定は完了です。

Azure MonitorでLogic Appsを呼び出すアクショングループを作成する

Azure Monitorのアクショングループを作成します。

作成手順

モニターのメニューでアラートを選択します。

アクションの管理を選択します。

アクショングループの追加を選択します。

アクショングループの作成になります。

リソースグループ名、アクショングループ名、表示名を適時設定し次へをクリックします。

 

Slackへの通知はアクションでの設定になります。今回は何も設定せずに次へクリックし進みます。(Mail通知等も一緒に行いたい場合は設定して下さい。)

アクションの設定になります。

アクションの種類でロジックアプリを選択します。

作成したロジックアプリを選択します。

今回は”共通の警告スキーマを有効にします”はいいえを選択します。

※ペイロードにより”共通の警告スキーマを有効にします”の設定は異なります。

例えばこちらのような汎用的なペイロードを選択した場合は、”共通の警告スキーマを有効にします”は”はい”を選択します。

Common alert schema definitions(公式サイト)

名前を入力し確認および作成をクリックします。

確認画面で問題がない事を確認後に作成をクリックします。

Azure Monitorを設定する

今回はAzure VMのCPU使用率をサンプルに設定を実施してみます。

作成手順

モニターのメニューでアラートを選択します。

新しいアラートルールを選択します。

アラートルールの作成が表示されます。

リソースの選択をクリックします。

リソースの選択が表示されます。

監視対象の仮想マシンにチェックを入れて完了をクリックします。

次にアラートの発出条件の設定を行います。

条件の追加をクリックします。

シグナルロジックの構成になります。

今回はCPU使用率の設定を行いますので、Percentage CPUを選択します。

引き続きシグナルロジックの構成で実際のアラート設定を行います。

今回は以下の条件で実施してみました。

  • アラートロジック
    • しきい値:Static
    • 演算子:次の値より大きい
    • 集計の種類:平均
    • しきい値:80%
  • 評価基準
    • 集約頻度:1分
    • 評価の頻度:1分

※今回は検証なので、すぐ結果が分かるように1分間隔での監視にしています。

引き続き、アクショングループの設定を行います。

アクショングループの追加をクリックします。

アクショングループのリストが表示されますので、先ほど作成したアクショングループ(ロジックアプリ)を選択します。

最後にアラートルールの詳細設定を行います。アラートルール名を入力後、アラートルールの保存先リソースグループ、重要度を選択します。

設定が終わったらアラートルールの作成をクリックします。

これでアラートルールの作成が完了です。

実際にCPU使用率アラートを発生させてみる

今回はCent OSのAzure VMを利用して、CPU使用率を上昇させてみます。今回はシンプルにyesコマンドで実施してみました。

Azure VM上で以下のコマンドを実行します。

[root@test-vm ~]#yes >> /dev/null

CPU使用率が上昇すると、以下のアラートがSlackのチャネルへ通知されます。

Slack通知内容

アラート発生時

(CPU使用率がしきい値を上回った場合)

メトリクスアラート
ルール名CPU-Alert
重要度:1
リソース名:test-vm(VM名)
ステータス:Activated
メトリクス名:Percentage CPU
条件:GreaterThan
しきい値:90
値:92.855

アラート収束時

(CPU使用率がしきい値を下回った場合)

メトリクスアラート
ルール名CPU-Alert
重要度:1
リソース名:test-vm(VM名)
ステータス:Deactivated

メトリクス名:Percentage CPU
条件:GreaterThan
しきい値:90
値:58.36

同様にLogAnalyticsのクエリ結果を通知する事も可能です。