Geneos ["Geneos"]
["Geneos > Netprobe"]["User Guide"]

Citrix XenApp

Overview

Geneos provides a monitoring solution for the Citrix XenApp virtualisation architecture and its components. This integration is available through the Toolkit plug-in.

Geneos monitoring for Citrix XenApp produces three samplers, each providing monitoring and dataviews:

  • Citrix-Apps — for published applications, as defined by Citrix XenApp.
  • Citrix-Processes — for processes running on a virtual machine.
  • Citrix-Sessions — for each unique session based on the user, applications used, and virtual machine logged into.

This integration provides a Gateway configuration file that enables monitoring of Citrix XenApp through a set of pre-configured Toolkit samplers.

This guide discusses the steps to set up the Citrix XenApp integration on a Gateway. Once the integration is set up, the samplers providing the dataviews become available to that Gateway.

Prerequisites

The following requirements must be met prior to the installation and setup of the template:

  • Citrix XenApp version 7.x
  • PowerShell versions 4.0 or above must be available on the machine where the Netprobe runs.
  • PowerShell's execution policy must be allowed to execute scripts.
  • You must have an Active Directory user account with Citrix monitoring privileges configured in the Citrix Delivery Controller.
  • Application monitoring must be enabled in the Citrix Delivery Controller.

Integration workflow

The Citrix XenApp integration is largely pre-configured. The integration involves three primary tasks:

  • Download the integration files from the ITRS Downloads page.
  • Load the Citrix monitoring configuration file from the Gateway Setup Editor.
  • Associate the Citrix samplers with a managed entity.

The Citrix integration files also include an additional utility for encrypting your configured password via PowerShell.

Download the integration files

  1. On the ITRS Downloads page, download the Citrix integration files (geneos-integration-citrix-4.9.0.zip).
  2. As a best practice, save the files on the same machine where your Gateway is running.

The integration files include the following:

  • include/CitrixMonitoring.xml — Gateway configuration file containing Toolkit samplers configured for Citrix XenApp monitoring.
  • util/encrypt_pwd.ps1 — Encryption utility for obscuring the password to the integration template.

Load the Citrix configuration file

  1. On the Gateway Setup Editor, right-click the Includes folder and select New Include.
  2. Under the Basic tab, type the file path to the Citrix configuration file into the Location field. This is the file path ending in citrix/include/CitrixMonitoring.xml.
  3. Update the Priority field. This can be any value except 1. If you enter a priority of 1, the Gateway Setup Editor will return an error.
  4. Expand the entry for this new inclusion by clicking the "+" symbol next to it.
  5. Click the child entry, "Click to load...".
  6. The Load included file prompt appears. Click "Yes", or press Enter to confirm the action.

After you load the Citrix configuration file, it loads its own Gateway, samplers, and configuration associated with the Citrix XenApp integration.

Associate the Citrix samplers with a managed entity

After you have loaded the Citrix configuration file, the Citrix monitoring samplers become available for use.

  1. On the Gateway Setup Editor, create a new managed entity by right-clicking the Managed entities folder.
  2. Under the Basic tab for the new managed entity, click Add new under the Add types field.
  3. In the text field under Ref, type Citrix.
  4. In the text field under Environment, specify the environment associated with the Citrix samplers. By default, this is Citrix-Defaults. However, you can create a new environment or modify the Citrix-Defaults environment variables according to your system. For more information on the environment variables, see the Environment configuration.
  5. Click the save icon to apply your changes.

After you save your changes to the managed entity, the Citrix dataviews appear under the managed entity on the state tree.

Encryption utility

The Citrix XenApp integration files include an encryption utility. Run this utility in PowerShell to encrypt your password for the CITRIX-MONITORING-PASS environment variable:

  1. Open the Command Prompt.
  2. Enter the following command line:
  3. powershell.exe .\encryptPassword.ps1 [plainTextPassword]

    When you enter this line command, the utility encrypts the password and displays its encrypted string on the command line.

  4. Copy the encrypted string for the CITRIX-MONITORING-PASS environment variable.

If you enter the line command without the plaintext password, then the utility prompts for a password, encrypts the text you enter, then generates a password.txt file. Use the contents of this file for the CITRIX-MONITORING-PASS environment variable.

Environment configuration

When you run the Citrix XenApp integration file, it automatically configures its own sub-folders, files, and samplers in the Includes folder on the Gateway Setup Editor.

In its Environments folder, you can configure the environment variables to ensure that the Citrix XenApp integration monitors your target machine.

Name Description
POWERSHELL_DIR

Installation directory where the PowerShell executable file resides.

Default value:
C:\Windows\System32\WindowsPowerShell\v1.0

CITRIX_MONITORING_HOST

OData REST endpoint of the Delivery Controller.

Default value:
http://localhost/Citrix/Monitor/OData/v4/Data/

CITRIX_MONITORING_USER

User account with Citrix monitoring privileges.

Default value:
domain\username

CITRIX_MONITORING_PASS

Password for the user account with Citrix monitoring privileges. Supplied password should be encrypted. See Encryption utility for more information.

Default value:
password

CITRIX_SESSION_FILTER

OData filter for the Citrix-Session dataview.

You can modify this variable to fine-tune your session metrics.

Default value:
?$filter=EndDate eq null (This expression filters out inactive sessions.)

CITRIX_APPS_FILTER

OData filter for the Citrix-Apps dataview.

You can modify this variable to fine-tune your session metrics.

Default value:
?$filter=EndDate eq null (This expression filters out inactive sessions.)

CITRIX_SCRIPTS_DIR

Designated location for the PowerShell scripts.

Default value:
. (Designates the script into the same folder as your Netprobe.)

CITRIX_GROUP

Group name of the integration samplers.

Default value:
Citrix

   

Metrics and dataviews

Note: All date and timestamps follow the ISO 8601 date-time format: yyyy-mm-ddThh:mm:ss+|-hh:mm

Citrix-Apps

Headline field Description
execDuration

Elapsed time for the Toolkit plug-in to run the script.

Unit: seconds (s)

appCount Total number of published applications running.
Field Description
ApplicationId Unique ID assigned by Citrix XenApp on a published application.
Name Name of the published application.
Path Location of the application on the file directory.
UserName User logged in when the application is published.
MachineName Virtual machine from where the application is published.
IP Address IP address of the virtual machine.
StartDate Date and timestamp of when the published application starts running.
EndDate Date and timestamp of when the published application is terminated.
CreatedDate Date and timestamp of when the instance of the published application is created.
ModifiedDate Date and timestamp of when the published application is last accessed.

Citrix-Processes

Headline field Description
execDuration

Elapsed time for the Toolkit plug-in to run the script.

Unit: seconds (s)

Field Description
ProcessKey Unique ID assigned by Citrix XenApp on a process.
ProcessId Process ID as it appears on the machine.
ProcessName Name of the process.
ProcessCreationDate Date and timestamp of when the process starts running.
ApplicationName Name of the application from where the process runs.
CurrentConnectionId Unique connection ID identifying the connection on which the process runs.
UserName User logged in when the process starts.
MachineName Virtual machine from where the process runs.
PercentMemory Percentage of memory consumed by the process.
PercentCpu Percentage of the CPU consumed by the process.
CollectedDate Date and timestamp of when the metrics shown are collected.

Citrix-Sessions

Headline field Description
execDuration

Elapsed time for the Toolkit plug-in to run the script.

Unit: seconds (s)

serverName Name of the server from which the sessions are being run.
Connected Number of connected sessions.
Active Number of active sessions.
Disconnected Number of disconnected sessions.
Terminated Number of terminated sessions.
Reconnecting Number of sessions that are reconnecting.
PreparingSession Number of sessions that are in the preparing state.
NonBrokeredSession Number of non-brokered sessions.
Pending Number of sessions whose connection state is pending.
Other Number of sessions whose status do not fall under any of the aforementioned headline fields.
Unknown Number of sessions whose statuses are not known.
Field Description
CurrentConnectionId Unique connection ID identifying the connection on which the session runs.
UserName User logged in for the session.
MachineName Virtual machine from where the session is held.
SessionType Indicates if the session is based on a desktop login or a specific application.
StartDate Date and timestamp of when the session starts running.
EndDate Date and timestamp of when the session ends.
LogOnDuration Elapsed time since the start of the session, based on the user login.
ConnectionState Indicates if the session is active or disconnected.
ConnectionStateChangeDate Date and timestamp of the last change in the connection state.
SessionIdleTime Date and timestamp of the most recent inactivity.
LifecycleState Lifecycle state for the session. This field is for internal tracking and management.
IsAnonymous Indicates if the session is anonymous or not.
CreatedDate Date and timestamp of when the session is created.
ModifiedDate Date and timestamp of the last activity in the session.
FailureDate Date and timestamp of when the connection failed. If the connection has not failed, then this field is empty.
ExitCode Session termination exit code.