この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
パーソルプロセス&テクノロジーの佐藤です。
ARM版Windows Virtual Desktop(v2)がGAされ、監視機能がAzure Monitor ( Log Analytics )に統合されたことで、リソース利用状況の可視化を今までより簡易かつ幅広く行うことが可能になりました。
本稿では Log Analytics操作に不慣れな方にも向けて、WVD診断情報の可視化手順を簡単にご紹介していきます。
概要
Azure PortalのLog Analytics機能では、Azure Monitorログ内に収集されたデータをクエリ言語を通じて対話的に分析・視覚化することができます。
Azure Monitorのログデータは複数の列から成るテーブルに形成され、カテゴリ別にまとめられた各テーブルからユーザーは必要なデータを抜き出して分析に用いることができます。
この機能の構成にはLog Analytics共同作成者以上の権限が必要です。
WVDカテゴリで主に利用可能なテーブルは以下の通りです。
テーブル | 概要 |
WVDFeeds | WVDクライアント上でリソースがユーザーにフィードされるログ |
WVDManagements | WVDオブジェクトに対する変更、作成、削除等の操作ログ |
WVDConnections | ユーザーによる接続開始、接続完了、接続解除のログ |
WVDCheckpoints | アクティビティ内の各サービスごとのステップ (認証、負荷分散等) |
WVDErrors | アクティビティ内でユーザーに発生した問題 |
WVDHostRegistrations | WVDサービスへのセッションホストの登録ログ |
また、セッションホストVMの死活状況やCPU等パフォーマンスの監視にはVirtual MachineカテゴリのHeartbeatテーブルやPerfテーブルを利用することができます。
準備
Log Analyticsの使用にあたって、事前にLog Analyticsワークスペースを作成し、そのワークスペースに対して各WVDリソースの診断設定を有効化し、データソースにセッションホストVMを登録する必要があります。
また、パフォーマンス監視にあたっては、ワークスペースの詳細設定においてパフォーマンスカウンターを構成する必要があります。
詳細設定>Data>Windows Performance Counterから論理ディスクやネットワークインターフェイス、ターミナルサービスのパフォーマンスカウンターを設定しておきましょう。
クエリ発行・視覚化
ログクエリ画面からクエリを発行していきます。
画面左のテーブルタブに各カテゴリにグループ化されたテーブル一覧が表示されます。
クエリ画面にテーブル名を入力して実行するとそのテーブルのすべての列の上位データが表示されます。これでテーブルの構造を把握し、パイプラインでwhere句やproject句でデータを抽出・整形したり、join句でテーブルを結合しsummarize句でデータを要約したりして必要な情報を引き出します。
例1:死活監視
Heartbeatテーブルには約1分ごとに仮想マシンから発信されたハートビート応答の情報が存在します。下記の例は過去48時間のハートビートを1時間ごとに集計し、仮想マシンごとに時間を昇順にソートして結果を返すクエリとその結果です。
なお、summarize句で返された集計結果はグラフで可視化することができます。
結果のグラフタブをクリックするか、render句でグラフ形式を指定してクエリを発行します。
例2:合計セッション時間のユーザー別内訳
WVDConnectionsテーブルには、ユーザーとセッションホストの接続アクティビティのログが存在します。
下記の例は、過去1日間の接続情報に関し、join句で同じセッションの接続開始と終了の時刻をまとめ、その差分を分単位に集計した結果をユーザーごとに要約して結果を円グラフに表しています。
例3:セッションホスト別CPU使用率の推移
PerfテーブルにはLog Analyticsワークスペースに登録したパフォーマンスカウンター(CPU,メモリ,ディスク,ネットワーク等)の値が存在します。
CounterNameで使用するパフォーマンスカウンターを選択し、値が入るCounterValueを集計します。
下記の例は仮想マシンごとのCPU使用率のパフォーマンスを15分ごとの時系列で要約し、時系列チャートに表しています。
ダッシュボード共有
集計結果はAzure Portalのダッシュボード上で共有することができます。
ログクエリ画面のメニューから[…]をクリックし、「ダッシュボードにピン留め」を選択して共有ダッシュボードの新規作成・ピン留めを行うことができます。
(おまけ)Power BIに発行
ログクエリはPower BIにインポートしてレポートを作成することもできます。
エクスポート>Power BI へエクスポートをクリックするとインポート用クエリファイルがダウンロードされるのでPower BI Desktopで空クエリを開き、ダウンロードしたクエリをコピーするとリアルタイムのログデータをPower BI上で加工することができるようになります。
レポート作成にはPower BI Desktopを利用可能なライセンスが必要になりますが、テーブルから直感的にビジュアルを作成でき、TeamsやWebページ埋め込みなど幅広い方法でレポートを共有することができるため、ログデータを組織の広い範囲で活用したい場合はPower BIの利用を検討することをお勧めします。
まとめ
以上、WVDに関するログデータの加工方法を簡単にご紹介いたししました。
得にマルチセッションでWVDを利用している場合、ユーザーのセッション管理やセッションホストVMのパフォーマンス監視の必要性は増大します。
Log Analyticsでのログデータ加工はWVD運用の大きな助けになることと思います。
本稿が皆様のWVD運用とデータ活用の一助になれば幸いです。
参考
Microsoft Docs: KQLリファレンス
https://docs.microsoft.com/ja-jp/azure/data-explorer/kusto/query/
Microsoft Docs: WVD-診断機能にLog Analyticsを使用する
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/diagnostics-log-analytics
Microsoft Docs: パフォーマンスカウンター
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-performance-counters
Microsoft Docs: ログデータをPower BIにエクスポートする
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/powerbi