Azure Monitor ログを使用した Site Recovery の監視

この記事では、Azure Site Recovery によってレプリケートされたマシンを Azure Monitor ログLog Analytics を使って監視する方法を説明します。

Azure Monitor ログは、アクティビティ ログとリソース ログを他の監視データと共に収集するログ データ プラットフォームです。 Azure Monitor ログ内で、Log Analytics を使用してログ クエリを記述し、テストすることや、ログ データを対話形式で分析することができます。 ログの結果を可視化してクエリを実行したり、監視対象データに基づいてアクションを実行するようにアラートを構成したりすることが可能です。

Site Recovery では、Azure Monitor ログを次の目的に使用できます。

  • Site Recovery の正常性と状態を監視する。 たとえば、レプリケーションの正常性、テスト フェールオーバーの状態、Site Recovery のイベント、保護対象マシンの RPO (目標復旧ポイント)、ディスク (またはデータ) の変更量を監視することができます。
  • Site Recovery のアラートを設定する。 たとえば、マシンの正常性、テスト フェールオーバーの状態、Site Recovery ジョブの状態に対するアラートを構成することができます。

Site Recovery での Azure Monitor ログの使用は、Azure から Azure へのレプリケーションと VMware VM/物理サーバーから Azure へのレプリケーションでサポートされます。

Note

チャーン データ ログを取得し、VMware と物理マシンのレート ログをアップロードするには、プロセス サーバーに Microsoft 監視エージェントをインストールする必要があります。 このエージェントからワークスペースに、複製を行うコンピューターのログが送信されます。 この機能は、モビリティ エージェントのバージョン 9.30 以降でのみ利用できます。

前提条件

次のものが必要です。

  • 少なくとも 1 つのマシンが Recovery Services コンテナー内で保護されている。
  • Site Recovery のログを格納するための Log Analytics ワークスペース。 ワークスペースの設定に関する説明を参照してください。
  • Log Analytics におけるログ クエリの記述、実行、分析の方法に関する基本的な理解。 詳細については、こちらを参照してください

最初に、監視についての一般的な質問を確認しておくことをお勧めします。

ログを送信するように Site Recovery を構成する

  1. コンテナーで、[診断設定]>[診断設定を追加する] の順に選択します。

    [診断設定を追加する] オプションを示すスクリーンショット。

  2. [診断設定] で名前を指定し、 [Log Analytics への送信] ボックスをオンにします。

  3. Azure Monitor ログのサブスクリプションと Log Analytics ワークスペースを選択します。

  4. トグルで [Azure Diagnostics] を選択します。

  5. ログの一覧から、AzureSiteRecovery で始まるログをすべて選択します。 [OK] をクリックします。

    診断設定画面のスクリーンショット。

以後、選択したワークスペース内のテーブル (AzureDiagnostics) に Site Recovery のログが取り込まれます。

チャーンを送信し、レート ログをアップロードするように、プロセス サーバーで Microsoft 監視エージェントを構成する

オンプレミスで、VMware/物理マシンのデータ チャーン レート情報とソース データ アップロード レート情報を取得できます。 これを有効にするには、Microsoft 監視エージェントをプロセス サーバーにインストールする必要があります。

  1. [Log Analytics] ワークスペースに移動し、[詳細設定] を選択します。

  2. [接続されたソース] ページを選択し、[Windows サーバー] を選択します。

  3. Windows エージェント (64 ビット) をプロセス サーバーにダウンロードします。

  4. ワークスペース ID とキーを取得する

  5. TLS 1.2 を使用するようにエージェントを構成する

  6. 取得したワークスペース ID とキーを指定し、エージェントのインストールを完了します

  7. インストールが完了したら、Log Analytics ワークスペースに移動し、[レガシ エージェントの管理] を選択します。 [データ] ページに移動し、[Windows パフォーマンス カウンター] を選択します。

  8. [+] を選択して、300 秒のサンプリング間隔を使用して次の 2 つのカウンターを追加します。

    • ASRAnalytics(*)\SourceVmChurnRate
    • ASRAnalytics(*)\SourceVmThrpRate

チャーンおよびアップロード レート データがワークスペースに送信されます。

ログのクエリを実行する - 例

ログからデータを取得するには、Kusto 照会言語で記述されたログ クエリを使用します。 このセクションでは、Site Recovery の監視で一般的に使用されるクエリの例をいくつか紹介します。

Note

一部の例では、replicationProviderName_sA2A に設定しています。 この場合、Site Recovery を使用してセカンダリ Azure リージョンにレプリケートされた Azure VM が取得されます。 それらの例で、Site Recovery を使用して Azure にレプリケートされたオンプレミスの VMware VM または物理サーバーを取得したい場合は、A2AInMagRcm に置き換えてください。

レプリケーションの正常性を照会する

このクエリは、保護対象のすべての Azure VM について、最新のレプリケーションの正常性を次の 3 つの状態に分けて円グラフにプロットします。ノーマル、警告、またはクリティカルです。

AzureDiagnostics  
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s  
| project name_s , replicationHealth_s  
| summarize count() by replicationHealth_s  
| render piechart   

Mobility Service のバージョンを照会する

このクエリは、Site Recovery を使ってレプリケートされた Azure VM を、実行されている Mobility エージェントのバージョンごとに分けて円グラフにプロットします。

AzureDiagnostics  
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s  
| project name_s , agentVersion_s  
| summarize count() by agentVersion_s  
| render piechart 

RPO 時間を照会する

このクエリは、Site Recovery を使ってレプリケートされた Azure VM を、回復ポイントの目標 (RPO) ごとに分けて棒グラフにプロットします。15 分未満、15 分から 30 分まで、30 分超です。

AzureDiagnostics 
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)  
| extend RPO = case(rpoInSeconds_d <= 900, "<15Min",   
rpoInSeconds_d <= 1800, "15-30Min", ">30Min")  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s  
| project name_s , RPO  
| summarize Count = count() by RPO  
| render barchart 

Site Recovery を使用してレプリケートされた Azure VM の横棒グラフを示すスクリーンショット。

Site Recovery ジョブを照会する

このクエリは、(ディザスター リカバリーのあらゆるシナリオを対象に) 直近 72 時間以内にトリガーされたすべての Site Recovery ジョブとその完了状態を取得します。

AzureDiagnostics  
| where Category == "AzureSiteRecoveryJobs"  
| where TimeGenerated >= ago(72h)   
| project JobName = OperationName , VaultName = Resource , TargetName = affectedResourceName_s, State = ResultType  

Site Recovery イベントを照会する

このクエリは、(ディザスター リカバリーのあらゆるシナリオを対象に) 直近 72 時間以内に発生したすべての Site Recovery イベントとその重大度を取得します。

AzureDiagnostics   
| where Category == "AzureSiteRecoveryEvents"   
| where TimeGenerated >= ago(72h)   
| project AffectedObject=affectedResourceName_s , VaultName = Resource, Description_s = healthErrors_s , Severity = Level  

テスト フェールオーバーの状態を照会する (円グラフ)

このクエリは、Site Recovery を使ってレプリケートされた Azure VM のテスト フェールオーバーの状態を円グラフにプロットします。

AzureDiagnostics  
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)  
| where isnotempty(failoverHealth_s) and isnotnull(failoverHealth_s)  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s  
| project name_s , Resource, failoverHealth_s  
| summarize count() by failoverHealth_s  
| render piechart 

テスト フェールオーバーの状態を照会する (表)

このクエリは、Site Recovery を使ってレプリケートされた Azure VM のテスト フェールオーバーの状態を表にプロットします。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)   
| where isnotempty(failoverHealth_s) and isnotnull(failoverHealth_s)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| project VirtualMachine = name_s , VaultName = Resource , TestFailoverStatus = failoverHealth_s 

マシンの RPO を照会する

このクエリでは、特定の Azure VM (ContosoVM123) の RPO の直近 72 時間の推移をグラフで表示します。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where TimeGenerated > ago(72h)  
| where isnotempty(name_s) and isnotnull(name_s)   
| where name_s == "ContosoVM123"  
| project TimeGenerated, name_s , RPO_in_seconds = rpoInSeconds_d   
| render timechart 

特定の Azure VM の RPO を追跡する傾向グラフのスクリーンショット。

Azure VM のデータ変更率 (チャーン) とアップロード率を照会する

このクエリによって、特定の Azure VM (ContosoVM123) の傾向グラフが描画されます。そのグラフは、データ変更率 (秒あたりの書き込みバイト数) とデータ アップロード率を表わします。

AzureDiagnostics   
| where Category in ("AzureSiteRecoveryProtectedDiskDataChurn", "AzureSiteRecoveryReplicationDataUploadRate")   
| extend CategoryS = case(Category contains "Churn", "DataChurn",   
Category contains "Upload", "UploadRate", "none")  
| extend InstanceWithType=strcat(CategoryS, "_", InstanceName_s)   
| where TimeGenerated > ago(24h)   
| where InstanceName_s startswith "ContosoVM123"   
| project TimeGenerated , InstanceWithType , Churn_MBps = todouble(Value_s)/1048576   
| render timechart  

特定の Azure VM の傾向グラフのスクリーンショット。

VMware または物理マシンのデータ変更率 (チャーン) とアップロード率を照会する

Note

これらのログをフェッチするようにプロセス サーバーで監視エージェントを設定します。 監視エージェントの構成手順はこちらを参照してください。

このクエリによって、複製アイテム win-9r7sfh9qlru の特定のディスク disk0 の傾向グラフが描画されます。そのグラフは、データ変更率 (1 秒あたりの書き込みバイト数) とデータ アップロード率を表わします。 Recovery Services コンテナーの複製アイテムの [ディスク] ブレードで、ディスクの名前を見つけることができます。 クエリで使用するインスタンス名は、この例のように、マシンの DNS 名の末尾に _ とディスク名を付けたものになります。

Perf
| where ObjectName == "ASRAnalytics"
| where InstanceName contains "win-9r7sfh9qlru_disk0"
| where TimeGenerated >= ago(4h) 
| project TimeGenerated ,CounterName, Churn_MBps = todouble(CounterValue)/5242880 
| render timechart

プロセス サーバーによってこのデータが 5 分おきに Log Analytics ワークスペースにプッシュされます。 これらのデータ ポイントは、5 分間に計算された平均を表わします。

ディザスター リカバリーのサマリーを照会する (Azure から Azure)

このクエリは、セカンダリ Azure リージョンにレプリケートされた Azure VM のサマリー テーブルをプロットします。 VM 名、レプリケーションと保護の状態、RPO、テスト フェールオーバーの状態、モビリティ エージェントのバージョン、アクティブなレプリケーション エラー、ソースの場所が示されます。

AzureDiagnostics 
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| project VirtualMachine = name_s , Vault = Resource , ReplicationHealth = replicationHealth_s, Status = protectionState_s, RPO_in_seconds = rpoInSeconds_d, TestFailoverStatus = failoverHealth_s, AgentVersion = agentVersion_s, ReplicationError = replicationHealthErrors_s, SourceLocation = primaryFabricName_s 

ディザスター リカバリーのサマリーを照会する (VMware または物理サーバー)

このクエリは、Azure にレプリケートされた VMware VM と物理サーバーのサマリー テーブルをプロットします。 マシン名、レプリケーションと保護の状態、RPO、テスト フェールオーバーの状態、モビリティ エージェントのバージョン、アクティブなレプリケーション エラー、関連するプロセス サーバーが示されます。

AzureDiagnostics  
| where replicationProviderName_s == "InMageRcm"   
| where isnotempty(name_s) and isnotnull(name_s)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| project VirtualMachine = name_s , Vault = Resource , ReplicationHealth = replicationHealth_s, Status = protectionState_s, RPO_in_seconds = rpoInSeconds_d, TestFailoverStatus = failoverHealth_s, AgentVersion = agentVersion_s, ReplicationError = replicationHealthErrors_s, ProcessServer = processServerName_g  

アラートを設定する - 例

Azure Monitor のデータに基づいて Site Recovery のアラートを設定できます。 ログ アラートの設定に関する詳細情報を参照してください。

Note

一部の例では、replicationProviderName_sA2A に設定しています。 この場合、セカンダリ Azure リージョンにレプリケートされた Azure VM のアラートが設定されます。 それらの例で、Azure にレプリケートされたオンプレミスの VMware VM または物理サーバーのアラートを設定したい場合は、A2AInMageRcm に置き換えてください。

複数のマシンがクリティカル状態

レプリケートされた Azure VM のうち、クリティカル状態になった VM が 20 を超えた場合のアラートを設定します。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where replicationHealth_s == "Critical"  
| where isnotempty(name_s) and isnotnull(name_s)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| summarize count() 

このアラートでは、しきい値20 に設定します。

1 つのマシンがクリティカル状態

レプリケートされた特定の Azure VM がクリティカル状態になった場合のアラートを設定します。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where replicationHealth_s == "Critical"  
| where name_s == "ContosoVM123"  
| where isnotempty(name_s) and isnotnull(name_s)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| summarize count()  

このアラートでは、しきい値1 に設定します。

複数のマシンが RPO を超過

20 個を超える Azure VM で RPO が 30 分を超過した場合のアラートを設定します。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)   
| where rpoInSeconds_d > 1800  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| project name_s , rpoInSeconds_d   
| summarize count()  

このアラートでは、しきい値20 に設定します。

1 つのマシンが RPO を超過

1 つの Azure VM で RPO が 30 分を超過した場合のアラートを設定します。

AzureDiagnostics   
| where replicationProviderName_s == "A2A"   
| where isnotempty(name_s) and isnotnull(name_s)   
| where name_s == "ContosoVM123"  
| where rpoInSeconds_d > 1800  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| project name_s , rpoInSeconds_d   
| summarize count()  

このアラートでは、しきい値1 に設定します。

複数のマシンのテスト フェールオーバーが 90 日を超過

テスト フェールオーバーが最後に成功してからの経過日数が 90 日を超える VM が 20 個を超えた場合のアラートを設定します。

AzureDiagnostics  
| where replicationProviderName_s == "A2A"   
| where Category == "AzureSiteRecoveryReplicatedItems"  
| where isnotempty(name_s) and isnotnull(name_s)   
| where lastSuccessfulTestFailoverTime_t <= ago(90d)   
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| summarize count()  

このアラートでは、しきい値20 に設定します。

1 つのマシンのテスト フェールオーバーが 90 日を超過

特定の VM でテスト フェールオーバーが最後に成功してからの経過日数が 90 日を超えた場合のアラートを設定します。

AzureDiagnostics  
| where replicationProviderName_s == "A2A"   
| where Category == "AzureSiteRecoveryReplicatedItems"  
| where isnotempty(name_s) and isnotnull(name_s)   
| where lastSuccessfulTestFailoverTime_t <= ago(90d)   
| where name_s == "ContosoVM123"  
| summarize hint.strategy=partitioned arg_max(TimeGenerated, *) by name_s   
| summarize count()  

このアラートでは、しきい値1 に設定します。

Site Recovery ジョブの失敗

Site Recovery のすべてのシナリオを対象に、直近 24 時間に Site Recovery ジョブ (このケースでは再保護ジョブ) が失敗した場合のアラートを設定します。

AzureDiagnostics   
| where Category == "AzureSiteRecoveryJobs"   
| where OperationName == "Reprotect"  
| where ResultType == "Failed"  
| summarize count()  

このアラートでは、しきい値を 1 に、期間を 1,440 分に設定して、直近 24 時間の失敗をチェックします。

次のステップ

Site Recovery のビルトインの監視機能に関する説明を参照してください。