Documento técnico: Citrix Director: Administrar y configurar alertas y notificaciones con PowerShell

Con Citrix Director, tiene la capacidad de configurar directivas y condiciones que le avisen cuando se supera el umbral configurado. Esta función se introdujo por primera vez en XenDesktop 7.7 y ya está disponible en todas las versiones de Citrix Virtual Apps and Desktops. Este artículo le ayuda a configurar las alertas y notificaciones proactivas mediante los cmdlets de PowerShell.

Configuración de la suscripción a notificaciones

Supongamos que es administrador de Citrix Virtual Apps and Desktops y está intentando comprender el uso de su implementación. Debe recibir una alerta proactiva cuando el número de sesiones simultáneas supere un valor umbral. Antes de poder configurar alertas y notificaciones, debe configurar la suscripción de notificaciones. Para ello, primero debe agregar un servidor Exchange SMTP (no configure más de uno), que podrá usar más adelante para enviar correos electrónicos cuando haya una alerta.

El cmdlet POSH Set-MonitorNotificationEmailServerConfiguration le ayuda a configurar el servidor SMTP.

He aquí un ejemplo de script:

    asnp Citrix.Monitor.*
    PS C:\Users\administrator> Set-MonitorNotificationEmailServerConfiguration -ProtocolType SMTP -ServerName NameOfTheSMTPServerOrIPAddress -PortNumber PortNumber -SenderEmailAddress EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert -RequiresAuthentication 0
    ProtocolType : SMTP
    ServerName : NameOfTheSMTPServerOrIPAddress
    PortNumber : PortNumber
    SenderEmailAddress : EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert
    RequiresAuthentication : False
    Credential :

    PS C:\Users\administrator> Set-MonitorNotificationEmailServerConfiguration -ProtocolType SMTP -ServerName NameOfTheSMTPServerOrIPAddress -PortNumber PortNumber -SenderEmailAddress EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert -RequiresAuthentication 1 -Credential “SenderEmailAddressUserNameAsPerYourExchangeServerOrAD”
    ProtocolType : SMTP
    ServerName : NameOfTheSMTPServerOrIPAddress
    PortNumber : PortNumber
    SenderEmailAddress : EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert
    RequiresAuthentication : False
    Credential : System.Management.Automation.PSCredential
<!--NeedCopy-->

En caso de que el servidor SMTP no requiera autenticación, puede configurar el indicador -RequiresAuthentication en false.

    PS C:\Users\administrator> Set-MonitorNotificationEmailServerConfiguration -ProtocolType SMTP -ServerName NameOfTheSMTPServerOrIPAddress -PortNumber PortNumber -SenderEmailAddress EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert -RequiresAuthentication 0
    ProtocolType : SMTP
    ServerName : NameOfTheSMTPServerOrIPAddress
    PortNumber : PortNumber
    SenderEmailAddress : EmailAddressFromWhichDirectorShouldSendAnEmailWhenThereIsAnAlert
    RequiresAuthentication : False
    Credential :
<!--NeedCopy-->

Director también admite varios protocolos para conectarse con su servidor SMTP, incluidos SMTP, SMTP-SSL y SMTP-TLS.

Nota: No puede eliminar una configuración de SMTP, pero puede modificarla y cambiar su valor.

Un guion de muestra

Este es un script de ejemplo que nos ayuda a crear una directiva con una regla de alerta, parámetros, condiciones y destinatarios de correo electrónico. Rompemos cada parte del guion para entenderlo mejor.

    asnp Citrix.Monitor.*
    # Add Parameters
    $timeSpan = New-TimeSpan -Seconds 30
    $alertThreshold = 1
    $alarmThreshold = 2
    # Add Target UID’s
    $targetIds = @()
    $targetIds += “0e406be1-1647-4a97-845c-7601ae1d8883”
    # Add email addresses
    $emailaddress = @()
    $emailaddress += “acme@citrix.com”
    # Create new policy
    $policy = New-MonitorNotificationPolicy -Name “MyTestPolicy” -Description “Policy created to test new cmdlets” -Enabled $true
    Add-MonitorNotificationPolicyCondition -Uid $policy.Uid -ConditionType SessionsConcurrentCount -AlertThreshold $alertThreshold -AlarmThreshold $alarmThreshold -AlertRenotification $timeSpan -AlarmRenotification $timeSpan
    Add-MonitorNotificationPolicyCondition -Uid $policy.Uid -ConditionType SessionsPeakconnectedCount -AlertThreshold $alertThreshold -AlarmThreshold $alarmThreshold -AlertRenotification $timeSpan -AlarmRenotification $timeSpan
    Add-MonitorNotificationPolicyTargets -Uid $policy.Uid -Scope “My Test Targets” -TargetKind DesktopGroup -TargetIds $targetIds
    Add-MonitorNotificationPolicyEmailAddresses -Uid $policy.Uid -EmailAddresses $emailaddress -EmailCultureName “en-US”
    $policy = Get-MonitorNotificationPolicy -Uid $policy.Uid
    $policy
<!--NeedCopy-->

Configurar direcciones de correo electrónico de destinatarios

Ahora que ha configurado el servidor SMTP Exchange, debe configurar los destinatarios del correo electrónico a continuación.

Con el cmdlet Add-MonitorNotificationPolicyEmailAddresses, puede especificar los destinatarios de la notificación por correo electrónico y elegir la configuración regional.

$emailaddress = @()
$emailaddress += “acme@citrix.com”
Add-MonitorNotificationPolicyEmailAddresses -Uid $policy.Uid -EmailAddresses $emailaddress -EmailCultureName “en-US”

Configuración de objetivos y valores objetivo

Ahora crea una directiva. Lo primero que hay que hacer es especificar un objetivo. Un objetivo no es más que la entidad a la que se aplicará la regla de alerta. Por ejemplo, si mi regla es “Avisarme cuando la sesión conectada máxima llegue a 100 en todas las máquinas de mi grupo de entrega xyz”, entonces “grupo de entrega xyz” es el destino.

Para especificar un destino y un valor de destino, debe usar el cmdlet:

Add-MonitorNotificationPolicyTargets

Supongamos que desea configurar la alerta de sesión simultánea en un grupo de entrega para máquinas RDS. Tendrá que obtener el identificador único de DG y suministrarlo como valor al cmdlet Add-MonitorNotificationPolicyTargets.

¿Cómo puedes conseguirlo? Utilice el cmdlet get-brokerDesktopGroup y encontrará el identificador único en UUID

Por lo tanto, ahora hemos establecido el valor objetivo del grupo de entrega en el que queremos orientar nuestra regla de alertas.

A continuación, tenemos que especificar el objetivo y el tipo de objetivo. Aquí, podemos utilizar Add-MonitorNotificationPolicyTargets y especificar el tipo de destino como RDSWorker.

    $targetIds = @()
    $targetIds += “0e406be1-1647-4a97-845c-7601ae1d8883”
    Add-MonitorNotificationPolicyTargets -Uid $policy.Uid -Scope “My Test Targets” -TargetKind DesktopGroup -TargetIds $targetIds
<!--NeedCopy-->

Podemos especificar el tipo de destino como RDSWorker, sitio, grupo de escritorios (grupo de entrega) o usuario.

En general, debe orientar las directivas de alerta en tres ámbitos diferentes.

  1. Sitio: Se aplicará a todas las máquinas de todo el sitio y el umbral de alerta se aplicará al valor agregado de todas las máquinas incluidas.

  2. Grupo de escritorios: Se aplicará a todas las máquinas de todo el grupo de entrega y el umbral de alerta se aplicará al valor agregado de todas las máquinas incluidas.

  3. RDS Worker: Se aplicará a todas las máquinas del grupo de entrega, pero el valor del umbral de alerta se aplicará a las máquinas individuales.

  4. Usuario: Se aplicará a usuarios específicos con un valor de umbral de alerta evaluado para cada usuario.

Configuración de condiciones y parámetros

En el ejemplo, queríamos establecer una directiva de reglas de alerta para supervisar el número de sesiones. Hay otras condiciones para las que puede establecer directivas mediante el cmdlet Add-MonitorNotificationPolicyCondition. Puede especificar un tipo y una condición de alerta específicos en el cmdlet pasando el valor correspondiente para el parámetro ConditionType:

| Valor del tipo de condición | Tipo y estado de alerta comprobados | | — | — | | SessionsPeakConnectedCount | Pico de sesiones conectadas: Se detecta cuando un número instantáneo (muestras de un minuto) de sesiones con conexión máxima para todo el sitio de un grupo de entrega determinado supera el umbral de recuento configurado. | | SessionsPeakDisconnectedCount | Pico de sesiones desconectadas: Se detecta cuando un número instantáneo (muestras de un minuto) de sesiones pico desconectadas para todo el sitio de un grupo de entrega determinado supera el umbral de recuento configurado. | | Pico de sesiones simultáneas Detectadas cuando un número instantáneo (muestras de un minuto) de sesiones simultáneas máximas (totales) para todo el sitio de un grupo de entrega determinado supera el umbral de recuento configurado. | | ConnectionFailuresCount | Recuento de errores de conexión: se detecta cuando la cantidad de conexiones en un período de tiempo configurable falla en todo el sitio de un grupo de entrega en particular supera el umbral de recuento configurado. | | ConnectionFailuresRate | Tasa de fallas de conexión: se detecta cuando la proporción de errores de conexión e intentos de conexión en un período de tiempo configurable en todo el sitio de un grupo de entrega en particular supera un umbral porcentual configurado. | | FailedDesktopMachineCount | Máquinas con sistema operativo de escritorio fallidas: se detecta cuando un número instantáneo (muestras de un minuto) de máquinas con sistema operativo de escritorio en estado de error para todo el sitio de un grupo de entrega en particular supera el umbral de recuento configurado. | | FailedServerMachineCount | Máquinas con sistema operativo de servidor fallidas: se detecta cuando un número instantáneo (muestras de un minuto) de máquinas con sistema operativo de servidor en estado de error para todo el sitio de un grupo de entrega en particular supera el umbral de recuento configurado. | | AverageLogonDuration | Duración promedio del inicio de sesión: se detecta cuando el tiempo promedio de inicio de sesión en un período de tiempo configurable en todo el sitio o para un grupo de entrega en particular supera un umbral de duración configurado. | | RDSLoadEvaluator | RDS Load Evaluator Index: se detecta cuando un valor de índice de carga configurado se mantiene durante cinco minutos. | | SessionsConcurrentCount | Número máximo de sesiones simultáneas: se detecta cuando un número instantáneo (muestras de un minuto) de sesiones conectadas simultáneamente para todo el sitio de un grupo de entrega en particular supera el umbral de recuento configurado. | | LogonDuration | Duración del inicio de sesión (usuario): se detecta cuando la duración de los inicios de sesión del usuario especificado que se produjeron durante la última hora supera el umbral configurado. | | ICAroundTripTime | ICA RTT (usuario): se detecta cuando el tiempo de ida y vuelta ICA del usuario especificado, incluso en una sesión, supera el umbral configurado. | | ICARoundtripTimeAverage | ICA RTT (Average): se detecta cuando el promedio del tiempo de ida y vuelta de ICA para las sesiones de usuario de todo un sitio o grupo de entrega en particular supera el umbral configurado. | | ICARoundtripTimeSessionCount | ICA RTT (número de sesiones): se detecta cuando se supera el número de sesiones que superan el umbral de tiempo de ida y vuelta ICA para un grupo de entrega en particular. | | ICARoundtripTimeSessionCount | ICA RTT (% de sesiones): se detecta cuando se supera el porcentaje de sesiones que superan el tiempo promedio de ida y vuelta de ICA para un grupo de entrega en particular. |

Nota:

Para obtener más información sobre los distintos tipos de alertas y sus comportamientos, consulte el artículo Alertas y notificaciones: Director.

Con Add-MonitorNotificationPolicyCondition, podemos agregar el umbral de alarma, el umbral de alerta, los tiempos de notificación de alertas y alarmas y el período en función del tipo de alerta elegido.

    Add-MonitorNotificationPolicyCondition -Uid $policy.Uid -ConditionType SessionsConcurrentCount -AlertThreshold $alertThreshold -AlarmThreshold $alarmThreshold -AlertRenotification $timeSpan -AlarmRenotification $timeSpan
<!--NeedCopy-->
  • AlertThreshold: Valor de umbral en el que se activará la notificación de advertencia.

  • AlarmThreshold: Valor de umbral en el que se activará la notificación crítica.

  • AlertRenotification: Duración tras la cual se volverá a activar la notificación de advertencia.

  • AlarmRenotification: Duración tras la cual se volverá a activar la notificación crítica.

  • Period: Período en la que se comprueba la condición del umbral de alerta, advertencia o crítica.

Por último, el cmdlet New-MonitorNotificationPolicy le ayudará a crear otra directiva.

Documento técnico: Citrix Director: Administrar y configurar alertas y notificaciones con PowerShell