在XenDesktop中,Director爲管理員提供了整個平臺的監控和健康狀態的信息,讓管理員方便的瞭解Citrix的平臺的運行狀態以及實時發生的故障。這些監控數據從哪兒來?在XenDesktop的先前版本中,Director中的大多數數據都是通過直接訪問Broker Service API來檢索的。使用此API的缺點是此服務不包括對使用的歷史信息的檢索,即只能檢索實時會話信息。如果管理員需要向以前的監控組件Edgesight那樣檢索歷史數據,比如管理員可能想知道目前有多少會話處於活動狀態,以及昨天有多少個會話登錄使用過,僅僅是Broker Service API是無法滿足的,特別是XenApp/XenDesktop 7.x在去掉監控組件Edgesight的情況下,監控功能就實在雞肋。那麼在XenApp/XenDesktop 7.x中就需要使用新的服務來提高對歷史數據的檢索。鑑於此,XenApp/XenDesktop 7.x提供了一項新的服務,用來檢索有關會話和連接的歷史信息。這個新服務稱爲Monitor Service。這個服務承載着訪問歷史數據的功能,而且爲了達到便捷和易於使用,因此,選擇了易於使用的API技術:OData API,該API是一個通用的API標準,可以從許多不同的平臺以及接口來訪問。
一、Broker Service API可以檢索那些數據
Citrix Broker Service主要用於對XenApp/XenDesktop進行管理,Citrix平臺中將XenApp/XenDesktop 7.x的資源按照對象進行劃分,Citrix Broker Service通過對這些資源進行管理和互連關係的調度,從而實現對Citrix平臺資源的管理。其對象和互連關係如下圖所示:
以下部分將介紹各個對象、對象的職責、特徵和基本屬性。
連接
連接實體提供與虛擬化平臺的管理點建立連接所需的詳細信息。這些詳細信息用於提供電源管理和所需的置備功能。連接定義:
連接的身份,包括名稱和內部 ID 值 (GUID)。
類型 — XenServer、SCVMM 或 vCenter。
用戶名 — 用於連接到虛擬機管理程序的帳戶名稱。
密碼 — 用於連接到虛擬機管理程序的密碼。
連接的狀態以及是否可以與虛擬機管理程序通信。
虛擬機管理程序提出的電流警報。
密碼設置後無法讀回,並且以加密形式存儲在數據庫中。
在每種平臺定義的模式中存在這些實體中的一個實體,但是,在運行時會與虛擬化平臺建立多個連接,以服務於 XenDesktop 部署的要求。這些連接可供多個資源實體共享。
資源
注意:此對象僅適用於使用 Machine Creation Services (MCS) 或 Provisioning Services (PVS) 創建新計算機。
此設置定義虛擬化平臺中供產品使用的一組資源。利用此設置,管理員可以限制部署以便僅使用平臺所提供的資源的子集,並且可以針對不同的目的定義不同的資源集合。這樣可以控制站點內置備的計算機的存儲和網絡使用情況。資源實體定義:
網絡 — 向虛擬化平臺置備新計算機時可以使用的網絡(對於 PVS,是指流網絡)。
存儲 — 向虛擬化平臺置備新計算機時使用的存儲。
如果要使用置備機制,必須至少爲每個連接對象定義一個資源設置。多個資源設置可以鏈接到同一個連接。連接詳細信息由連接實體提供。
管理員
此設置定義可以管理產品的人員。產品可以有多個管理員,每個管理員負責產品中的不同功能集合。管理員定義:
定義管理員的 AD 帳戶,定義爲管理員的名稱或 SID 值。可以是單個用戶或安全組。
管理員具有的權限(即在哪些作用域上具有何種角色)。
計算機
計算機代表站點內可以用於向用戶提供會話的虛擬機或物理計算機。計算機定義:
計算機的身份,如 SAM 名稱、DNS 名稱、主機(虛擬機管理程序)名稱、IP 地址、SID、許可證 ID 等。
計算機的狀態,包括電源狀態、註冊狀態、個人虛擬磁盤狀態、負載指數等。摘要狀態值將這些狀態彙總到一個狀態值中。
關於計算機環境和配置的信息,如已安裝操作系統和 Citrix 組件的版本號,包括計算機的“功能級別”。
有關計算機最近活動的數據,如最近一次取消註冊的原因、最近一次在計算機上執行電源操作、最近一次連接故障等。
用於控制計算機的啓用/禁用/終止行爲的維護模式和“WindowsConnectionSetting”狀態。
用於已分配桌面案例的計算機可見用戶資源設置,如圖標、已發佈名稱等。
對於多會話計算機(服務器操作系統計算機):關於會話運行的彙總信息,如活動會話的數量、掛起會話的數量等。
與已分配計算機關聯的“標記”值。
置備映像信息,如主映像的路徑,用於創建計算機的置備方案、以及計算機是否具有在下次重新啓動時掛起的更新映像。
大多數計算機值由 Broker Service SDK 展示,但是有些項目也通過其他服務展示,如 Machine Creation Service (MCS)。基於每個計算機顯示的其他值繼承自計算機所關聯的目錄或交付組(如有),或者來自用於創建計算機的方案。例如,通過多種因素(如物理還是虛擬、靜態還是隨機、用戶更改的保留方式及其他)的組合在目錄級別定義的計算機類型。對於單會話計算機(桌面操作系統計算機):計算機上正在運行的會話(如有)的信息也與計算機關聯。這包括連接的用戶身份、會話狀態、使用的協議等。如果將計算機定義爲屬於某個目錄,計算機僅能存在於此模式下;不能存在於此概念之外。
目錄
目錄定義通常(並非始終)應該相同的一組計算機。單個部署中可以存在多個目錄,從而可以針對不同的目的構建和存儲不同的計算機集合。目錄定義:
目錄類型,通過以下屬性值定義:
計算機的置備方法(MCS、PVS 或手動)
將目錄中的計算機分配給用戶的方式:永久分配給用戶的靜態方式或在用戶每次請求資源時進行分配的隨機方式
計算機是單會話(桌面操作系統計算機)還是多會話(服務器操作系統計算機)
計算機是物理計算機還是虛擬機
處理用戶對計算機所做更改的方式,是在用戶註銷後丟棄、保留在計算機本地還是使用個人虛擬磁盤
計算機的主映像
內存大小和 CPU 數
個人虛擬磁盤大小、驅動器盤符和分配百分比
AD 帳戶命名方案和創建計算機的 OU,以及已經創建帳戶的列表
在目錄級別展示的信息還包括在目錄中使用或提供的計算機的使用情況值。
交付組
交付組提供用於向最終用戶提供桌面和/或應用程序的計算機集合的詳細信息。多個交付組可以鏈接到同一個目錄,從而可以根據不同用戶集合的要求採用各種方式來分發目錄中的計算機。交付組定義:
組中的計算機的分配類型,指示計算機是在多個用戶之間共享(隨機)還是永久分配給一個或多個用戶(靜態),以及計算機是單會話(桌面操作系統)計算機還是多會話(服務器操作系統)計算機。
組的交付類型,指示組是爲用戶僅提供應用程序、僅提供桌面,還是既提供應用程序又提供桌面。
控制組中的計算機電源管理的設置,包括:
將每週不同日期的哪個時間視爲“高峯”時間
對於隨機/未分配計算機,在每週不同日期的不同時間保持運行的計算機的數量,包括緩衝大小
針對上述設置評估每日時間的時區
是否以及如何對分配的計算機進行電源管理
是否以及如何在觸發事件(如用戶斷開連接或註銷)後關閉或掛起計算機
是否將計算機視爲被其上運行的會話損壞,以及是否在每次使用後強制重新啓動以將其返回到全新的已知狀態
與交付組關聯的設置還包括一些功能設置(如 Profile Management)和 Storefront URL 設置,分別定義爲“計算機配置”對象並與一個或多個交付組關聯。
應用程序
此對象提供要向最終用戶提供的無縫(即浮動窗口,與桌面分開)應用程序的詳細信息。通常,每個應用程序與單個交付組關聯,但是如有需要,應用程序定義可以在多個組之間共享。應用程序既可以在遠程計算機上運行並顯示在本地客戶端桌面上,也可以安裝並運行在本地客戶端計算機上,而窗口覆蓋在遠程桌面上。應用程序定義:
應用程序的類型,“HostedOnDesktop”或“InstalledOnClient”。
對於 HostedOnDesktop 應用程序:
將在 VDA 計算機上運行的應用程序初始可執行文件的路徑,以及應用程序啓動時要應用的命令行參數(如有)。
(可選)具有應用程序訪問權限的特定用戶集合,是具有交付組訪問權限的用戶的子集。
將應用到應用程序進程的應用程序特定設置,包括 CPU 優先級、應用程序是否應該等待創建代理打印機,等等。
指示應用程序的圖標將從客戶端設備獲取的標誌
指示要隨爲應用程序提供的參數一起採取額外安全措施的標誌
桌面
在 XenDesktop 7 中,會話對象和計算機對象取代了桌面對象(用於描述計算機及計算機上的會話),這二者已擴展到可以執行桌面對象的工作。
會話
此對象提供受站點控制的計算機上運行的 Windows 會話的詳細信息。會話可以是通過 XenDesktop 或 XenApp 啓動的會話,也可以是通過其他方式創建的會話,如用戶通過控制檯或 RDP 直接登錄到計算機上。
會話定義:
會話運行所在的計算機的身份,包括計算機 DNS 名稱、IP 地址、NetBios 名稱、SID 等。
運行會話的用戶的身份,包括 SAM 名稱、UPN、SID 等。
代理會話連接的用戶的身份,包括 SAM 名稱、SID 等。
用於連接到會話的端點客戶端計算機的身份,包括設備名稱、IP 地址、ID。
用於請求啓動的計算機的身份,即執行啓動的 Web 服務器。這包括名稱和 IP 地址。
用於充當會話連接網關的計算機的身份,包括計算機 DNS 名稱、IP 地址。
會話中的重要事件的詳細信息,包括開始時間、最近連接到會話的時間、最近代理到會話的時間,等。
有關最近會話創建和會話連接的各種持續時間,包括代理會話的時間、創建會話的時間,等。
會話的當前狀態,包括會話的總體狀態、ICA 連接是否安全、正在使用的協議。
運行會話的計算機的當前狀態,包括整體摘要狀態、電源狀態,等。
有關建立會話連接的詳細信息,如會話是通過代理連接還是自主連接,有效的會話上下文“智能訪問”標記。
會話是否“隱藏”。當用戶啓動應用程序或桌面時,如果會話遇到某些類型的問題,會話將變爲隱藏。
在會話中執行的代理應用程序的列表。
會話 SDK 對象還提供來自相關計算機、交付組和目錄 SDK 對象的信息。此信息包括身份信息、基本配置和狀態信息。
Controller
此對象提供站點中的單個 Delivery Controller 計算機的詳細信息。大部分數據是來自運行站點的動態狀態數據,而不是配置設置。Controller 顯示:
每個 Controller 上處於活動狀態的“站點服務”。
Controller 組件的版本。
Controller 計算機的身份,如完全限定的 DNS 名稱、SAM 名稱、SID 等。
Controller 計算機的操作系統類型和版本。
當前的 Controller 和服務狀態,以及最近的活動時間。
向 Controller 註冊的計算機的數量。
爲了站點服務定位目的與 Controller 關聯的虛擬機管理程序連接。
大多數 Controller 值由 Broker Service SDK 展示,但是有些項目通過其他服務展示,如 Machine Creation Service。
站點
站點是 XenDesktop 站點的頂層邏輯表示(從其中運行的配置服務角度)。站點包含許可信息、站點元數據和站點名稱等。
XenDesktop 安裝只有一個配置站點實例。站點對象具有以下屬性:
名稱
控制器 — 站點中的控制器列表
數據庫 — 站點使用的數據庫列表
DefaultIconUid
LicenseInformation
元數據
作用域
此對象定義指定的對象分組,分組中的對象對以各個角色爲基礎進行控制的對象具有管理員權限。多種類型的 SDK 對象可以具有直接與其關聯的作用域,如目錄、交付組、連接、資源等。這些 SDK 對象具有列出與其關聯的作用域列表的屬性。其他 SDK 對象通過與具有直接關聯作用域的對象進行二級關聯而獲得管理員權限。例如,計算機對象從其所屬的目錄和交付組繼承作用域關聯;會話對象從其運行所在的計算機繼承作用域關聯。有些作用域是預定義的(在實際中當前僅內置了“全部”作用域),但是您可以創建其他作用域以指定適合特定部署的分組定義。
作用域定義:
作用域的身份,包括名稱和內部 ID 值 (GUID)。
作用域是否爲內置作用域。
角色
定義管理員可以執行的一組權限。角色始終被授給具有關聯作用域的管理員;它們並不向自己提供權限,儘管有些角色可能具有常規權限,這些權限適用於不具有關聯作用域的對象(無作用域對象)。有些角色是預定義角色,但是您可以創建其他自定義角色以指定適合特定部署的權限集合。角色定義:
角色的身份,包括名稱和內部 ID 值 (GUID)。
角色是否爲內置角色。
組成角色的權限集。
內置角色包括:
完全權限管理員 — 可以執行所有任務和操作。
只讀權限管理員 — 可以查看指定作用域內的所有對象以及全局信息,但無法更改任何內容。
計算機目錄管理員 — 可以創建和管理計算機目錄以及置備計算機。
交付組管理員 — 可以交付應用程序、桌面和計算機;還可以管理關聯的會話。允許創建和管理交付組和應用程序。
技術支持管理員 — 可以查看交付組,並可以管理與這些組關聯的會話和計算機。允許查看最終用戶資源和有限的狀態更改操作,以便爲最終用戶排除故障,但是不允許執行大多數配置更改。
主機管理員 — 可以管理主機連接及其關聯的資源設置。
權限
定義當角色包含權限時所允許執行的單個控制檯級別任務或操作。每個權限可以允許多個低級別的 SDK 操作 (cmdlet),特定的低級別 SDK 操作可以通過任意數量的相關權限授權。權限定義:
權限的身份,包括名稱和內部 ID 值 (GUID)。
權限的權限組成員身份。權限組將與特定功能區域相關的權限集合在一起。
權限涵蓋低級別 SDK 操作集。
二、Monitor Service OData API可以檢索那些數據
Monitor Service OData API包括相當多的數據。大多數屬於XenApp/XenDesktop會話信息(包括用法和錯誤)的對象。這裏的對象和上述對象有重疊有新增。這些都是歷史跟蹤保存的數據,並且數據保存的時間長度基於許可和用戶的配置。這些設置可以使用PowerShell命令set-monitorconfiguration cmdlet進行更改。
Monitor Service 收集的多種數據包括用戶會話使用情況、用戶登錄性能詳細信息、會話負載平衡詳細信息,以及連接和計算機故障信息。 根據其類別,數據以不同的方式聚合。瞭解使用 OData Method API 提供的數據值的聚合是解釋數據的關鍵。 例如:
一段時間內發生的連接會話故障和計算機故障,因此它們顯示爲一段時間內的最大值。
登錄持續時間是時間長度的度量,因此它們顯示爲一段時間內的平均值。
登錄計數和連接故障是一段時間內這類事件的計數,因此它們顯示爲一段時間內的總數。
Monitor Service提供了兩個主要的API來檢索數據。在下面的所有示例中,請將localhost替換爲您正在查詢的XenApp/XenDesktop控制器的名稱(不在DDC本機上)。這些API還需要XenDesktop管理員才能成功檢索數據,因此係統可能會提示您輸入用戶名/密碼。
Methods:http://localhost/Citrix/Monitor/Odata/v1/Methods/$metadata
Data:http://localhost/Citrix/Monitor/Odata/v1/Data/$metadata
$metadata(元數據)是一些的參數或者對象。下面這個文檔非常重要,它不僅描述瞭如何從該URL獲得的內容,還介紹瞭如何讀取OData語法的程序使用,並允許它們以編程方式生成可用於查詢API的客戶端代碼。您可以在OData.org網站上閱讀更多內容,其中描述了元數據格式:http://www.odata.org/documentation/odata-v2-documentation/overview/#3_Metadata_for_OData_Services。
Methods API
此API主要由用於Director檢索顯示的歷史圖表數據。
Data API
此API更加靈活,並提供對Monitor Service收集的所有數據的訪問。
下面這幅圖表表示了這些對象與數據庫中的表的關係:
系統信息表
DesktopGroup - 匹配Studio中的交付組
Catalog - 這些是Studio中的計算機目錄
Machine - 這些是添加到Studio中交付組的計算機
Hypervisor - 如果計算機是由Hypervisor管理的,那麼計算機的基本管理信息就存儲在此表中
User - 這些是已啓動會話的用戶 - 它們是在創建新會話時添加的,因此如果用戶從未使用XenApp/XenDesktop,則他們的信息將不在此表中。
會話使用表
Session - 這是高級會話信息,如果用戶啓動一個全新的會話,記錄將在這裏,初始登錄持續時間和當前會話連接信息也存在。會話註銷也在這裏被捕獲,該表完整的記錄了會話的生命週期。
Connection - 這是會話記錄的子級,對於會話的每個新連接,在這些記錄中跟蹤該信息。每個會話可以有多個連接,這取決於用戶在會話的生存期內發起了多少斷開連接/重新連接。此表還包括客戶端版本信息以及登錄會話登錄的故障時間戳。
SessionActivitySummary - 此表包括已從會話和連接表聚合的數據。此表中還捕獲登錄數以及連接/斷開連接的會話計數。此表主要用於Director趨勢數據,但也可用於查看桌面組(XenDesktop交付組)的會話計數。
計算機使用表
LoadIndexSummary - 此表捕獲服務器操作系統計算機的加載索引。此信息可以提供對整個系統利用率和負載的數據參考標準。
錯誤/故障表
ConnectionFailureLog - 記錄每一個連接錯誤信息。
ConnectionFailureCategory - 此表包括連接失敗的分類 - 它用於Director錯誤分類,不包括粒度錯誤詳細信息。它是一個靜態表,不會隨着錯誤的發生而改變。
MachineFailureLog - 這包括計算機故障狀態跟蹤。當計算機進入和退出故障狀態並可再次使用時,此表包括開始/結束時間和故障原因。
FailureLogSummary - 這是來自ConnectionFailureLog和MachineFailureLog表的聚合數據。它包括故障的類別/代碼,並且它們會隨着時間的過去按桌面組(XenDesktop交付組)進行聚合。
以下是您可以在網絡瀏覽器中運行的查詢的幾個示例:
三、使用Execl 2013調用Monitor Service OData API查詢數據
測試:
檢索所有用戶:http://localhost/Citrix/Monitor/OData/v1/Data/Users
檢索所有會話:http://localhost/Citrix/Monitor/OData/v1/Data/Sessions
第一步,安裝打開Execl 2013啓用powerpivot插件
第二步:打開powerpivot插件
第三步:連接DDC,檢索所有用戶:http://DDC Address/Citrix/Monitor/OData/v1/Data/Users
這是所有可以檢索的數據對象:
官網有整個API的參考說明:https://support.citrix.com/help/monitorserviceapi/7.6/html/d787ce1d-02c0-6165-fc99-c46592a5d112.htm
Monitor Service API 使用開放數據協議 (OData)。此協議是一個用於查詢和更新數據的 Web 協議,並基於諸如 HTTP 之類的 Web 技術而構建。 有關 OData 協議的詳細信息,請參閱 http://www.odata.org。
Monitor Service API 在使用 Windows Communication Foundation (WCF) Data Services(在處理和合並期間填充)的 SQL Server 數據庫的基礎上構建。 通過 wsHttpBinding 顯示了兩個使用 WCF 的端點。 基址爲 http:// {dc-host}/Citrix/Monitor/OData/v2。
Monitor Service API 是一款基於 REST 的 API,可以使用 OData 使用者程序進行訪問。 OData 使用者程序是佔用使用 OData 協議顯示的數據的應用程序。 從簡單的 Web 瀏覽器到可利用 OData 協議的所有功能的自定義應用程序,OData 使用者程序的複雜程度各不相同。 通過Monitor Service API將數據拿出來之後,接下來如果要整合到統一的監控平臺裏面去或者基於 API 提供的數據構建自定義用戶界面就好辦了吧!
更多詳情請訪問Citrix edocs