本記事は BeeX Advent Calendar 2025 の 14日目 の記事です。
はじめに
ブログ記事を書いたこともきっかけもなかったのですが、
社内メンバーから Advent Calendar 2025 に誘っていただいたので、
せっかくの機会と思い Qiita アカウントの作成、記事を執筆してみることにしました。
目新しい情報は少ないかもしれないですが、
誰か一人でもこの記事を読んで参考になったと思ってくれる人がいれば嬉しいです。
どんな人を対象としているか
- とりあえず実務で Azure Virtual Desktop(以下 AVD)を運用することになった
- なんとなく Loganalitycs で何ができるのか理解したい
あくまで初心者向けに
「こんなことができますよ」という紹介記事になりますので、 高度な監視運用の構築などはご自身で実施いただければと思います。
設定
Microsoft 公式ドキュメントを参考にしていただければ問題なく実施できると思います。
まずは Loganalitycs ワークスペースにログを送ります。
ホストプールを選択し、診断設定の追加を行います

必要な項目を入力し保存します。
今回はすべて選択しておきます。

有効化した後の Loganalitycs ワークスペースにはテーブルが作成されます。
(実際にログが出力され始めると対象のテーブルが作成されます)
有効化設定の画面とテーブルの関係は以下の通りです。
有効化画面とテーブルの名前が少し異なります。
| 有効化画面の表記 | 出力テーブル名 |
|---|---|
| Checkpoint | WVDCheckpoints |
| Error | WVDErrors |
| Management | WVDManagement |
| Connection | WVDConnections |
| HostRegistration | WVDHostRegistrations |
| AgentHealthStatus | WVDAgentHealthStatus |
| Network Data Logs | WVDConnectionNetworkData |
| Session Host Management Activity Logs | WVDFeeds |
| Autoscale logs for pooled host pools | WVDAutoscaleEvaluationPooled |
| Connection Graphics Data Logs Preview | WVDConnectionGraphicsDataPreview |
KQL例
実際のログは KQL を利用して取得することができますので、
実務で実際にそのまま使える参考クエリを 2 つ紹介したいと思います。
1. セッションホストごとの最終 Heartbeat が何日前かを知りたい
どんな時に知りたいか
- 登録トークンの期限漏れを防ぎたい
AVD は 90 日に一度起動しないと利用できなくなってしまいます。
詳しくは以下の日本マイクロソフト Windows Support チームによる
サポート情報 Blog に記載があります。
参考:https://jpwinsup.github.io/blog/2023/04/11/RemoteDesktopService/AVD/expirationofavd/
クエリ例(セッションホストごとの最終 Heartbeat 一覧)
WVDAgentHealthStatus
| summarize LastHeartBeat = max(LastHeartBeat) by SessionHostName
| extend DaysSinceLastHeartBeat = datetime_diff("day", now(), LastHeartBeat)
| project SessionHostName, LastHeartBeat, DaysSinceLastHeartBeat
| order by DaysSinceLastHeartBeat desc
こちらの結果を利用して、90 日に近いセッションホストについては起動するなどの運用の際の参考情報になるかと思います。
2. 接続実績のあるホスト一覧
どんな時に知りたいか
- 一定期間内で実際に使われたセッションホストだけ欲しい(棚卸し)
- セッションホスト(VM)は起動しているのに 誰も接続していないセッションホストの確認(一覧表示されない VMが対象)
クエリ例(一定期間内に接続があったホスト一覧)
WVDConnections
| where TimeGenerated > ago(xxd) //確認したい日付を入力
| where State == "Connected"
| distinct SessionHostName
まとめ
今回は一部のログの活用例しか紹介することはできませんでしたが、
必要に応じて複数テーブルを組み合わせることで 柔軟な情報が取得できます。
さいごに
今回はあくまで AVD のログのみ を対象とした内容になるため、AVD の観点でのログ調査に使用できます。
AVD ログだけでは、以下のような VM / OS 観点の監視 は 基本的には不可となります。
- CPU / メモリ / ディスク枯渇
- OS のイベントログ(エラー、再起動理由など)
- 稼働時間(UpTime)やプロセス異常
そのため、VM まで含めてより詳細に監視したい場合は
Azure Monitor Agent(AMA) や VM insights などの導入が必要になります。
参考:https://learn.microsoft.com/ja-jp/azure/virtual-machines/monitor-vm