次の方法で共有


Azure Virtual Desktop の Insights を使用して自動スケーリング操作を監視する

自動スケーリングを使用すると、ホスト プール内のセッション ホスト仮想マシン (VM) をスケジュールに応じてスケールアップまたはスケールダウンして、デプロイ コストを最適化できます。 Azure Virtual Desktop の Insights と統合された自動スケーリング診断データにより、スケーリング操作を監視し、修正が必要な問題を特定し、スケーリング プラン構成を最適化してコストを削減する機会を確認することができます。

自動スケーリングの詳細については、「Azure Virtual Desktop での自動スケーリング プランとシナリオ例」を参照してください。Azure Virtual Desktop の Insights の場合は、「Azure Virtual Desktop を監視する Insights を有効にする」を参照してください。

Note

自動スケーリング操作は、プールされたホスト プールを持つ Insight でのみ監視できます。 個人用ホスト プールの場合は、「Azure Virtual Desktop の自動スケーリングの診断を設定する」を参照してください。

前提条件

Insights を使用して自動スケーリング操作を監視できるようになる前に、次のことが必要です。

  • スケーリング プランが割り当てられたプールされたホスト プール。 個人用ホスト プールはサポートされていません。

  • 自分のホスト プールに合わせて構成された Insights とそれに関連するワークスペース。 Insights を構成する方法については、「Azure Virtual Desktop を監視する Insights を有効にする」を参照してください。

  • シナリオに応じて、次のロールベースのアクセス制御 (RBAC) ロールが割り当てられた Azure アカウント:

    シナリオ RBAC のロール 範囲
    診断設定を構成する デスクトップ仮想化共同作成者 ホスト プール、ワークスペース、およびセッション ホスト用のリソース グループまたはサブスクリプションに割り当て済み。
    データを表示してクエリを実行する デスクトップ仮想化閲覧者

    Log Analytics Reader
    ホスト プール、ワークスペース、およびセッション ホストが存在するリソース グループまたはサブスクリプションに割り当てられたデスクトップ仮想化閲覧者。

    Azure Virtual Desktop の分析情報で使用されるいずれかの Log Analytics ワークスペースに割り当てられた Log Analytics 閲覧者。1

    1.カスタム ロールを作成して、Log Analytics ワークスペースでの割り当てのスコープを減らすこともできます。 詳細については、「Log Analytics ワークスペースへのアクセスを管理する」を参照してください。

診断設定を構成し、Insights ブック構成を確認する

まず、診断設定がホスト プールとワークスペースから Log Analytics ワークスペースに必要なログを送信するように構成されていることを確認する必要があります。

ホスト プールの自動スケーリング ログ

既に Log Analytics ワークスペースに送信している既存のホスト プールのログに加えて、ホスト プールの自動スケーリング ログも送信する必要があります:

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

  2. 検索バーに「Azure Virtual Desktop」と入力し、一致するサービス エントリを選択します。

  3. Azure Virtual Desktop の概要ページから [ホスト プール] を選択し、自動スケーリング ログを有効にするプールされたホスト プールを選択します。

  4. ホスト プールの概要ページから、[診断設定] を選択します。

  5. [診断設定の追加] を選択するか、既存の診断設定を選択して編集します。

  6. 最小要件として次のカテゴリを選択します。 この診断設定または既存の診断設定の一部として、このホスト プールに対してこれらのカテゴリのいくつかを既に選択している場合は、それらをもう一度選択しないでください。それ以外の場合は、診断設定を保存するとエラーが表示されます。

    • チェックポイント
    • エラー
    • 管理
    • 接続
    • HostRegistration
    • AgentHealthStatus
    • プールされたホスト プールの自動スケーリング ログ
  7. [宛先の詳細] の場合は、[Log Analytics ワークスペースに送信する] を選択します。

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

ワークスペースのログを確認する

ワークスペースに必要なログが既に Log Analytics ワークスペースに送信されていることを確認します:

  1. Azure Virtual Desktop の概要ページから、[ワークスペース] を選択し、監視しているホスト プールの関連ワークスペースを選択します。

  2. ワークスペースの概要ページから、[診断設定] を選択します。

  3. [設定の編集] を選択します。

  4. 次のカテゴリが有効になっていることを確認してください。

    • チェックポイント
    • エラー
    • 管理
    • フィード
  5. [宛先の詳細] では、ホスト プールと同じ Log Analytics ワークスペースにデータを送信していることを確認します。

  6. 変更を行うには、保存を選択します。

Insights ブックの構成を確認する

Insights ワークブックがホスト プール用に正しく構成されていることを確認する必要があります:

  1. Azure Virtual Desktop の概要ページから [ホスト プール] を選択し、監視しているプールされたホスト プールを選択します。

  2. ホスト プールの概要ページから、セッション ホストで Azure Monitor エージェントを使用している場合は Insights を選択し、セッション ホストで Log Analytics エージェントを使用している場合は Insights (レガシ) を選択します。

  3. 未処理の構成の問題がないことを確認します。 ある場合は、次のようなメッセージが表示されます。

    • セッション ホストに対して Azure Monitor が構成されていません
    • Azure Monitor は選択した AVD ホスト プール用に構成されていません
    • 想定される Log Analytics ワークスペースにデータを送信していないセッション ホストがあります

    これらの問題を解決するには、関連するブックの構成を完了する必要があります。 詳細については、「Azure Virtual Desktop を監視する Insights を有効にする」を参照してください。 構成に問題がなければ、Insights は次のイメージのようになります。

    ホスト プールの Insights の概要を示すスクリーンショット。

自動スケーリングの分析情報を表示する

診断設定を構成し、Insights ワークブックの構成を確認したら、自動スケーリングの分析情報を表示できます:

  1. Azure Virtual Desktop の概要ページから [ホスト プール] を選択し、自動スケーリングの分析情報を表示するプールされたホスト プールを選択します。

  2. ホスト プールの概要ページから、セッション ホストで Azure Monitor エージェントを使用している場合は Insights を選択し、セッション ホストで Log Analytics エージェントを使用している場合は Insights (レガシ) を選択します。

  3. タブの行から [自動スケーリング] を選択します。 ディスプレイの幅によっては、[...] ボタンを選択して、[自動スケーリング] で完全な一覧を表示する必要がある場合があります。

    自動スケーリングを含む完全な一覧を表示することを選択するために楕円が選択されたホスト プールの Insights の概要タブを示すスクリーンショット。

  4. Insights には、ホスト プール内のセッション ホストの電源状態の経時変化のグラフや概要情報など、ホスト プールの自動スケーリング操作に関する情報が表示されます。

    ホスト プールの Insights の自動スケーリング タブを示すスクリーンショット。

Log Analytics の自動スケーリング データに対するクエリ

自動スケーリングの操作に関する追加情報については、Log Analytics のデータに対してクエリの実行を使用できます。 データは WVDAutoscaleEvaluationPooled テーブルに書き込まれます。 次のセクションには、スキーマとサンプル クエリの例が含まれます。 Log Analytics でのクエリの実行方法を学習するには、「Log Analytics のチュートリアル」を参照してください。

WVDAutoscaleEvaluationPooled スキーマ

次の表は、WVDAutoscaleEvaluationPooled テーブルのスキーマの詳細を説明したものです。この表には、ホスト プールでの自動スケーリング プランの評価の結果が含まれます。 この情報には、セッション ホストに対して自動スケーリングが行われたアクション (ホストの起動や解放など) と、そのアクションを実行した理由が含まれます。 Config で始まるエントリには、自動スケーリング スケジュール フェーズのスケーリング プランの構成値が含まれます。 ResultType の値が [失敗] の場合、CorrelationId を使用して WVDErrors テーブルに結合して詳細を取得します。

名前 種類 説明
ActiveSessionHostCount int ユーザー接続を承認するセッション ホストの数。
ActiveSessionHostsPercent 倍精度浮動小数点型 自動スケーリングによってアクティブとみなされるホスト プール内のセッション ホストの割合。
ConfigCapacityThresholdPercent 倍精度浮動小数点型 容量のしきい値 (%)。
ConfigMinActiveSessionHostsPercent 倍精度浮動小数点型 アクティブである必要があるセッション ホストの最小割合 (%)。
ConfigScheduleName String 評価に使用したスケジュールの名前。
ConfigSchedulePhase String 評価時のスケジュール段階。
CorrelationId String この自動スケーリングの評価のために生成された GUID。
ExcludedSessionHostCount int 自動スケーリング管理から除外されたセッション ホストの数。
MaxSessionLimitPerSessionHost int ホスト プールで定義されている MaxSessionLimit の値。 この値は、セッション ホストごとに許可されるユーザー セッションの最大数です。
Properties 動的 追加情報。
ResultType String この評価イベントの状態。
ScalingEvaluationStartTime DateTime 自動スケール評価が開始されたときのタイムスタンプ (UTC)。
ScalingPlanResourceId String 自動スケーリング プランのリソース ID。
ScalingReasonMessage String 自動スケールが実行することを決定したアクションとその理由。
SessionCount int ユーザー セッション数。自動すけーリングによってアクティブとみなされたセッション ホストからのユーザー セッションのみが含まれます。
SessionOccupancyPercent 倍精度浮動小数点型 ユーザー セッションによって占有されているセッション ホスト容量の割合 (%)。
TimeGenerated DateTime このイベントが生成されたときのタイムスタンプ (UTC)。
TotalSessionHostCount int ホスト プール内のセッション ホストの数。
UnhealthySessionHostCount int 障害が発生した状態のセッション ホストの数。

データのサンプル

次のクエリでは、自動スケーリングの最新 10 行のデータが返されます。

WVDAutoscaleEvaluationPooled
| take 10

WVDErrors で失敗した評価

次のクエリはテーブル WVDAutoscaleEvaluationPooledWVDErrors を関連付け、WVDErrorsServiceError 列が false であるエントリを返します。

次のクエリは、部分的に失敗したものも含めて、失敗した自動スケール評価を返します。 また、このクエリは WVDErrors に結合して、利用可能な場合はより詳細な障害の詳細を提供します。 WVDErrors の対応するエントリは、ServiceError が false である結果のみを含みます:

WVDAutoscaleEvaluationPooled
| where ResultType != "Succeeded"
| join kind=leftouter WVDErrors
    on CorrelationId
| order by _ResourceId asc, TimeGenerated asc, CorrelationId, TimeGenerated1 asc

開始、割り当て解除、強制ログオフ操作

次のクエリは、ホスト プール、スケジュール名、スケジュール段階、および日ごとに、セッション ホストの開始、セッション ホストの割り当て解除、およびユーザー セッションの強制ログオフの操作の試行回数を返します。

WVDAutoscaleEvaluationPooled
| where ResultType == "Succeeded"
| extend properties = parse_json(Properties)
| extend BeganStartVmCount = toint(properties.BeganStartVmCount)
| extend BeganDeallocateVmCount = toint(properties.BeganDeallocateVmCount)
| extend BeganForceLogoffOnSessionHostCount = toint(properties.BeganForceLogoffOnSessionHostCount)
| summarize sum(BeganStartVmCount), sum(BeganDeallocateVmCount), sum(BeganForceLogoffOnSessionHostCount) by _ResourceId, bin(TimeGenerated, 1d), ConfigScheduleName, ConfigSchedulePhase
| order by _ResourceId asc, TimeGenerated asc, ConfigScheduleName, ConfigSchedulePhase asc

最大セッション占有率とアクティブ セッション ホスト

次のクエリは、ホスト プール、スケジュール名、スケジュール段階、および日ごとの最大セッション占有率、セッション数、アクティブ セッション ホストの割合 (%)、およびアクティブ セッション ホスト数を返します。

WVDAutoscaleEvaluationPooled
| where ResultType == "Succeeded"
| summarize max(SessionOccupancyPercent), max(SessionCount), max(ActiveSessionHostsPercent), max(ActiveSessionHostCount) by _ResourceId, bin(TimeGenerated, 1d), ConfigScheduleName, ConfigSchedulePhase
| order by _ResourceId asc, TimeGenerated asc, ConfigScheduleName, ConfigSchedulePhase asc

収集後にログ データが利用可能になるまでの時間に関する詳細については、「Azure Monitor のログ データ インジェスト時間」を参照してください。