Azure Virtual Desktop (クラシック) の診断機能に Log Analytics を使用する
大事な
このコンテンツは、Azure Resource Manager Azure Virtual Desktop オブジェクトをサポートしていない Azure Virtual Desktop (クラシック) に適用されます。 Azure Resource Manager Azure Virtual Desktop オブジェクトを管理しようとしている場合は、この記事
Azure Virtual Desktop には、管理者が 1 つのインターフェイスを介して問題を特定できる診断機能が用意されています。 この機能は、Azure Virtual Desktop ロールが割り当てられているユーザーがサービスを使用するたびに診断情報をログに記録します。 各ログには、アクティビティに関係していた Azure Virtual Desktop ロール、セッション中に表示されるエラー メッセージ、テナント情報、およびユーザー情報に関する情報が含まれます。 診断機能は、ユーザーアクションと管理アクションの両方のアクティビティログを作成します。 各アクティビティ ログは、次の 3 つの主要なカテゴリに分類されます。
- フィード サブスクリプション アクティビティ: ユーザーが Microsoft リモート デスクトップ アプリケーションを介してフィードに接続しようとしたとき。
- 接続アクティビティ: ユーザーが Microsoft リモート デスクトップ アプリケーションを介してデスクトップまたは RemoteApp に接続しようとしたとき。
- 管理アクティビティ: 管理者がシステムで管理操作を実行する場合 (ホスト プールの作成、アプリケーション グループへのユーザーの割り当て、ロールの割り当ての作成など)。
診断ロール サービス自体が Azure Virtual Desktop の一部であるため、Azure Virtual Desktop に到達しない接続は診断結果に表示されません。 Azure Virtual Desktop 接続の問題は、ユーザーがネットワーク接続の問題を経験している場合に発生する可能性があります。
Log Analytics を使用する理由
Log Analytics を使用して、シングル ユーザーのトラブルシューティングを超える診断データを Azure クライアントで分析することをお勧めします。 VM パフォーマンス カウンターを Log Analytics に取り込むことができるので、デプロイの情報を収集するためのツールが 1 つあります。
作業を開始する前に
診断機能で Log Analytics を使用する前に、ワークスペースを作成
ワークスペースを作成したら、「Windows コンピューターを Azure Monitor に接続する」の手順に従って、次の情報を取得します。
- ワークスペース ID
- ワークスペースの主キー
この情報は、セットアップ プロセスの後半で必要になります。
診断データをワークスペースにプッシュする
Azure Virtual Desktop テナントからワークスペースの Log Analytics に診断データをプッシュできます。 この機能は、ワークスペースをテナントにリンクしてテナントを初めて作成するときにすぐに設定できます。また、後で既存のテナントで設定することもできます。
新しいテナントの設定中にテナントを Log Analytics ワークスペースにリンクするには、次のコマンドレットを実行して、TenantCreator ユーザー アカウントを使用して Azure Virtual Desktop にサインインします。
Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com
新しいテナントではなく既存のテナントをリンクする場合は、代わりに次のコマンドレットを実行します。
Set-RdsTenant -Name <TenantName> -AzureSubscriptionId <SubscriptionID> -LogAnalyticsWorkspaceId <String> -LogAnalyticsPrimaryKey <String>
Log Analytics にリンクするすべてのテナントに対してこれらのコマンドレットを実行する必要があります。
手記
テナントの作成時に Log Analytics ワークスペースをリンクしない場合は、代わりに New-RdsTenant
コマンドレットを実行します。
診断イベントを送信するための周期
完了すると、診断イベントが Log Analytics に送信されます。
クエリの例
次のクエリ例は、診断機能がシステム内で最も頻繁に発生するアクティビティのレポートを生成する方法を示しています。
この最初の例は、サポートされているリモート デスクトップ クライアントを持つユーザーによって開始される接続アクティビティを示しています。
WVDActivityV1_CL
| where Type_s == "Connection"
| join kind=leftouter (
WVDErrorV1_CL
| summarize Errors = makelist(pack('Time', Time_t, 'Code', ErrorCode_s , 'CodeSymbolic', ErrorCodeSymbolic_s, 'Message', ErrorMessage_s, 'ReportedBy', ReportedBy_s , 'Internal', ErrorInternal_s )) by ActivityId_g
) on $left.Id_g == $right.ActivityId_g
| join kind=leftouter (
WVDCheckpointV1_CL
| summarize Checkpoints = makelist(pack('Time', Time_t, 'ReportedBy', ReportedBy_s, 'Name', Name_s, 'Parameters', Parameters_s) ) by ActivityId_g
) on $left.Id_g == $right.ActivityId_g
|project-away ActivityId_g, ActivityId_g1
次のクエリ例は、テナントの管理者による管理アクティビティを示しています。
WVDActivityV1_CL
| where Type_s == "Management"
| join kind=leftouter (
WVDErrorV1_CL
| summarize Errors = makelist(pack('Time', Time_t, 'Code', ErrorCode_s , 'CodeSymbolic', ErrorCodeSymbolic_s, 'Message', ErrorMessage_s, 'ReportedBy', ReportedBy_s , 'Internal', ErrorInternal_s )) by ActivityId_g
) on $left.Id_g == $right.ActivityId_g
| join kind=leftouter (
WVDCheckpointV1_CL
| summarize Checkpoints = makelist(pack('Time', Time_t, 'ReportedBy', ReportedBy_s, 'Name', Name_s, 'Parameters', Parameters_s) ) by ActivityId_g
) on $left.Id_g == $right.ActivityId_g
|project-away ActivityId_g, ActivityId_g1
Log Analytics へのデータ送信を停止する
既存のテナントから Log Analytics へのデータ送信を停止するには、次のコマンドレットを実行し、空の文字列を設定します。
Set-RdsTenant -Name <TenantName> -AzureSubscriptionId <SubscriptionID> -LogAnalyticsWorkspaceId <String> -LogAnalyticsPrimaryKey <String>
データの送信を停止するすべてのテナントに対してこのコマンドレットを実行する必要があります。
次の手順
診断機能で識別できる一般的なエラー シナリオを確認するには、「の問題を特定して診断する」