Kennisportal
Kennisportal is een kennisplatform met een focus op de brede doelgroep Business en IT.

Monitoring Citrix Cloud met OData

Sinds de introductie van XenApp en XenDesktop 7 levert Citrix de monitoring tool Director mee bij alle versies van hun software. Hiermee hebben kunnen beheerders hun XenApp en XenDesktop omgeving monitoren en pro-actief beheren.

Met de introductie van Citrix Cloud hebben beheerders mogelijkheid om de monitoring data van XenApp & XenDesktop service en de daar opvolgende trends uit Director tot 90 dagen terug in te zien.

Maar wat nu als de trends en rapporten in Director niet voldoen.

Of wanneer je de data langer dan 90 dagen wilt opslaan en inzien?

Tot voor kort was je aangewezen op de custom reports van Director, maar sinds kort bied Citrix je ook de mogelijkheid om zelf direct de monitor database aan te spreken.

Met OData kan de data uit de monitor database opgevraagd worden. Vervolgens kunnen we daar onze eigen queries op loslaten om rapporten te definiëren of om een eigen monitor dashboard te vullen.

OData is een protocol om data op te vragen die gebruikt maakt van standaard protocollen zoals HTTP en methodes zoals REST (REpresentational State Transfer).

Citrix maakt gebruik van token authenticatie om de data op te kunnen vragen. Hiervoor is een zogenaamd bearer token nodig. Dit bearer token kan aangevraagd worden via powershell en maakt gebruik van de API van Citrix Cloud.

Om een bearer token aan te vragen is een secure client nodig. Deze kan aangemaakt worden in Citrix Cloud bij Identity Management onder de kop API Access.

 

De secure client bestaat uit een ID en een bijbehorend Secret.

Nu we de secure client hebben kunnen we via PowerShell het bearer token aanmaken.

Het onderstaande PowerShell script is een voorbeeld hoe zo’n bearer token aangevraagd kan worden.

function GetBearerToken {

param (

[Parameter(Mandatory=$true)]

[string] $clientId,

[Parameter(Mandatory=$true)]

[string] $clientSecret

)

$postHeaders = @{“Content-Type”=“application/json”}

$body = @{

“ClientId”=$clientId;

“ClientSecret”=$clientSecret

}

$trustUrl = https://trust.citrixworkspacesapi.net/root/tokens/clients

$response = Invoke-RestMethod -Uri $trustUrl -Method POST -Body (ConvertTo-Json $body) -Headers $postHeaders

$bearerToken = $response.token

return $bearerToken;

}

 

$clientId = “ClientID”

$clientSecret = “ClientSecret”

$bearerToken = GetBearerToken $clientId $clientSecret

$token = “CwsAuth Bearer=”+$bearerToken

Met het bearer token in bezit in de variabele $bearerToken kunnen we nu met PowerShell de data opvragen door invoke-webrequest aan te roepen.

Hiervoor is naast het bearer token ook een customer ID nodig. In mijn voorbeeld is dat ‘Admin7255’.

$headers = @{“Authorization” = $token; “Customer” = “Admin7255”}

$url = https://Admin7255.xendesktop.net/Citrix/Monitor/OData/v4/Data/Users

$result = Invoke-WebRequest -Uri $url -Headers $headers

In dit voorbeeld hebben we de Monitor database gevraagd om gegevens over de gebruikers.

Het resultaat in $result kunnen we vervolgens naar een bestand wegschrijven:

$result.Content > “C:Userseltjoaa.txt”

Uiteraard hoeven we geen PowerShell te gebruiken. Nu we de bearer token hebben kunnen we de data ook opvragen in bijvoorbeeld Excel of in PowerBI.

In het onderstaande voorbeeld maak ik gebruik van PowerBI desktop om de data op te halen

Start met het ophalen van de gegevens:

Kies hierbij niet voor een OData-feed, maar voor een lege query:

De Source is de OData feed die we ook in Powershell gebruikt hebben alleen vraag ik hier niet data van over Gebruikers op, maar de over de Machines:

https://Admin7255.xendesktop.net/Citrix/Monitor/OData/v4/Data/Machines

Ook hier geven we in de header het bearer token en de customer ID op.

Zodra de we query hebben opgeslagen kunnen we met de data aan de slag.

In dit versimpelde voorbeeld, kunnen we bijvoorbeeld de huidige sessies tonen per VDA OS:

 

Uiteraard beperken de mogelijkheden zich niet tot de gegevens over de gebruikers of Machines in Citrix Cloud. Om uitgebreidere queries mogelijk te maken heeft Citrix het database schema van de Monitor Service vrijgegeven.

https://developer-docs.citrix.com/projects/monitor-service-odata-api/en/7.16/#monitor-service-schema

https://developer-docs.citrix.com/projects/monitor-service-odata-api/en/7.16/api-schema.png

Meer informatie over OData is beschikbaar op de website van OData op https://www.odata.org/

Hebben we je nieuwsgierig gemaakt over de mogelijkheden die dit bied voor jouw organisatie of wil je een demo over de overige mogelijkheden in Citrix Cloud op het gebied van monitoring en beheer, neem dan contact met ons op.