Young Leaves

Azure Advisor で新規推奨事項が出た時にメール通知をする

今回は現在利用中のAzure リソースに対し、ベストプラクティスに基づいた推奨事項を提案してくれるAzure Advisor を使い、新規推奨事項が出た時にメール通知を行う方法について説明します。

実行環境

記事内のAzure CLI コマンドで利用するAzure CLI のバージョンは以下を利用します。また、記事内のAzure CLI はCloudShell を利用して実行するものとします。

Azure CLl

2.52.0

前提条件

  • Azure アカウントを持っていること
  • 通知用のメールアドレスを持っていること

Azure Advisor とは

Azure Advisor は現在利用しているAzure リソースを評価し、ベストプラクティスに沿った推奨事項を提案してくれるサービスです。

Advisor は無料で利用できます。Advisor では全てのリソースを評価することも、特定のサブスクリプションやリソースグループのみ評価することもできます。Advisor は1日に2回推奨事項の更新を行い、以下の5つのカテゴリで評価されます。

  • コスト
  • セキュリティ
  • 信頼性
  • オペレーション エクセレンス
  • パフォーマンス

Advisor の評価は%単位で評価され、100% に近いほどAzure ベストプラクティスに沿ったリソースの利用を行っていることになります。推奨事項は高、中、低の影響度で評価され、影響度の高い評価ほど修正したほうが良い内容となります。推奨事項の内容によってはクイック修正を行うこともできますが、クイック修正を行う場合はリソースに対する権限が必要となるため、注意が必要です。Advisor で提案される推奨事項はすぐに修正できない場合は一定期間延期したり、リソースの利用内容によってベストプラクティスと合わない場合は無視することもできます。Advisor で提案された推奨事項はCSV ファイルまたはPDF ファイルでダウンロードできるため、レポートなどを作成したい時に利用できます。

Advisor では新たに推奨事項が追加された際にアラートを通知したりワークブックを実行させることもできます。アラート通知については、新たに追加された推奨事項のみ通知を行うため、既存の推奨事項については通知されません。また、Advisor アラートは通知メールの内容からアクティビティログのアラートを利用していることがわかります。

他には推奨事項ダイジェストを利用することで、指定した期間内の推奨事項を定期的に通知することもできます。

リソースグループの作成

それでは、Advisor アラート通知の準備を行います。初めにアラート通知に必要なアクショングループ用のリソースグループを作成します。

# リソースグループを作成する
az group create -n advisoralert-rg -l japaneast

Advisor アラートを作成

リソースグループ作成後、メール通知を行うためにアクショングループを作成します。アクショングループで利用する値は以下のとおりとします。コマンドを利用する際は個人の環境に合わせて設定値を変更してください。

アクション

email (電子メール)

表示名

advisor

メールアドレス

kdkwakaba-test@gmail.com

アクショングループ名

advisoralert-ag

リージョン

global (グローバル)

リソースグループ

advisoralert-rg

# Advisorアラート用のアクショングループを作成する
az monitor action-group create \
    --action email advisor kdkwakaba-test@gmail.com \
    -n advisor-ag \
    -l global \
    -g advisoralert-rg

実行結果が表示され、アクショングループが作成されたことを確認します。

{
  "armRoleReceivers": [],
  "automationRunbookReceivers": [],
  "azureAppPushReceivers": [],
  "azureFunctionReceivers": [],
  "emailReceivers": [
    {
      "emailAddress": "kdkwakaba-test@gmail.com",
      "name": "advisor",
      "status": "Enabled",
      "useCommonAlertSchema": false
    }
  ],
  "enabled": true,
  "eventHubReceivers": [],
  "groupShortName": "advisor-ag",
  "id": "/subscriptions/<Subacription ID>/resourceGroups/advisoralert-rg/providers/microsoft.insights/actionGroups/advisor-ag",
  "itsmReceivers": [],
  "kind": null,
  "location": "Global",
  "logicAppReceivers": [],
  "name": "advisor-ag",
  "resourceGroup": "advisoralert-rg",
  "smsReceivers": [],
  "tags": null,
  "type": "Microsoft.Insights/ActionGroups",
  "voiceReceivers": [],
  "webhookReceivers": []
}

アクショングループ作成後、Advisor アラートを作成します。Advisor アラートはAzure Portal から作成します。Azure Portal の検索窓に「Advisor」を入力し、検索結果のAdvisor を選択しサービス画面に移動します。

Advisor の左ペインから「アラート (プレビュー)」を選択し、「+ 新しい Advisor アラート」または「+ 新しい Advisor アラートルール」を選択します。

Advisor アラートの作成画面で各種項目を入力します。各項目の内容は以下のとおりとなります。

サブスクリプション

利用するサブスクリプション。

リソースグループ

Advisor アラートを受信するリソースグループ。

カテゴリ

アラート対象のカテゴリを選択します。カテゴリを選択した場合は特定のカテゴリのみアラート対象となり、カテゴリを選択しない場合は全てのカテゴリがアラート対象となる。

影響のレベル

アラート対象の影響レベルを選択します。影響レベルを選択した場合は特定の影響レベルのみアラート対象となり、選択しない場合は全ての影響レベルがアラート対象となる。

アクショングループ

通知するアクショングループ。

アラートルール名

Advisor アラートのルール名。

説明

Advisor アラートの説明。

ルールの作成時に有効にする

ルール作成時にアラートを有効にするかどうか。

既存のリソースグループを選択してください

アラートを保存するサブスクリプション内のリソースグループ。

今回設定する内容は以下の通りです。設定後「アラートの作成」をクリックしAdvisor アラートを作成します。

サブスクリプション

利用中のサブスクリプション

リソースグループ

advisoralert-rg

カテゴリ

選択なし

影響のレベル

選択なし

アクショングループ

advisoralert-ag

アラートルール名

advisoralert

説明

空欄

ルールの作成時に有効にする

はい

既存のリソースグループを選択してください

advisoralert-rg

アラート作成後、動作確認を行うためadvisoralert-rg 内に適当な仮想ネットワークを作成しておきます。Advisor の推奨事項の更新タイミングで設定したメールアドレスに通知が届くことを確認します。推奨事項のタイミングによっては少し待つ必要があります。

リソースのクリーンアップ

動作確認後、リソースをクリーンアップするためリソースグループを削除します。

# リソースグループを削除する
az group delete -n advisoralert-rg

まとめ

  • Azure Advisor は利用中のAzure リソースに対し、ベストプラクティスに沿った推奨事項を提案してくれるサービス。
  • Advisor は無料で利用でき、推奨事項に対しクイック修正を行うこともできる。
  • Advisor アラートを使用すると新規の推奨事項発生時に通知することができる。

参考資料