Azure VM Backup のアラートを移行する

azure
Published: 2023-02-01

はじめに

Azure VM Backup には、アラートを設定する方法が4つあります。

  1. クラシックアラート
  2. Azure Monitor のログアラート
  3. Azure Monitor アラート
  4. Azure Monitor のメトリクスアラート(プレビュー)

昔からなじみのある方法が1つ目のクラシックアラートです。Recovery Service Vault 単位でメールアドレスと Severity を設定すると、バックアップが失敗した際に次のようなメールが届きます。

クラシックアラートのメール

2つ目の方式が Azure Monitor のログアラートです。Recovery Service Vault は診断ログを Log Analytics にエクスポートできます。エクスポートされた診断ログを利用して Azure Monitor のアラートルールを作成することで、任意の条件で自由にアラートを発火できます。また、アラートルールにアクショングループを紐づけることで、メール送信だけでなく Webhook を送ったり Azure Function をキックしたりといった様々なシステム間連携が可能です。

3つ目が Azure Monitor アラートです。これは、Recovery Service Vault 自身が Azure Monitor のアラートを生成する方式です。利用者がアラートルールを作る必要はありません。何もしなくても勝手に Azure Monitor のアラートに出てきます。

実際に発火したAzure Monitor アラート

その代わり、アラートルールを自分で作ったわけではないので、Azure Monitor 上にアラートが発火されるだけです。後続の通知を実現するためにはアラート処理ルールを作る必要があります。アラート処理ルールによって、アクショングループを利用したメール送信や Webhook 連携などが実現できるようになります。

最後が Azure Monitor のメトリクスアラート(プレビュー)です。Recovery Service Vault は バックアップジョブと復元ジョブの正常性をメトリクスとして記録します。このメトリクスを利用して Azure Monitor のアラートルールを作成することで、バックアップに異常が起きた際にアラートを発火できます。

参考:Azure Monitor のサポートされるメトリック

どれを使うか

これからアラートを設定する場合には「3.Azure Monitor アラート」から検討を始めるのが良いです。次のドキュメントのとおり、Azure Monitor アラートがクラシックアラートの移行先として推奨されているからです。

このセクションでは、以前のアラート ソリューション (クラシック アラートと呼ばれます) について説明します。 複数の利点がある Azure Monitor ベースのアラートを使用するよう切り替えることをお勧めします。 切り替え方法の詳細については、Azure Monitor ベースのアラートへの切り替えに関する記事を参照してください。

Recovery Services コンテナーでのバックアップ アラート

同様の理由から、クラシックアラートを利用している環境についても、新規で作成する Recovery Service Vault から順次 Azure Monitor アラートに移行していきましょう。

「3.Azure Monitor アラート」で実現できないような粒度の監視を実現したい場合には、自分でアラートの発火条件を制御できる「Azure Monitor のログアラート」または「Azure Monitor のメトリクスアラート(プレビュー)」を検討しましょう。

クラシックアラートから Azure Monitor アラートへの移行

上記の経緯を踏まえて、クラシックアラートから Azure Monitor アラートへの移行を試してみました。移行の段取りは次の通りです。

  1. 移行対象の特定
  2. アラート処理ルールの設定
  3. 動作確認
  4. クラシックアラートの無効化

クラシックアラートを利用している Recovery Service Vault の特定

まずは作業対象の Recovery Service Vault を特定する必要があります。確認すべき点は次の2点です

  1. Azure Monitor アラートが有効になっているか
  2. クラシックアラートが設定されているか

Portal 上では次の画面から確認できます。

Azure Monitor アラートの有効化画面

クラシックアラートの設定画面

全ての Recovery Service Vault の設定を手で確認するのが大変な場合は、スクリプトによる確認も可能です。全ての Recovery Service Vault の確認項目を集めるサンプルスクリプトは次の通りです。

$vaults = Get-AzRecoveryServicesVault
$result = New-Object System.Collections.ArrayList
foreach( $vault in $vaults){
    $notificationConfiguration = (Invoke-AzRest -Uri "https://management.azure.com$($vault.id)/monitoringConfigurations/notificationConfiguration?api-version=2017-07-01-preview").Content | 
convertfrom-json
    $monitoringSettings = ((invoke-Azrest -uri "https://management.azure.com$($vault.id)?api-version=2022-08-01").Content | Convertfrom-json).properties.monitoringSettings  
    
    $tmp = [PSCustomObject]@{
        vaultName = $vault.Name
        azureMonitorAlertSettings = $monitoringSettings.azureMonitorAlertSettings.alertsForAllJobFailures
        classicAlertSettings = $monitoringSettings.classicAlertSettings.alertsForCriticalOperations
        areClassicNotificationsEnabled = $notificationConfiguration.properties.areNotificationsEnabled
        additionalRecipients = $notificationConfiguration.properties.additionalRecipients
    }
    $result.add($tmp) | out-Null

}
$result | ft *

vaultName azureMonitorAlertSettings classicAlertSettings areClassicNotificationsEnabled additionalRecipients
--------- ------------------------- -------------------- ------------------------------ --------------------
vault650  Enabled                   Disabled                                       True {username@domain}
vault02   Disabled                  Disabled                                       True {username@domain}

azureMonitorAlertSettings が Disalbed な場合は Recovery Service Vault で Azure Monitor アラートが有効になっていません。上記の設定画面から Azure Monitor アラートを有効化します。私の手元の環境の Recovery Service Vault では既に Enabled になっていました。

areClassicNotificationsEnabled が True で additionalRecipients にメールアドレスが入っている場合、クラシックアラートを利用しています。この Recovery Service Vault が移行対象になります。

アラート処理ルールの設定

移行する Recovery Service Vault が特定出来たら、アラート処理ルールを作成します。

次のドキュメントに記載されている通り、Azure Backup Center 上から移行を実施することも可能です。ただし、この移行方法で作成されるアラート処理ルールは「全ての Recovery Service Vault で発生したアラートを特定のメールアドレスにメールする」というものになります。この条件で良ければ Azure Backup Center 上の移行ツールを利用しましょう。

クラシック アラートから組み込みの Azure Monitor アラートに移行する

Recovery Service Vault 単位で通知先を分けているようであれば、Recovery Service Vault ごとにアラート処理ルールを自作する必要があります。アラート処理ルールを作成する際に、対象となる Recovery Service Vault を限定すれば OK です。

対象となる Recovery Service Vault の指定画面

また、アラートが発生した際にメールを受信するためには、アラート処理ルールにメールアドレスを設定したアクショングループを紐づける必要があります。

アクショングループの紐づけ

動作確認

アラート処理ルールが設定できたら、実際にバックアップを失敗させます。バックアップを失敗させるために、次のサポートのブログに記載されている通り、仮想マシン内のエージェントを停止させたうえでバックアップを手動実行します。

Azure VM Backup を意図的に失敗させる方法

バックアップが失敗するとアラートが自動的に発火します。アラートルールを設定しなくてもアラートが発火する点が Azure Monitor アラートの特徴です。このアラートに該当するアラート処理ルールが実行されることで、アクショングループに登録されたメールアドレスに Azure Monitor からのメールが届きます。

アラート処理ルールによって送信されたメール

Azure Monitor アラートのメールとクラシックアラートのメールは内容が異なります。「メールを受信したら手順書に基づいて内容を確認して作業を行う」運用を実装している場合には、手順書の見直しが必要になるかもしれません。

クラシックアラートの無効化

このままでは、バックアップが失敗した際にクラシックアラートと Azure Monitor アラートのアラート処理ルールの2つのメールが届いてしまいます。ですので、最後にクラシックアラートを無効化します。無効化は、Azure Backup Center と Recovery Service Vault のどちらからでも実施できます。

Recovery Service Vault 上でのクラシックアラートの無効化

まとめ

今回のエントリでは Azure VM Backup のアラートをクラシックアラートから Azure Monitor アラートに移行する方法をまとめました。今後 Azure VM Backup のアラートを設定する場合には Azure Monitor アラートを利用しましょう。また、現時点でクラシックアラートを利用している場合にも、新規で設定するアラートから Azure Monitor アラートに順次移行していきましょう。