在 Azure 虛擬桌面中使用 Insights 監視自動調整作業
自動調整可讓您根據排程,擴大或縮小主機集區中的工作階段主機虛擬機器 (VM) 數目,以最佳化部署成本。 與 Azure 虛擬桌面中的 Insights 整合後的自動調整診斷資料可讓您監視調整作業、找出需要修正的問題,以及辨識將調整計畫設定最佳化的機會,以節省成本。
若要深入了解自動調整,請參閱自動調整計劃和範例案例,針對 Azure 虛擬桌面中的 Insights,請參閱啟用 Insights 以監視 Azure 虛擬桌面。
注意
您只能使用具有集區式主機的 Insights 來監視自動調整作業。 針對個人主機集區,您可以將自動調整的診斷記錄傳送至記憶體帳戶或事件中樞。 如需詳細資訊,請參閱 在 Azure 虛擬桌面中設定自動調整的診斷。
必要條件
在使用 Insights 監視自動調整作業之前,您需要:
已指派調整計劃的集區式主機。 不支援個人主機集區。
針對主機集區及相關工作區所設定的 Insights。 若要了解如何設定 Insights,請參閱啟用 Insights 以監視 Azure 虛擬桌面。
取決於您的案例所指派下列角色型存取控制 (RBAC) 角色的 Azure 帳戶:
案例 RBAC 角色 範圍 設定診斷設定 桌面虛擬化參與者 在您的主機集區、工作區和工作階段主機所在的資源群組或訂用帳戶上指派。 檢視和查詢資料 桌面虛擬化讀者
Log Analytics 讀者- 在主機集區、工作區和工作階段主機所在的資源群組或訂用帳戶上指派的桌面虛擬化讀取者。
- 在針對 Azure 虛擬桌面 Insights 使用的任何 Log Analytics 工作區上指派的 Log Analytics 讀取者。11.您也可以建立自訂角色,以縮減 Log Analytics 工作區的指派範圍。 如需詳細資訊,請參閱管理 Log Analytics 工作區的存取權。
設定診斷設定,並驗證 Insights 活頁簿設定
首先,您必須確定診斷設定已設定為將必要記錄從主機集區和工作區傳送至 Log Analytics 工作區。
啟用主機集區的自動調整記錄
除了已傳送至 Log Analytics 工作區的現有主機集區記錄以外,您也需要傳送主機集區的自動調整記錄:
登入 Azure 入口網站。
在搜尋列中輸入 Azure 虛擬桌面,並選取相符的服務項目。
從 [Azure 虛擬桌面概觀] 頁面中,選取 [主機集區],然後選取您想要啟用自動調整記錄的集區式主機集區。
從主機集區概觀頁面中,選取 [診斷設定]。
選取 [新增診斷設定],或選取現有診斷設定來進行編輯。
選取下列類別作為最小值。 如果您已針對此主機集區選取其中一些類別,以作為此診斷設定或現有類別的一部分,請勿再次選取這些類別,否則在儲存診斷設定時會發生錯誤。
- 檢查點
- 錯誤
- 管理
- [連接]
- HostRegistration
- AgentHealthStatus
- 集區主機集區的自動調整記錄
在 [目的地詳細資料] 中,選取 [傳送至 Log Analytics] 工作區。
選取 [儲存]。
驗證工作區記錄
驗證您已將工作區所需的記錄傳送至 Log Analytics 工作區:
從 [Azure 虛擬桌面概觀] 頁面中,選取 [工作區] ,然後選取您正在監視的主機集區相關工作區。
從工作區概觀頁面中,選取 [診斷設定]。
選取 [編輯設定]。
請確保已啟用下列類別。
- 檢查點
- 錯誤
- 管理
- 摘要
針對 目的地詳細資料,請確保您要將資料傳送至與主機集區相同的 Log Analytics 工作區。
若您有進行變更,請選取儲存。
驗證 Insights 活頁簿設定
您必須驗證您的 Insights 活頁簿已針對主機集區正確設定:
從 [Azure 虛擬桌面概觀] 頁面中,選取 [主機集區],然後選取您正在監視的集區主機集區。
如果您是在工作階段主機上使用 Azure 監視器代理程式,請從主機集區概觀頁面上,選取 [Insights],如果您在工作階段主機上使用 Log Analytics 代理程式,則選取 [Insights (舊版)]。
請確保沒有未完成的設定問題。 如果有,您會看到如下列的訊息:
- 未針對工作階段主機設定 Azure 監視器。
- 未設定所選 AVD 主機集區的 Azure 監視器。
- 有工作階段主機未將資料傳送至預期的 Log Analytics 工作區。
您必須完成相關活頁簿中的設定,以解決這些問題。 如需詳細資訊,請參閱啟用 Insights 以監視 Azure 虛擬桌面。 如果沒有任何設定問題時,Insights 應如下方影像所示:
檢視自動調整深入解析
設定診斷設定並驗證 Insights 活頁簿設定之後,您可以檢視自動調整深入解析:
從 [Azure 虛擬桌面概觀] 頁面中,選取 [主機集區],然後選取您想要檢視自動調整深入解析的集區式主機集區。
如果您是在工作階段主機上使用 Azure 監視器代理程式,請從主機集區概觀頁面上,選取 [Insights],如果您在工作階段主機上使用 Log Analytics 代理程式,則選取 [Insights (舊版)]。
從索引標籤列中選取 [自動調整]。 取決於顯示器的寬度,您可能需要選取省略符號 [...] 按鈕,以顯示具有自動調整的完整清單。
Insights 會顯示主機集區自動調整作業的相關資訊,例如在主機集區中,工作階段主機電源狀態隨著時間變更的圖表,以及摘要資訊。
Log Analytics 中自動調整資料的查詢
如需自動調整作業的額外資訊,您可以使用針對 Log Analytics 中的資料執行查詢。 將資料寫入 WVDAutoscaleEvaluationPooled
資料表。 下列各節包含結構描述和一些範例查詢。 若要深入了解如何在 Log Analytics 中執行查詢,請參閱 Log Analytics 教學課程。
WVDAutoscaleEvaluationPooled Schema
下表詳細介紹 WVDAutoscaleEvaluationPooled
資料表的架構,其中包含主機集區上自動調整調整計劃評估的結果。 此資訊包括在工作階段主機上自動調整採取的動作,例如啟動或解除配置這些動作,以及其採取這些動作的原因。 自 Config
開始的項目包含自動調整排程階段的調整計劃設定。 如果 ResultType
值失敗,請使用 CorrelationId
來加入 WVDErrors
資料表,以取得詳細資訊。
名稱 | 類型 | 描述 |
---|---|---|
ActiveSessionHostCount |
int | 接受使用者連線的工作階段主機數目。 |
ActiveSessionHostsPercent |
Double | 自動調整視為使用中的主機集區中工作階段主機百分比。 |
ConfigCapacityThresholdPercent |
Double | 容量閾值百分比。 |
ConfigMinActiveSessionHostsPercent |
Double | 應處於使用中狀態工作階段主機的最小百分比。 |
ConfigScheduleName |
String | 評估中使用的排程名稱。 |
ConfigSchedulePhase |
String | 在評估期間的排程階段。 |
CorrelationId |
String | 為此自動調整評估產生的 GUID。 |
ExcludedSessionHostCount |
int | 從自動調整管理中排除的工作階段主機數目。 |
MaxSessionLimitPerSessionHost |
int | 主機集區上定義的 MaxSessionLimit 值。 此值是每個工作階段主機允許的使用者工作階段數目上限。 |
Properties |
動態 | 其他資訊。 |
ResultType |
String | 此評估事件的狀態。 |
ScalingEvaluationStartTime |
Datetime | 自動調整評估開始時的時間戳記 (UTC)。 |
ScalingPlanResourceId |
String | 自動調整調整計劃的資源識別碼。 |
ScalingReasonMessage |
String | 自動調整動作決定執行,以及其採取這些動作的原因。 |
SessionCount |
int | 使用者工作階段數目;只會包含來自自動調整視為使用中的工作階段主機的使用者工作階段。 |
SessionOccupancyPercent |
Double | 使用者工作階段所佔用的工作階段主機容量百分比。 |
TimeGenerated |
Datetime | 此事件所產生的時間戳記 (UTC)。 |
TotalSessionHostCount |
int | 該主機集區中的工作階段主機數目。 |
UnhealthySessionHostCount |
int | 該錯誤狀態中的工作階段主機數目。 |
資料樣本
下列查詢會傳回自動調整的 10 個最新資料列:
WVDAutoscaleEvaluationPooled
| take 10
WVDErrors 的失敗評估
下列查詢會將資料表 WVDAutoscaleEvaluationPooled
和 WVDErrors
相互關聯,並傳回 WVDErrors
中, 顯示為 false ServiceError
資料行的項目:
下列查詢會傳回失敗的自動調整評估,包括部分失敗的評估。 查詢也會加入 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 監視器記錄資料擷取時間。