前言
簡單來說,最近必須要在地端資料中心內,透過 Windows Server 2019 建立 Microsoft RDS (Remote Desktop Service) 運作環境的需求。從下列的 RDS 架構圖來看,眼尖的朋友應該已經發現,這看起來並不像地端運作的 RDS 架構圖? 事實上,從 Windows Server 2016 版本之後,RDS 架構已經在 Azure 公有雲上快速建立且方便維護,因此可以從文件中看出是以說明 Azure 公有雲環境為主。
那麼,在地端資料中心內,將 RDS
架構建立完成後,需要一個簡單的監控機制,例如,需要觀看 50 台
RDSH (Remote Desktop Session Host) 的系統資源使用量,以及
RDCB (Remote Desktop Connection Broker)
的使用者 Session 連線數量。
在短時間沒有辦法快速整合其它監控工具的情況下,只能自己花點時間透過 PowerShell
去抓取了,所以本文筆記就出現了。😎
下列是本文實作相關檔案的簡要說明:
- Check_RDS_Resource_to_HTML.ps1: 本文實作的主體,會載入 RDSResources.psm1 成為 PowerShell Script Module,以及處理抓取 RDCB 內所有的使用者 Session 連線數量,和最後把監控數據轉換成 HTML 檔案。
- RDSResources.psm1: 抓取指定的 Windows Server 的 CPU / Memory / Disk 系統資源使用量,也就是抓取本文中 RDCB, RDWeb, RDSH 角色主機的系統資源工作負載情況。值得注意的是 Module 檔案的附檔名,必須要是「.psm1」否則屆時會無法順利載入。
- style.css: 最後把監控數據轉換成 HTML 檔案時,搭配 CSS 美化一下。
執行結果
下列便是執行 Check_RDS_Resource_to_HTML.ps1 之後得到的 HTML
檔案內容。在目前的 RDS 實作環境架構中,主要有 3 個 RDS
Collections,首先抓取每個 RDS Collections 的使用者 Session
連線數量並加總,最後則是抓取擔任 RDCB、RDWeb、和 50 台 RDSH
角色主機,Windows Server 2019 的系統資源工作負載情況。