Session Recording

Équilibrage de charge

L’enregistrement de session prend en charge l’équilibrage de charge entre les serveurs d’enregistrement de session. Pour utiliser cette fonctionnalité, configurez l’équilibrage de charge sur Citrix ADC afin que les serveurs d’enregistrement de session puissent réaliser l’équilibrage de charge et le basculement automatique.

Une amélioration a été apportée, permettant de synchroniser certaines configurations d’équilibrage de charge entre tous les serveurs d’enregistrement de session.

Remarque :

Cette fonctionnalité nécessite la version 7.16 ou ultérieure du serveur d’enregistrement de session et de l’agent d’enregistrement de session.

Modifications apportées à l’enregistrement de session pour prendre en charge l’équilibrage de charge :

  • Tous les serveurs d’enregistrement de session partagent un dossier pour stocker les fichiers d’enregistrement.
  • Tous les serveurs d’enregistrement de session partagent une base de données d’enregistrement de session.
  • (Recommandé) Installez une seule console de stratégie d’enregistrement de session et tous les serveurs d’enregistrement de session partagent cette console.

Configurer l’équilibrage de charge

Pour utiliser cette fonctionnalité, effectuez les étapes suivantes sur Citrix ADC et sur les différents composants d’enregistrement de session :

Configurer l’équilibrage de charge (partie Citrix ADC)

Configurer les serveurs d’équilibrage de charge

Ajoutez les serveurs d’enregistrement de session aux serveurs d’équilibrage de charge dans Citrix ADC.

Configurer les services d’équilibrage de charge

  1. Ajoutez un service d’équilibrage de charge pour chaque protocole nécessaire sur chaque serveur d’enregistrement de session.
  2. (Recommandé) Sélectionnez le moniteur de protocole pertinent pour lier chaque moniteur de service.

Configurer les serveurs virtuels d’équilibrage de charge

  1. Créez des serveurs virtuels avec la même adresse VIP Citrix ADC en fonction des protocoles nécessaires et liez les serveurs virtuels aux services d’équilibrage de charge pertinents.
  2. Configurez la persistance sur chaque serveur virtuel.
  3. (Recommandé) Choisissez LEASTBANDWITH ou LEASTPACKETS comme méthode d’équilibrage de charge plutôt que la méthode par défaut (LEASTCONNECTION).
  4. Créez un certificat pour que le serveur virtuel HTTPS soit ACTIF.

Configurer l’équilibrage de charge (partie Enregistrement de session)

Sur chaque serveur où vous avez installé le serveur d’enregistrement de session, effectuez les opérations suivantes

  1. (Recommandé) Saisissez le même nom de base de données d’enregistrement de session lors de l’installation du serveur d’enregistrement de session.
  2. Si vous choisissez la fonctionnalité de journalisation de l’administrateur, Citrix vous recommande de saisir le même nom de base de données de journalisation de l’administrateur lors de l’installation de chaque serveur d’enregistrement de session.
  3. Après avoir partagé l’autorisation de lecture/écriture du dossier de stockage de fichiers avec tous les comptes d’ordinateur du serveur d’enregistrement de session, modifiez le dossier de stockage de fichiers pour l’utiliser comme dossier partagé dans les propriétés du serveur d’enregistrement de session. Pour plus d’informations, consultez Spécifier où les enregistrements sont restaurés.
  4. Ajoutez une valeur à la clé de registre du serveur d’enregistrement de session à l’emplacement HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server. Nom de la valeur : EnableLB Données de la valeur : 1 (DWORD, signifiant activer)
  5. Si vous choisissez le protocole HTTP ou HTTPS pour la file d’attente de messages du gestionnaire de stockage d’enregistrement de session, créez un enregistrement d’hôte pour l’adresse VIP Citrix ADC, ajoutez des redirections dans C:\Windows\System32\msmq\Mapping\sample_map, et redémarrez le service de file d’attente de messages.

    La redirection est similaire à:

    <redirections xmlns="msmq-queue-redirections.xml">
            <redirection>
                        <from>http://<ADCHost>*/msmq/private$/CitrixSmAudData</from>
                        <to>http://<LocalFqdn>/msmq/private$/CitrixSmAudData</to>
            </redirection>
            <redirection>
                        <from>https://<ADCHost>*/msmq/private$/CitrixSmAudData</from>
                        <to>https://<LocalFqdn>/msmq/private$/CitrixSmAudData</to>
            </redirection>
    </redirections>
    <!--NeedCopy-->
    

    <ADCHost> est le FQDN créé de l’adresse VIP de Citrix ADC, et <LocalFqdn> est le FQDN de l’hôte local.

  6. (Recommandé) Après avoir configuré un registre de serveur d’enregistrement de session, vous pouvez utiliser le script suivant pour exporter les configurations de ce registre de serveur et importer le registre dans les autres registres de serveur d’enregistrement de session. Vous pouvez également utiliser le script pour ajouter un mappage de redirection pour la mise en file d’attente des messages.

    # Copyright (c) Citrix Systems, Inc.  All rights reserved.
    <#
           .SYNOPSIS
    
           This script is used to sync configurations between Session Recording Servers for load balancing deployment.
    
           .DESCRIPTION
    
        Will do below kinds of actions:
    
        1. Export values from the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server to SrServerConfig.reg;
    
        2. Import from SrServerConfig.reg and overwrite values in registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server;
    
        3. Add redirection mapping sr_lb_map.xml in %windir%\System32\msmq\mapping\;
    
           3.1 sr_lb_map.xml will consist redirection rule for both http and https, and not port specific.
    
           .PARAMETER Action
    
           Export - to export the registry configurations of Session Recording Server to a registry file
    
           Import - to import the registry configurations of Session Recording Server from a registry file
    
           AddRedirection - to add HTTP/HTTPS redirection for MSMQ
    
           .PARAMETER ADCHost
    
           The host name or FQDN of Citrix ADC.
    
        .OUTPUTS
    
        Exported configuration file (SrServerConfig.reg) or backup configuration file (SrServerConfig.reg.bk)
    
           .EXAMPLE
    
           SrServerConfigurationSync.ps1 -Action Export
    
           .EXAMPLE
    
           SrServerConfigurationSync.ps1 -Action Import
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action AddRedirection -ADCHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,AddRedirection -ADCHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,Export,AddRedirection -ADCHost netscaler.xd.local
    
    #>
    
    ######################
    
    # Parameters section #
    
    ######################
    
    Param(
    
           [Parameter(Mandatory = $true)]
    
           [ValidateSet("Export", "Import", "AddRedirection")]
    
           [string[]] $Action,
    
           [Parameter(Mandatory = $false)]
    
           [string] $ADCHost
    
    )
    
    #############################
    
    # Default variables section #
    
    #############################
    
    $SR_SERVER_REG_PATH   = "HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server"
    
    $REG_FILE_PATH        = "SrServerConfig.reg"
    
    $REG_BACKUP_FILE_PATH = "SrServerConfig.reg.bk"
    
    $TEMP_REDIRECT_XML    = "sr_lb_map.xml"
    
    $REDIRECT_XML_PATH    = "$env:windir\System32\msmq\mapping"
    
    ############# MAIN ###############
    
    Try
    
    {
    
           If ($Action -Contains "export") {
    
                  Write-Host "Exporting current Session Recording Server Configuration to registry file: $REG_FILE_PATH ..." -ForegroundColor Green
    
                  & REG EXPORT $SR_SERVER_REG_PATH $REG_FILE_PATH /Y
    
                  Write-Host "Finish exporting." -ForegroundColor Green
    
           }
    
           If ($Action -Contains "import")
    
           {
    
                  If (!(Test-Path $REG_FILE_PATH))
    
                  {
    
                         Write-Host "No $REG_FILE_PATH founded. Aborted." -ForegroundColor Yellow
    
                         Exit 0
    
                  }
    
                  # Back up previous registry key
    
                  Write-Host "Backing up Session Recording Server Configuration to Registry file: $REG_BACKUP_FILE_PATH ..." -ForegroundColor Green
    
                  & REG EXPORT $SR_SERVER_REG_PATH $REG_BACKUP_FILE_PATH /Y
    
                  Write-Host "Importing Session Recording Server Configuration from Registry file: $REG_FILE_PATH ..." -ForegroundColor Green
    
                  & REG IMPORT $REG_FILE_PATH 2>$null
    
                  Write-Host "Finish importing." -ForegroundColor Green
    
           }
    
           If ($Action -Contains "addredirection")
    
           {
    
                  # Check if Citrix ADC host is given; If not, exit normally with warning.
    
                  If(([String]::IsNullOrEmpty($ADCHost)))
    
                  {
    
                         Write-Host "No Citrix ADC host name is specified. Finish adding redirection." -ForegroundColor Yellow
    
                         Exit 0
    
                  }
    
                  If (!(Test-Path $TEMP_REDIRECT_XML))
    
                  {
    
                         New-Item $TEMP_REDIRECT_XML -Type file
    
                  }
    
                  $SysInfo = Get-WmiObject -Class Win32_ComputerSystem
    
                  $LocalFqdn = "$($SysInfo.Name).$($SysInfo.Domain)"
    
                  $RedirectXmlContent =
    
    @"
    
    <redirections xmlns="msmq-queue-redirections.xml">
    
           <redirection>
    
                  <from>http://$ADCHost*/msmq/private$/CitrixSmAudData</from>
    
                  <to>http://$LocalFqdn/msmq/private$/CitrixSmAudData</to>
    
           </redirection>
    
           <redirection>
    
                  <from>https://$ADCHost*/msmq/private$/CitrixSmAudData</from>
    
                  <to>https://$LocalFqdn/msmq/private$/CitrixSmAudData</to>
    
           </redirection>
    
    </redirections>
    
    "@
    
                  # Don't take care of encoding
    
                  $RedirectXmlContent | Out-File -FilePath $TEMP_REDIRECT_XML
    
                  Write-Host "Copying $TEMP_REDIRECT_XML to $REDIRECT_XML_PATH ..." -ForegroundColor Green
    
                  Copy-Item $TEMP_REDIRECT_XML -Destination $REDIRECT_XML_PATH
    
                  Write-Host "Restarting MSMQ service ..." -ForegroundColor Green
    
                  Restart-Service msmq -Force
    
                  Write-Host "Finish adding HTTP/HTTPS Redirection for MSMQ." -ForegroundColor Green
    
           }
    
           Exit 0
    
    }
    
    Catch
    
    {
    
           Write-Host "$_.Exception.Message" -ForegroundColor Red
    
           Exit 1
    
    }
    
    Finally
    
    {
    
           # Nothing to do
    
    }
    
    <!--NeedCopy-->
    

6a. Enregistrez l’exemple de code précédent en tant que script PowerShell, par exemple, SrServerConfigurationSync.ps1.

6b. Sur un serveur d’enregistrement de session, après avoir configuré la valeur de registre EnableLB, démarrez une invite de commandes en tant qu’administrateur et exécutez la commande powershell.exe -file SrServerConfigurationSync.ps1 –Action Export,AddRedirection –ADCHost <ADCHost>, où <ADCHost> est le FQDN créé de l’adresse VIP de Citrix ADC.

6c. Après l’exécution du script, un fichier de registre exporté nommé SrServerConfig.reg est généré et un fichier sr_lb_map.xml est ajouté au chemin C:\Windows\System32\msmq\Mapping.

6d. Sur les autres serveurs d’enregistrement de session, copiez SrServerConfig.reg généré à l’étape précédente, démarrez une invite de commandes en tant qu’administrateur et exécutez la commande powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection –ADCHost <ADCHost>, où <ADCHost> est le FQDN créé de l’adresse VIP de Citrix ADC.

6e. Après l’exécution du script, la valeur EnableLB est ajoutée aux autres clés de registre du serveur d’enregistrement de session et un fichier sr_lb_map.xml est ajouté au chemin C:\Windows\System32\msmq\Mapping.

Sur la machine où vous avez installé l’agent d’enregistrement de session, effectuez les opérations suivantes dans les propriétés de l’agent d’enregistrement de session

  • Si vous choisissez le protocole HTTP ou HTTPS pour la file d’attente de messages du gestionnaire de stockage d’enregistrement de session, tapez le FQDN de l’adresse VIP de Citrix ADC dans la zone de texte Session Recording Server.
  • Si vous choisissez le protocole TCP par défaut pour la file d’attente de messages du gestionnaire de stockage d’enregistrement de session, tapez l’adresse VIP de Citrix ADC dans la zone de texte Session Recording Server.

Sur la machine où vous avez installé le lecteur d’enregistrement de session, effectuez les opérations suivantes

Ajoutez l’adresse VIP de Citrix ADC ou son FQDN en tant que serveur d’enregistrement de session connecté.

Sur le serveur SQL où vous avez installé la base de données d’enregistrement de session, effectuez les opérations suivantes

Ajoutez tous les comptes de machine du serveur d’enregistrement de session à la base de données d’enregistrement de session partagée et attribuez-leur l’autorisation db_owner.

Équilibrage de charge