この記事では、Azure Monitor ログと Log Analytics を使用して、Azure Site Recovery によってレプリケートされたマシンを監視する方法について説明します。
Azure Monitor ログは、アクティビティ ログとリソース ログを他の監視データと共に収集するログ データ プラットフォームを提供します。 Azure Monitor ログ内で、Log Analytics を使用してログ クエリを記述し、テストすることや、ログ データを対話形式で分析することができます。 ログの結果を可視化してクエリを実行したり、監視対象データに基づいてアクションを実行するようにアラートを構成したりすることが可能です。
Site Recovery の場合は、Azure Monitor ログを使用して、次の操作を行うことができます。
- Site Recovery の正常性と状態を監視する。 たとえば、レプリケーションの正常性、テスト フェールオーバーの状態、Site Recovery のイベント、保護対象マシンの RPO (目標復旧ポイント)、ディスク (またはデータ) の変更量を監視することができます。
- Site Recovery のアラートを設定する。 たとえば、マシンの正常性、テスト フェールオーバーの状態、Site Recovery ジョブの状態に対するアラートを構成することができます。
Azure Monitor ログでは、 Azure から Azure への レプリケーションおよび VMware 仮想マシン/物理サーバー から Azure へのレプリケーションに対する Site Recovery の使用がサポートされます。
注
チャーン データ ログを取得し、VMware と物理マシンのレート ログをアップロードするには、プロセス サーバーに Microsoft 監視エージェントをインストールする必要があります。 このエージェントからワークスペースに、複製を行うコンピューターのログが送信されます。 この機能は、モビリティ エージェントのバージョン 9.30 以降でのみ利用できます。
前提条件
次のものが必要です。
- Recovery Services コンテナー内で保護された少なくとも 1 つのマシン。
- Site Recovery のログを格納するための Log Analytics ワークスペース。 ワークスペースの設定に関する説明を参照してください。
- Log Analytics におけるログ クエリの記述、実行、分析の方法に関する基本的な理解。 詳細情報。
開始する前に 、監視に関する一般的な質問 を確認してください。
Azure Site Recovery で使用できるイベント ログ
Azure Site Recovery には、次のリソース固有のテーブルとレガシ テーブルが用意されています。 各イベントによって、サイトの回復関連成果物の特定のセットに関する詳細なデータが提供されます。
リソース固有のテーブル:
レガシーテーブル:
- Azure Site Recovery イベント
- Azure Site Recovery レプリケートされた項目
- Azure Site Recovery レプリケーション統計
- Azure Site Recovery ポイント
- Azure Site Recovery のレプリケーション データ アップロード速度
- Azure Site Recovery で保護されたディスクのデータ変更頻度
- Azure Site Recovery でレプリケートされた項目の詳細
ログを送信するように Site Recovery を構成する
ボールトで、[診断設定]>[診断設定を追加する] を選択してください。
[診断設定] で名前を入力し、[Log Analytics に送信] チェック ボックスをオンにします。
Azure Monitor ログのサブスクリプションと Log Analytics ワークスペースを選択します。
トグルで [Azure Diagnostics] を選択します。
ログの一覧から、AzureSiteRecovery で始まるログをすべて選択します。 [OK] をクリックします。
以後、選択したワークスペース内のテーブル (AzureDiagnostics) に Site Recovery のログが取り込まれます。
チャーンを送信し、レート ログをアップロードするように、プロセス サーバーで Microsoft 監視エージェントを構成する
オンプレミスの VMware および物理マシンのデータ チャーン レート情報とソース データアップロードレート情報をキャプチャできます。 この機能を有効にするには、プロセス サーバーに Microsoft 監視エージェントをインストールします。
[Log Analytics] ワークスペースに移動し、[詳細設定] を選択します。
[ 接続されたソース] を選択し、[ Windows サーバー] を選択します。
Windows エージェント (64 ビット) をプロセス サーバーにダウンロードします。
取得したワークスペース ID とキーを指定し、エージェントのインストールを完了します。
インストールが完了したら、Log Analytics ワークスペースに移動し、[ レガシ エージェント管理] を選択します。 [データ] ページに移動し、[Windows パフォーマンス カウンター] を選択します。
[+] を選択して、300 秒のサンプリング間隔を使用して次の 2 つのカウンターを追加します。
- ASRAnalytics(*)\SourceVmChurnRate
- ASRAnalytics(*)\SourceVmThrpRate
チャーン率とアップロード率のデータがワークスペースに流れ始めます。
現在、次の Site Recovery カウンターは検索できません。
- ASRAnalytics(*)\SourceVmChurnRate
- ASRAnalytics(*)\SourceVmThrpRate
ただし、名前を完全に貼り付けることで追加できます。
注
現時点では、これらのカウンターを検索することはできません。 ただし、完全な名前をコピーして貼り付けることで、それらを追加できます。
- SourceVmThrpRate は、ソースのネットワーク スループット レートを示します。
- SourceVmChurnRate は、ソース仮想マシンのディスク上のデータ変更率を示します。
ログのクエリを実行する - 例
ログからデータを取得するには、Kusto 照会言語で記述されたログ クエリを使用します。 このセクションでは、Site Recovery の監視で一般的に使用されるクエリの例をいくつか紹介します。
注
一部の例では、replicationProviderName_s を A2A に設定しています。 この値は、Site Recovery を使用してセカンダリ Azure リージョンにレプリケートされる Azure 仮想マシンを取得します。 これらの例では、Site Recovery を使用して Azure にレプリケートされるオンプレミスの VMware 仮想マシンまたは物理サーバーを取得する場合は、 A2A を InMageRcm に置き換えることができます。
レプリケーションの正常性を照会する
このクエリでは、保護されているすべての Azure 仮想マシンの現在のレプリケーション正常性の円グラフが作成されます。 グラフは、正常性を 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 仮想マシンの円グラフが作成されます。 このグラフでは、仮想マシンが実行されているモビリティ エージェントのバージョンによって、仮想マシンが分割されます。
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 仮想マシンの棒グラフが作成されます。 このグラフでは、目標復旧ポイント (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 の「ジョブ」を照会する
このクエリでは、過去 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 仮想マシンのテスト フェールオーバーの状態を円グラフにプロットします。
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 仮想マシンのテスト フェールオーバーの状態を表にプロットします。
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 を照会する
このクエリは、直近 72 時間における特定の Azure 仮想マシン (ContosoVM123) の RPO を追跡した傾向グラフをプロットします。
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 仮想マシンのデータ変更率 (チャーン) とアップロード率を照会する
このクエリでは、データ変更率 (1 秒あたりの書き込みバイト数) とデータアップロード率を表す特定の Azure 仮想マシン (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
VMware または物理マシンのデータ変更率 (チャーン) とアップロード率を照会する
注
これらのログをフェッチするようにプロセス サーバーで監視エージェントを設定します。 監視エージェントの構成手順はこちらを参照してください。
このクエリによって、複製アイテム 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 仮想マシンのサマリー テーブルをプロットします。 仮想マシン名、レプリケーションと保護の状態、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 仮想マシンと物理サーバーのサマリー テーブルをプロットします。 マシン名、レプリケーションと保護の状態、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 のアラートを設定できます。 ログ アラートの設定に関する詳細情報を参照してください。
注
一部の例では、replicationProviderName_s を A2A に設定しています。 この値は、セカンダリ Azure リージョンにレプリケートされる Azure 仮想マシンのアラートを設定します。 それらの例で、Azure にレプリケートされたオンプレミスの VMware 仮想マシンまたは物理サーバーのアラートを設定したい場合は、A2A を InMageRcm に置き換えてください。
複数のマシンがクリティカル状態
レプリケートされた Azure 仮想マシンのうち、クリティカル状態になった仮想マシンが 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 仮想マシンがクリティカル状態になった場合のアラートを設定します。
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 仮想マシンで 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 仮想マシンで 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 日を超える仮想マシンが 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 日を超過
特定の仮想マシンでテスト フェールオーバーが最後に成功してからの経過日数が 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 分に設定して、最後の日のエラーを確認します。
次のステップ
Site Recovery のビルトインの監視機能に関する説明を参照してください。