Tag Archives: VDI

Citrix XenDesktop & XenApp on vSphere monitoring

This blog is contributed by my friend Luciano Gomes, a VMware PSO Senior Consultant in Rio de Janeiro Area, Brazil. Thank you, Lucky!

vRealize Operations for Published Applications (V4PA) provides good insight into Citrix Environment. If you are running Citrix on vSphere, you can see both layers in a single pane of glass.

First, let’s ensure we have the prerequisites. You can find the details here. I’ll summarize it here:

  • vRealize Operations. I recommend 6.2.1 release.
  • Citrix XenDesktop/XenApp 7.6 and XenApp 6.5 for Windows Server 2008 R2 (we support older versions too, but some features will not be available).
  • vSphere 5.5 and above
  • Install Desktop Agents in All VDI Desktops (V4PA agent – its footprint is minimum)
  • Install Desktop Agents and Broker Agents in all Delivery Controllers
  • Install Desktop Agents in all Servers that is part of your farm.

I’m showing the architecture in the following screen. Notice where to deploy the Desktop agent and Broker agent. They are 2 different things!


The product is licensed as part of App Volumes. I’m including the license information and the version supported on the following table. Apology that the version number is showing the earlier version. What you want is version 6.3.


Notice there are 2 different products. If you get the vRealize Ops for Horizon, you get the vRealize Ops for Published Applications too. For more information, see here.

In this guide, Citrix shows what you need to monitor to ensure a healthy Citrix farm. Do read the guide first 🙂

Done reading? Cool, let’s now show you how to monitor using vRealize Operations Manager for Published Applications 6.3. There are a couple of dashboards which I find useful.

XD-XA Overview Dashboard

It shows the status of your end-to-end XD-XA environment, including the XD-XA-related alerts, key Site metrics, Site related vCenter capacity.

When to use it:

  • Assess overall XD-XA performance, and the overall user experience.
  • View the top XD-XA-related alerts.
  • View Site related vCenter remaining capacity and reclaimable capacity.


XD-XA Help Desk

It shows the information about all sessions running in your environment. The Sessions Details widget lists all of connected VDI desktop sessions, RDS desktop sessions, and application sessions in your environment and is the master widget for the dashboard.

When to use it:

  • View existing alerts of the system and the selected session.
  • Metrics of selected session, Health, Workload, Logon Time, ICA Round Trip Latency, ICA Input Bandwidth, and ICA Output Bandwidth.
  • View important logon metrics, Brokering Duration, HDX
  • Connection Duration, Authentication Duration, GPO duration, Profile Load Duration, and Interactive Duration



XD-XA Server Desktops

It shows the session-host server metrics and related vSphere VMs, server resource utilization and server indicator metrics.

When to use it:

Check servers alerts, server indicator metrics, and resource utilization metrics.


XD-XA Session Details

It shows the detailed information of all the sessions, session logon breakdown, session performance metrics, running processes of the session, users summary, User logon duration trend, and the report of what application are launched by a user and when.

When to use it:

Check detailed session information, check session logon details, retrieve session running processes for troubleshooting, check users summary, check user logon duration trend, and look at the report of what application are launched by a user and when.


XD-XA Server Applications

It shows the Application summary data, application instance number trend, application instance summary data, application instance resource utilization, application launch duration trend, application users, Application related servers, and server indicator metrics.

When to use it:

Check application summary data, performance data, launch duration historical trend, the report of which users launched applications and when application-related server indicator metrics.


XD-XA VDI Desktops

It shows the VDI Desktops related alerts, VDI Desktop summary information and VDI session detailed information, VDI desktop session resource utilization, and running application list of a VDI desktop session.

When to use it:

Check VDI Desktop overall status, top alerts, resource utilization, and retrieving session running application list for troubleshooting.


XD-XA User Experience

It shows the vCPU Experience heatmap, vDisk Experience heatmap, vRAM Experience heatmap, vCPU relationship, vDisk relationship, vRAM relationship, vCPU chart, vDisk chart, vRAM chart, and Delivery Group critical alerts.

When to use it:

Check overall and detailed vCPU/vDisk/vRAM experience, check delivery controller critical alerts.


This wraps up the out of the box dashboard.

Let’s now cover how you can customize and extend the monitoring.

Customizing V4PA

In vRealize Operations do you the flexibility to run your own script and other tools. I will show you how to it and I will give a true example using two very good Powershell Scripts from the Community that you can access here and here.


  • Install Endpoint Operations Manager Agent in the Delivery Controller – See here for how
  • Copy this 2 scripts in your (here and here) Root IIS Folder in the Delivery Controller Server (something like c:\inetpub\wwwroot\CitrixHC)
  • Configure vRealize Operations to run this scripts periodically
  • Configure Dashboard to Show the Results of the Script.
  • You must create one or two .bat files to call your PowerShell Scripts (example below)
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%MyPowerShellScript.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";
The source of this example above you can check here.

Configuring vR Ops:

After you install the Endpoint Agent, go back to vR Ops interface and look for your Delivery Controller Server, in my case my server is called srvctx01.secutorfight.com.


Click on your server and configure it, as shown below:


Complete the configuration:


Repeat this configuration if you need to run more than one script. Wait for a few minutes and check if your script is running (go to Delivery Controller and check the results).

Next, create a dashboard:


Create two Text Widgets:


Configure like the following example:


Click the Test button and check if you have a Success Message. If yes, save and repeat the same procedure to the other Widget. Now, you have the new customized dashboard like the one below:


Hope it helps. Have fun and enjoy!

Proving your VDI is performing well

How do we know a user is getting a good performance on her/his VDI session? When she called help desk and shared that her Windows is slow, how can help desk quickly determine where the root cause is?

I shared the metrics you need, and showed a sample dashboard here. There were a few requests to add the threshold line. This makes it easier for the Help Desk team. They just need to know that Actual should be better than Threshold.

So here is the updated dashboard. I’ve added a Threshold metric for each counter. You do this by creating a super metric, with a constant value. For example, if the CPU Contention you tolerate is 2%, then simply specify 2 as the super metric formula. No need to add the %.


Compared to the previous example, you will notice it’s neater. I’ve organised the widget, so Network widgets are grouped together, CPU widgets are grouped together, etc. I’ve also named the metrics to just Actual and Threshold. Lastly, I’ve removed the units and displayed it at the Widget title bar.

The help desk just need 3 steps:

  1. Search the user. We use the MS AD Login ID. I did a search above. It’s showing 2 results as this user ID has 2 concurrent active sessions (on different Horizon pools). I
  2. Select a session. All the counters from Horizon session (from V4H adapter) are automatically shown.
  3. Click on the VM object. This is to display the VM counters (from vSphere adapter)

Hope it helps!

vRealize Operations for Horizon View 6.2 upgrade

On 8 Dec, the Horizon team released an updated version of vRealize Operations for Horizon. I’ve worked with customers a few times on this product, and it certainly helps both the Horizon admin (EUC team) and vSphere admin (Platform team) to collaborate. That last one is important. Horizon is tied to vSphere, that you cannot manage it without having end to end visibility into the platform.

There are many articles on a fresh installation, so I will cover upgrade here. Please read the Upgrade section of the Release Notes, as there are things to know. After that, read the Upgrade section of the manual.


Other than what the manual say, take note of the following:

  • Admin Access to Horizon View Connection Server.
  • Root access to vRealize Operations SuSE console. You will either need to enable SSH, or have VM Console access in vCenter.
  • Snapshot access to vCenter. You should take a snapshot before making any changes. You need to snapshot View Connection Server and vRealize Ops.

Step 1: Stop the Broker Agent services

Go to Horizon View Connection Server, and manually stop the service. You have to click it 2x, as it would go from Running to Stop Pending first.


Step 2: Update the solution

Other bloggers have provided good write up, so review this or this for a step by step instruction. I am not going to uninstall existing version since the manual implies that we install on top of existing instance. Also, if you uninstall, you will lose all your customisation and metrics.


To install on top of existing instance, you need to tick the 2 checkboxes, as shown below.


When you do that, you got a warning that it will replace existing changes. This is why I normally clone them, and leave the original intact. For example, if it is an alert, I’d also disable the original alert so I’m not double alerted.

Continue with the installation.


When it’s completed, the old solution is replaced. You can tell that the new build number is now shown.


The manual said to reboot. I’d wait until I modify the firewall port so it’s done together.

Next. Configure licensing information for the vRealize Operations for Horizon solution. Notice that there are 2 license keys required. One for vRealize, one for the Horizon solution. I think this step is actually optional, as you’ve got the existing license configured already.

5 license

Step 2: Update firewall ports

The firewall ports changed. You need to enable the port numbers 3099, 3100, and 3101.

  1. Login as root (the user Admin cannot login anyway)
  2. Edit the /opt/vmware/etc/vmware-vcops-firewall.conf file .
  3. Add the line: TCPPORTS=”$TCPPORTS 3099:3101″ after TCPPORTS=”$TCPPORTS 3091:3095″ . See below for example


Either do the next 2 steps, or just rebooted the VM. As the manual said it needs a reboot after the Solution was installed, I rebooted. It’s easier than typing all these long commands 🙂

  1. Restart the firewall: /etc/init.d/vmware-vcops-firewall restart
  2. Check the status of the firewall: /etc/init.d/vmware-vcops-firewall status

Step 3: Modify TLS

TLS 1.2 is enforced by default in version 6.2. The Adapter cannot communicate with older desktop Agents running with TLS 1.0, which is used in 6.1. Bin Guo from R&D advised me that you don’t need to upgrade them if you continue to use the TLS 1.0. But you must enable TLS1.0 settings on adapter configuration. To do that, add the enforcesslprotocols = false line in the screenshot below to the  /usr/lib/vmware-vcops/user/plugins/inbound/V4V_adapter3/work/msgserver.properties file


Horizon Adapter in View Connection Server has to be restarted.

If you want to use TLS 1.2, you can upgrade the desktop agent independently, or update the whole Horizon View to 6.2.1 (View 6.2.1 disable TLS 1.0 too)

Broker Agent and Horizon Adapter instance pairing might be required.

Step 4: Update the Broker Agent

After the solution is licensed, you must install and configure the new version of broker agent. If you are not familiar, follow this or this for step by step. BTW, you only install it on 1 View CS if you have pairs, not all members. Also, do not install in View Security Server. This is stated in the manual.

If your broker agent is 6.1, you do not have to uninstall. If you are using older version, uninstall it. The 6.2 Broker Agent now requires MS .Net 4.5. It will stop if you do not have one.


During the Broker Agent upgrade process, this is what happened:

  • Broker agent 6.1 service is stopped
  • Its configuration is preserved. This includes data such as Horizon Credentials and Events DB configurations. Nice! No need to re-enter all those passwords
  • Broker agent 6.1 is uninstalled
  • Broker Agent 6.2 is installed.

The 6.2 sports a different UI, but the information that it asks is the same. Take note the version number (6.2.0) and build number. The first stage is to re-pair the adapters. This would fail if you did not add the firewall ports earlier.


In case of upgrade, the Broker Agent service is not started automatically. You need to click the Start button above.

And that’s all you need. If you need to troubleshoot, you can get the log of …..

  • the Broker Agent at C:/ProgramData/VMware/vCenter Operations for View/logs
  • the individual VDI Desktop at C:\ProgramData\VMware\VDM\logs and locate the desktop agent log files. The agent log file names begin with v4v-.

BTW, there is a user guide that was introduced in this blog. The blog shows you the link to the actual guide. For your convenience, here is the actual PDF guide.