# Configuration guide: Citrix CVAD essentials

{% hint style="warning" %}
The configuration opions on this page are only accessible to [administrators](https://docs.nexthink.com/platform/user-guide/administration/account-management/roles#roles-administration).

Refer to the [Usage guide: Citrix CVAD essentials](https://docs.nexthink.com/platform/library-packs/vdi/citrix/citrix-cvad-essentials/usage-guide-citrix-cvad-essentials) to use library content as a standard user.
{% endhint %}

## **Prerequisites** <a href="#documentation-pre-requisites" id="documentation-pre-requisites"></a>

This library pack contains content from the following required [expansion products](https://docs.nexthink.com/platform/overview/products):

* [Nexthink VDI Experience](https://docs.nexthink.com/platform/user-guide/vdi-experience).

{% hint style="info" %}
Some of these products offer default access to their respective content and can still be used without [expansion products](https://docs.nexthink.com/platform/overview/products).

Refer to the [Nexthink Infinity thresholds and limits overview](https://edocs.nexthink.com/nexthink-infinity/infinity-specifications/nexthink-infinity-default-thresholds-overview) documentation for more information about default thresholds for expansion products.
{% endhint %}

## **Included content and dependencies** <a href="#documentation-contentanddependencies" id="documentation-contentanddependencies"></a>

This library pack contains the following content and dependencies:

<table><thead><tr><th width="145.6666259765625">Content type</th><th width="190">Name</th><th width="399.333251953125">Description</th></tr></thead><tbody><tr><td><a href="../../../../user-guide/live-dashboards">Dashboards</a></td><td>Citrix CVAD virtual machine monitoring</td><td>Monitor the health and availability of Citrix virtual machines by identifying performance issues, stale VMs, or registration failures that impact user experience.</td></tr><tr><td></td><td>Citrix CVAD infrastructure</td><td>Monitor the health and availability of Citrix delivery controller, license, and StoreFront servers by identifying offline devices, stopped critical services, and performance or stability issues.</td></tr><tr><td><a href="../../../../user-guide/applications">Applications</a></td><td>Citrix Workspace client</td><td>This hybrid Web/desktop application provides visibility into the usage, performance, and stability of the Citrix Workspace client on devices, helping to identify issues with the application.</td></tr><tr><td><a href="../../../../user-guide/alerts-and-diagnostics">Monitors</a></td><td>High percentage of disconnected sessions per desktop pool</td><td>Identifies frequent or unexpected drops.</td></tr><tr><td></td><td>High CPU usage per desktop pool</td><td>Flags potential performance bottlenecks.</td></tr><tr><td></td><td>High average latency per VDI client location</td><td>Highlights network-related delays by region.</td></tr><tr><td></td><td>High number of sessions per virtual machine</td><td>Prevents resource overutilization.</td></tr><tr><td><a href="../../../../user-guide/remote-actions">Remote actions</a></td><td>Invoke restart of session host</td><td>Restarts the host machine, by effectively restarting all user sessions.</td></tr><tr><td></td><td>Invoke update GPO computer policy</td><td>Refreshes Group Policy settings on the host machine by executing the gpupdate command at the system level.</td></tr><tr><td></td><td>Invoke update GPO user policy</td><td>Triggers a user-level Group Policy refresh for the currently logged-in user using the command gpupdate /target:user /force.</td></tr><tr><td></td><td>Invoke end process</td><td>Can be used to terminate a process which is running within a user session on a Windows device.</td></tr><tr><td></td><td>Log off VDI session</td><td>Logs off an active Virtual Desktop Infrastructure (VDI) session on a Windows VDI.</td></tr><tr><td></td><td>Get Citrix VDA registration details</td><td>Retrieves essential details about the Citrix Virtual Delivery Agent (VDA), providing administrators with a clear overview of the VDA's connection to the Citrix environment.</td></tr><tr><td></td><td>Reset Citrix workspace app</td><td>Performs a complete reset of the Citrix Workspace app on a Windows endpoint. It clears all user configurations, accounts, and cached data, restoring the application to its default state.</td></tr><tr><td></td><td>Get CVAD server status</td><td>Checks and reports the real-time status (Running / Stopped / Not Found) of crucial Delivery Controller, StoreFront, and license services on Citrix CVAD servers.</td></tr><tr><td></td><td>Monitor Citrix DDC Events</td><td>Monitors the health of the Citrix Desktop Delivery Controller by analyzing Windows event logs for predefined or custom topics.</td></tr><tr><td></td><td>Monitor Citrix CVAD Storefront Events</td><td>Monitors the health of the Citrix CVAD StoreFront by analyzing Windows event logs for predefined or custom topics.</td></tr><tr><td></td><td>Monitor Citrix License Server Events</td><td>Monitors the health of the Citrix License server by analyzing Windows event logs for predefined or custom topics.</td></tr><tr><td><a href="../../../../user-guide/administration/content-management/custom-fields-management">Custom fields</a></td><td>Citrix reboot health</td><td>Indicates the reboot health of a device based on the 'Days since last reboot'</td></tr><tr><td></td><td>Citrix delivery controller</td><td>This custom field identifies and tags devices as Citrix delivery controllers by detecting key Citrix binaries running on the server</td></tr><tr><td></td><td>Citrix license server</td><td>This custom field identifies and tags devices as Citrix license server by detecting key Citrix binaries running on the server</td></tr><tr><td></td><td>Citrix server role</td><td>This custom field tags binaries to specific Citrix server roles</td></tr><tr><td></td><td>Citrix StoreFront</td><td>This custom field identifies and tags devices as Citrix StoreFront servers by detecting key Citrix binaries running on the server</td></tr></tbody></table>

## Configuring Citrix DaaS essentials

{% hint style="info" %}
Adapt these suggested configuration steps to edit and customize content according to your organizational needs.
{% endhint %}

Follow these steps to install and configure content:

* Before configuration - Install library pack content from [Nexthink Library](https://docs.nexthink.com/platform/user-guide/nexthink-library)
* [Step 1 - Configure remote actions](#configuring-remote-action-s)
* [Step 2 - ](#documentation-step3-editcampaigns)[Configure monitors](#step-2-configure-monitors)
* [Step 3 - Configure custom fields](#step-3-configure-custom-fields)

### **Step 1 - Configure remote actions**

1. From the main menu, navigate to the **Remote Actions** > [Manage remote action ](https://docs.nexthink.com/platform/user-guide/remote-actions/managing-remote-actions)page.
2. Review and edit your remote actions.

Nexthink recommends the following configurations for these remote actions:

<table><thead><tr><th>Name</th><th>Trigger Schedule</th><th>Parameters to edit</th></tr></thead><tbody><tr><td>Invoke restart of session host</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Invoke update GPO computer policy</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Invoke update GPO user policy</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Invoke end process</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Log off VDI session</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Monitor Citrix DDC Events</td><td>Scheduled locally to run on the delivery controllers (DDCs).<br>The recommended frequency is hourly or more often.</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices  | where citrix_ddc > 0
</code></pre></td></tr><tr><td>Monitor Citrix CVAD Storefront Events</td><td>Scheduled locally to run on the StoreFront servers.<br>The recommended frequency is hourly or more often.</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices | where citrix_store_front > 0
</code></pre></td></tr><tr><td>Monitor Citrix License Server Events</td><td>Scheduled locally to run on the license servers.<br>The recommended frequency is hourly or more often.</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices during | where citrix_license_server > 0
</code></pre></td></tr><tr><td>Get Citrix VDA registration details</td><td>Scheduled locally on VMs</td><td><pre><code>devices | where virtualization.desktop_broker in [ citrix_cvad ]
</code></pre></td></tr><tr><td>Reset Citrix Workspace app</td><td>Triggered on demand to resolve issues</td><td></td></tr><tr><td>Get CVAD server status</td><td>Scheduled locally to run on the delivery controller, license, and StoreFront servers at 10 minutes frequency.</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices 
| where name = "CITRIX_SERVER_NAME"
</code></pre></td></tr></tbody></table>

{% hint style="warning" %}
The "Monitor Citrix DDC Events," "Monitor Citrix License Server Events," and "Monitor Citrix CVAD Storefront Events" remote actions come preconfigured with relevant topics. While it is possible to change these pre-defined topics manually, doing so may affect the logic of dashboard widgets that rely on these remote actions.
{% endhint %}

### Step 2 - Configure monitors

To install and (partially) configure content:

1. From the main menu, navigate to the **Alerts & Diagnostics** > [Manage alerts ](https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/managing-alerts)page.
2. Review and edit your monitors.
3. For each monitor:
   * The **Scheduling frequency** cannot be modified, like many other configuration fields.
   * If required, set additional [Trigger conditions](https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/managing-alerts/customizing-built-in-monitors#customizingbuilt-inmonitors-queryandconditions) and refine the VDI monitor thresholds within the monitor configuration page. Refer to the table below.
   * Additionally, customize [Filters](https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/managing-alerts/customizing-built-in-monitors#customizingbuilt-inmonitors-filter), [Priority](https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/managing-alerts/creating-custom-monitors#filling-in-the-general-tab), and [Notifications](https://docs.nexthink.com/platform/user-guide/alerts-and-diagnostics/managing-alerts/configuring-email-and-webhook-notifications-for-alerts) for each VDI monitor.

| Name                                                          | Scheduling Frequency             | Trigger conditions to edit                                                                                                                    |
| ------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **High average latency per VDI client location**              | Real time                        | <ol><li>Average network latency<br>(Default - moderate increase)</li><li>Percentage of events with high latency<br>(Default >= 20%)</li></ol> |
| **High CPU usage per desktop pool**                           | <p>Real time<br></p>             | <ol><li>Average CPU queue length<br>(Default - moderate increase)</li><li>Percentage high queue length<br>(Default >= 20%)<br></li></ol>      |
| **High number of sessions per virtual machine**               | <p>Scheduled, 15 minutes<br></p> | <p>Sessions per virtual machine<br>(Default >= 20)<br></p>                                                                                    |
| **High percentage of disconnected sessions per desktop pool** | <p>Scheduled, 15 minutes<br></p> | <p>Percentage of disconnected sessions<br>(Default >= 40%)<br></p>                                                                            |

### Step 3 - Configure custom field

1. From the main menu, navigate to the **Administration** > [Custom fields ](https://nexthink.gitbook.io/opd/user-guide/administration/content-management/custom-fields-management)page.
2. Check and customize the rule criteria for each custom field.
3. Edit the NQL queries if necessary to suit your environment and reboot policies.
4. Nexthink recommends the following settings:

<table><thead><tr><th width="140">Name</th><th width="172.3333740234375">NQL ID</th><th width="146.6666259765625">Rule name</th><th width="94.666748046875">Object</th><th width="253.66668701171875">NQL query</th></tr></thead><tbody><tr><td>Citrix reboot health</td><td>citrix_reboot_health</td><td>Good<br>Average<br>Poor</td><td>device</td><td><pre><code>devices
| where virtualization.desktop_broker in [ citrix_cvad , citrix_daas ] and ((virtualization.type in [shared, pooled] and boot.days_since_last_full_boot &#x3C;= 1) or (virtualization.type in [personal] and boot.days_since_last_full_boot &#x3C;= 5))
</code></pre></td></tr><tr><td>Citrix delivery controller</td><td>citrix_ddc</td><td>Computed</td><td>device</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices
| include execution.events
| where binary.name in ["brokerservice.exe", "ctxxmlss.exe"]
| compute count_ = countif(execution_duration > 0)
| list count_
</code></pre></td></tr><tr><td>Citrix license server</td><td>citrix_license_server</td><td>Computed</td><td>device</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices
| include execution.events
| where binary.name in ["Citrix.LicensingConfig.Service.exe", "CitrixWebServicesForLicensing.exe", "Citrix.Licensing.Service.exe", "CitrixLicensing.exe", "ctxcloudlicclient.exe", "ctxlicusagerecorder.exe"]
| compute count_ = countif(execution_duration > 0)
| list count_
</code></pre></td></tr><tr><td>Citrix server role</td><td>citrix_server_role</td><td>LicenseServer<br>CloudConnector<br>DesktopDeliveryController<br>StoreFront</td><td>binaries</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">binaries
| where binary.name in ["Citrix.LicensingConfig.Service.exe", "CitrixWebServicesForLicensing.exe", "Citrix.Licensing.Service.exe", "CitrixLicensing.exe"]
</code></pre></td></tr><tr><td>Citrix StoreFront</td><td>citrix_store_front</td><td>Computed</td><td>device</td><td><pre class="language-nql_/apigateway/nql-editor"><code class="lang-nql_/apigateway/nql-editor">devices
| include execution.events
| where binary.name in ["citrix.storefront.exe","citrix.deliveryservices.servicemonitor.servicehost.exe","citrix.deliveryservices.configurationreplicationservice.servicehost.exe"]
| compute count_ = countif(execution_duration > 0)
| list count_
</code></pre></td></tr></tbody></table>

***

RELATED TOPICS

* ​[Citrix CVAD essentials​](https://docs.nexthink.com/platform/library-packs/vdi/citrix/citrix-cvad-essentials)
* [Usage guide: Citrix CVAD essentials](https://docs.nexthink.com/platform/library-packs/vdi/citrix/citrix-cvad-essentials/usage-guide-citrix-cvad-essentials)
