今回は、Azure Virtual Desktop (AVD) の環境を構築した後、安定運用のために真っ先に設定しておきたい「AVD分析情報 (Insights)」についてです。接続状況やリソースの稼働率を可視化してくれる強力なツールですが、いざ運用を始めてみると、手間のかかる事に気がつきます。そうです、セッションホストを新規作成した場合、都度、Azure Monitor Agent(AMA)のインストール、データ収集ルール(DCR)への関連付けが必要となる事です。
これをイメージ更新をする度に行うのは、負荷が高く、設定漏れの原因にもなります。
「セッションホストをデプロイした瞬間から、自動的に監視が始まってほしい」
そんな皆様の要望に応えるべく、本記事ではAzure Policyを活用して、セッションホストを AVD分析情報へ自動的に登録・構成する方法について詳しく解説します。
さっそく、構成を見てみましょう!

仕組みは簡単、AzurePolicyを利用して、セッションホストが作成されると自動的に下記を実行します。
①セッションホストのシステム割り当てマネージドIDを有効化
②セッションホストにAzure Monitor Agentをインストール
③セッションホストとデータ収集ルールを紐づける
その後は、Log Analyticsにデータが保存され、AVD分析情報に表示される流れです。
AVD特有の設定として、
① ACGから展開したVMに[Azure Monitor Agent]をインストールできる事
② ACGから展開したVMと[データ収集ルール]を紐づけができる事
③ 収集したログデータを[AVD分析情報]に表示できる事
※ACG=Azure Compute Gallery
全体の流れ
Step1:Log Analytics ワークスペース&データ収集ルールの作成
Step2:Azureポリシー イニシアティブ定義の作成
Step3:Azureポリシー イニシアティブ定義の割り当て
Step1:Log Analytics ワークスペース&データ収集ルールの作成
先ずは、AVD分析情報のログ保管場所となるワークスペースを作成

ここからは、データ収集ルールの作成
【手動作成の場合】
ルール名:※AVD分析情報画面に表示させるための命名規則 microsoft-avdi-<region>

何も設定しなくてOK

[データソースの追加]ー[データソース]ー[パフォーマンスカウンター][イベントログ]を追加

AVD分析情報ワークブックに必要な設定
[パフォーマンス カウンター] ※カスタムにて設定
\Processor Information(_Total)\% Processor Time 30秒
\Memory\% Committed Bytes In Use 30秒
\Memory\Pages/sec 30秒
\Memory\Page Faults/sec 30秒
\LogicalDisk(C:)\Avg. Disk Queue Length 30秒
\LogicalDisk(C:)\Current Disk Queue Length 30秒
\Memory\Available Mbytes 30秒
\PhysicalDisk(*)\Avg. Disk Queue Length 30秒
\PhysicalDisk(*)\Avg. Disk sec/Read 30秒
\PhysicalDisk(*)\Avg. Disk sec/Transfer 30秒
\User Input Delay per Process(*)\Max Input Delay 30秒
\User Input Delay per Session(*)\Max Input Delay 30秒
\LogicalDisk(C:)\% Free Space 60秒
\LogicalDisk(C:)\Avg. Disk sec/Transfer 60秒
[Windows イベント ログ] ※カスタムにて設定
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Admin!*[System[(Level=2 or Level=3 or Level=4 or Level=0)]]
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational!*[System[(Level=2 or Level=3 or Level=4 or Level=0)]]
System!*
Microsoft-FSLogix-Apps/Operational!*[System[(Level=2 or Level=3 or Level=4 or Level=0)]]
Application!*[System[(Level=2 or Level=3)]]
Microsoft-FSLogix-Apps/Admin!*[System[(Level=2 or Level=3 or Level=4 or Level=0)]]
各データソースに対して、ターゲットとなる[Loganalytics]を紐づける

作成完了!

【データソースの追加が面倒な場合】
先にセッションホストを作成する必要があります。
[Azure Virtual Desktop]ー[分析情報]ー[構成ブック] ※診断設定が設定済みの場合

[Azure Virtual Desktop]ー[分析情報]ー[構成ブックを開く] ※診断設定が未設定の場合

この画面でデータ収集ルールを作成します。
ワークスペース:先ほど作成したワークスペースを選択
DCRリソースグループ:今から、作成するDCRが属するリソースグループを選択

データ収集ルールが作成されているのが確認できます。
※AVD分析情報画面に表示させるための命名規則 microsoft-avdi-<region>

Step2:Azureポリシー イニシアティブ定義の作成
[ポリシー]ー[定義]ー[イニシアティブの定義]を選択

名前:※なんでもよい。AVD分析情報にセッションホストを登録する
カテゴリ:※なんでもよい

[ポリシー定義の追加]ー[検索] ※下記3つのポリシーを追加


※[グループ]はスルー
[イニシアティブパラメータの作成]を選択 ※画像通りの設定でOK
名前:データ収集ルールのリソースID 種類:String

名前:Azure Compute Galleryのイメージバージョン 種類:Array

入力またはレビューが必要なパラメーターのみを表示する:チェックを外す
画像通りに変更する。
・Scope Policy to Azure Monitor Agent-Supported Operating Systems:[false]にする事で、カスタムイメージに対してもAzure Monitor Agentをインストールする事ができる。
・Additional Virtrual Machine Images:Compute Galleryのイメージを指定する際に必要
・Data Collection Rule Resource Id:データ収集ルールと紐づけるのに必要
・Scope Policy to Azure Monitor Agent-Supported Operating Systems:[false]
・Optional:List of virtual machine:Compute Galleryのイメージを指定する際に必要

作成した[イニシアティブ定義]が確認できます。

Step3:Azureポリシー イニシアティブ定義の割り当て
[ポリシー]ー[割り当て]ー[イニシアティブの割り当て]を選択

スコープ:サブスクリプションを選択
除外:AVD以外のリソースグループ選択
イニシアティブ定義:※Step2で作成したイニシアティブ定義を選択
割り当て名:Compute Galleryを利用する場合、イメージバージョン単位で作成する事になる

データ収集ルールのリソースID:※Step1で作成したデータ収集ルールのリソースID
Azure Compute Galleryのイメージバージョン:イメージバージョンのリソースID
[“/subscriptions/xx/resourceGroups/xx/providers/Microsoft.Compute/galleries/ACG/images/Win11-25H2/versions/*”] ※末尾はアスタリスクにする事

※データ収集ルールのリソースIDの取得方法

リソースIDが表示されます。

※同様に、Azure Compute GalleryのイメージバージョンのリソースIDを取得
作成済みのセッションホストにも適用したい場合はチェック

このままでいきます。

このままでいきます。

※あとは、作成するだけ
修復タスクにチェックを入れた場合、適用状況を確認できます。
[修復]ー[修復するポリシー]

[修復]ー[修復タスク]

それでは、確認してみましょう!
Azure Policyの設定が反映されているのか、確認ポイントが3つあります。
セッションホストを作成したら、ここを確認しましょう!
確認ポイント①
セッションホストの[システム割り当てマネージドID]が有効になっている

確認ポイント②
セッションホストに[Azure Monitor Agent]がインストールされている

確認ポイント③
データ収集ルールのリソースにセッションホストが登録されている

3つの確認ポイントに問題がなければ、AVD分析情報に[メトリック][イベントログ]が反映されています。
[AVD分析情報]ー[ホストの診断] ※イベントログが確認できる

[AVD分析情報]ー[ホストのパフォーマンス] ※メトリック情報が確認できる

