Azure Virtual Desktop の Log Analytics に診断データを送信する

重要

この内容は、Azure Resource Manager Azure Virtual Desktop オブジェクトを含む Azure Virtual Desktop に適用されます。 Azure Resource Manager オブジェクトを含まない Azure Virtual Desktop (クラシック) を使用している場合は、こちらの記事を参照してください。

Azure Virtual Desktop では、他の多くの Azure サービスと同様に、監視やアラートに Azure Monitor が使用されます。 これにより、管理者は 1 つのインターフェイス経由で問題を特定できます。 サービスでは、ユーザーと管理者の両方のアクションに対してアクティビティ ログが作成されます。 各アクティビティ ログは、次のカテゴリに分類されます。

カテゴリ 説明
管理アクティビティ API または PowerShell を使用して Azure Virtual Desktop のオブジェクトを変更しようとした場合に、成功するかどうか。
フィード ユーザーがワークスペースを正常にサブスクライブできるかどうか。
つながり ユーザーがサービスへの接続を開始および完了する時点。
ホスト登録 接続時にセッション ホストが正常にサービスに登録されたかどうか。
エラー 特定のアクティビティでユーザーに問題が発生する場所。
チェックポイント アクティビティの有効期間内に到達した特定のステップ。
エージェントの正常性状態 各セッション ホストにインストールされている Azure Virtual Desktop エージェントの正常性と状態を監視します。
ネットワーク 推定ラウンド トリップ時間などの詳細を監視するための、ユーザー セッションの平均ネットワーク データ。
接続グラフィックス Azure Virtual Desktop グラフィックス ストリームからのパフォーマンス データ。
セッション ホスト管理アクティビティ セッション ホストの管理アクティビティ。
Autoscale スケーリング操作。

診断ロール サービス自体が Azure Virtual Desktop の一部であるため、Azure Virtual Desktop に到達しない接続は診断結果に表示されません。 Azure Virtual Desktop 接続の問題は、ユーザーにネットワーク接続の問題が発生しているときに発生する可能性があります。

Azure Monitor を使用すると、Azure Virtual Desktop のデータを分析して、仮想マシン (VM) のパフォーマンス カウンターを確認できます。すべて、同じツール内で行われます。 この記事では、ご自身の Azure 仮想デスクトップ環境で診断を有効にする方法について説明します。

Note

Azure で VM を監視する方法については、「Azure Monitor を使用して Azure 仮想マシンを監視する」を参照してください。 また、セッション ホストでのユーザー エクスペリエンスをより深く理解するために、必ず Azure Virtual Desktop の分析情報の用語集に関するページを確認してください。

前提条件

Log Analytics で Azure Virtual Desktop を使用するには、次のものが必要です。

診断データをワークスペースにプッシュする

お使いの Azure Virtual Desktop オブジェクトからワークスペースの Log Analytics に診断データをプッシュできます。 この機能は、最初にオブジェクトを作成するときに、すぐに設定できます。

新しいオブジェクトに Log Analytics を設定するには:

  1. Azure portal にサインインして、 [Azure Virtual Desktop] に移動します。

  2. ログとイベントをキャプチャするオブジェクト (ホスト プール、アプリケーション グループ、ワークスペースなど) に移動します。

  3. 画面の左側にあるメニューで、 [診断設定] を選択します。

  4. 画面の右側に表示されるメニューで、 [診断設定を追加する] を選択します。

    [診断設定] ページに表示されるオプションは、編集しているオブジェクトの種類に応じて異なります。

    たとえば、アプリケーション グループの診断を有効にすると、チェックポイント、エラー、および管理を構成するためのオプションが表示されます。 ワークスペースでは、これらのカテゴリによって、ユーザーがアプリの一覧にサブスクライブした時点を追跡するためのフィードが構成されます。 診断設定の詳細については、「Azure でリソース ログとメトリックを収集するための診断設定を作成する」を参照してください。

    重要

    監視する Azure Resource Manager オブジェクトごとに、診断を有効にすることを忘れないでください。 診断が有効になると、データはアクティビティで利用可能になります。 最初のセットアップ後は、数時間かかる場合があります。

  5. 設定構成の名前を入力して、 [Log Analytics への送信] を選択します。 使用する名前には、スペースを含めず、Azure の名前付け規則に準拠する必要があります。 ログの一部として、チェックポイント、エラー、管理など、ログ分析に追加したいすべてオプションを選択できます。

  6. [保存] を選択します。

注意

Log Analytics には、データを Event Hubs にストリーミングしたり、ストレージ アカウント内にアーカイブしたりするオプションが用意されています。 この機能の詳細については、「イベント ハブへの Azure 監視データのストリーム配信」および「Azure リソース ログをストレージ アカウントにアーカイブする」を参照してください。

Log Analytics にアクセスする方法

Azure portal または Azure Monitor 上で Log Analytics ワークスペースにアクセスできます。

Log Analytics ワークスペース上で Log Analytics にアクセスする

  1. Azure portal にサインインします。

  2. [Log Analytics ワークスペース] を探します。

  3. [サービス] 下で、 [Log Analytics ワークスペース] を選択します。

  4. 一覧から、お使いの Azure Virtual Desktop オブジェクト用に構成したワークスペースを選択します。

  5. お使いのワークスペースを表示し、 [ログ] を選択します。 [検索] 機能を使用して、メニュー リストをフィルター処理できます。

Azure Monitor 上で Log Analytics にアクセスする

  1. Azure portal にサインインします。

  2. [モニター] を検索して選択します。

  3. [ログ] を選択します。

  4. ログ記録のページ上にある手順に従って、クエリのスコープを設定します。

  5. クエリ診断の準備が整いました。 すべての診断テーブルに、"WVD" プレフィックスがあります。

Note

Azure Monitor ログ内に格納されているテーブルの詳細については、「Azure Monitor のデータ リファレンス」を参照してください。 Azure Virtual Desktop に関連するすべてのテーブルの先頭には "WVD" が付いています。

診断イベントの送信頻度

診断イベントは、完了時に Log Analytics に送信されます。

接続アクティビティに対しては、Log Analytics では以下の中間状態でのみ報告を行います。

  • 開始済み: ユーザーがリモート デスクトップ クライアントでアプリまたはデスクトップを選択して接続したとき。
  • 接続済み: アプリまたはデスクトップがホストされている VM にユーザーが正常に接続したとき。
  • 完了: ユーザーまたはサーバーが、アクティビティが行われたセッションを切断したとき。

クエリの例

Azure Monitor Log Analytics UI を使用したサンプル クエリへのアクセス:

  1. Log Analytics ワークスペースにアクセスし、 [ログ] を選択します。 クエリ UI の例が自動的に表示されます。
  2. フィルターを [カテゴリ] に変更します。
  3. [Azure Virtual Desktop] を選択して、使用可能なクエリを確認します。
  4. [実行] を選択して、選択したクエリを実行します。

サンプル クエリ インターフェイスの詳細については、「Azure Monitor Log Analytics の保存済みクエリ」を参照してください。

次のクエリ一覧では、1 人のユーザーの接続情報または問題を確認できます。 これらのクエリは、Log Analytics クエリ エディターで実行できます。 クエリごとに、userupn を検索するユーザーの UPN に置き換えます。

1 人のユーザーのすべての接続を検索するには:

WVDConnections
|where UserName == "userupn"
|take 100
|sort by TimeGenerated asc, CorrelationId

ユーザーの 1 日ごとの接続回数を確認するには:

WVDConnections
|where UserName == "userupn"
|take 100
|sort by TimeGenerated asc, CorrelationId
|summarize dcount(CorrelationId) by bin(TimeGenerated, 1d)

ユーザーによるセッション継続時間を確認するには:

let Events = WVDConnections | where UserName == "userupn" ;
Events
| where State == "Connected"
| project CorrelationId , UserName, ResourceAlias , StartTime=TimeGenerated
| join (Events
| where State == "Completed"
| project EndTime=TimeGenerated, CorrelationId)
on CorrelationId
| project Duration = EndTime - StartTime, ResourceAlias
| sort by Duration asc

特定のユーザーのエラーを確認するには:

WVDErrors
| where UserName == "userupn"
|take 100

他のユーザーに対して特定のエラーが発生したかどうかを確認するには:

WVDErrors
| where CodeSymbolic =="ErrorSymbolicCode"
| summarize count(UserName) by CodeSymbolic

Note

  • ユーザーが完全なデスクトップ セッションを起動した場合、セッション内でのユーザーによるアプリの使用は WVDCheckpoints テーブルのチェックポイントとして追跡されません。
  • ResourcesAlias テーブル内の WVDConnections 列は、ユーザーが完全なデスクトップと公開済みアプリのどちらに接続しているかを示します。 この列には、接続中に開いた最初のアプリのみが表示されます。 ユーザーが開いた公開済みアプリは、WVDCheckpoints 内で追跡されます。
  • WVDErrors テーブルには、管理エラー、ホスト登録の問題、およびユーザーがアプリまたはデスクトップの一覧をサブスクライブしている間に発生したその他の問題が表示されます。
  • WVDErrors テーブルは、管理タスクによって解決できる問題を特定するのに役立ちます。 ServiceError の値は、これらの種類の問題の場合、常に false である必要があります。 ServiceErrortrue の場合は、問題を Microsoft にエスカレートする必要があります。 エスカレートするエラーの CorrelationID をお伝えください。
  • 接続の問題をデバッグするとき、接続イベントが完了した場合でもクライアント情報が見つからない場合があります。 これは、WVDConnectionsWVDCheckpoints テーブルに適用されます。

次のステップ