Lastausgleich

Dieses Feature unterstützt den Lastausgleich für die Sitzungsaufzeichnungsserver. Um dieses Feature zu nutzen, konfigurieren Sie den Lastausgleich in Citrix NetScaler, damit ein automatischer Lastausgleich mit Failover für die Sitzungaufzeichnungsserver erzielt wird.

Es ist nun möglich, dass einige Lastausgleichskonfigurationen zwischen allen Sitzungsaufzeichnungsservern synchronisiert werden können.

Hinweis:

Das Feature erfordert mindestens Version 7.16 des Sitzungsaufzeichnungsservers und des Sitzungsaufzeichnungsagents.

Änderungen an der Sitzungsaufzeichnung mit Lastausgleich:

  • Alle Server der Sitzungsaufzeichnung verwenden denselben Ordner für die Speicherung von Aufzeichnungsdateien.
  • Alle Server der Sitzungsaufzeichnung verwenden dieselbe Datenbank für die Sitzungsaufzeichnung.
  • (Empfohlen) Installation einer Richtlinienkonsole für die Sitzungsaufzeichnung und Verwendung dieser Konsole durch alle Sitzungsaufzeichnungsserver.

Konfigurieren des Lastausgleichs

Zur Verwendung dieses Features führen Sie folgende Schritte auf Citrix NetScaler und den verschiedenen Sitzungsaufzeichnungskomponenten aus:

Konfigurieren des Lastausgleichs (Citrix NetScaler)

Konfigurieren der Lastausgleichsserver

Fügen Sie die Sitzungsaufzeichnungsserver den Lastausgleichsservern in Citrix NetScaler hinzu.

Konfigurieren der Lastausgleichsdienste

  1. Fügen Sie einen Lastausgleichsdienst für jedes erforderliche Protokoll auf jedem Sitzungsaufzeichnungsserver hinzu.
  2. (Empfohlen) Wählen Sie die entsprechende Protokollüberwachung zum Binden jeder Dienstüberwachung.

Konfigurieren der virtuellen Server für den Lastausgleich

  1. Erstellen Sie virtuelle Server mit derselben NetScaler VIP-Adresse auf Grundlage der erforderlichen Protokolle und binden Sie die virtuellen Server an den jeweiligen Lastausgleichsdienst.
  2. Konfigurieren Sie Persistenz auf jedem virtuellen Server.
  3. (Empfohlen) Wählen Sie LEASTBANDWITH oder LEASTPACKETS als Lastausgleichsmethode anstelle der Standardmethode LEASTCONNECTION.
  4. Erstellen Sie ein Zertifikat, um den virtuellen HTTPS-Server zu aktualisieren.

Konfigurieren des Lastausgleichs (Sitzungsaufzeichnung)

Führen Sie auf jedem Server, auf dem der Sitzungsaufzeichnungsserver installiert wurde, folgende Schritte aus

  1. (Empfohlen) Geben Sie während der Installation des Sitzungsaufzeichnungsservers denselben Namen für die Sitzungsaufzeichnungsdatenbank ein.
  2. Wenn Sie die Administratorprotokollierung wählen, empfiehlt Citrix, dass Sie bei der Installation der einzelnen Sitzungsaufzeichnungsserver jeweils denselben Datenbanknamen für die Administratorprotokollierung eingeben.
  3. Wenn Sie allen Maschinenkonten der Sitzungsaufzeichnungsserver Lese-/Schreibberechtigung für den Ordner zur Dateispeicherung erteilt haben, ändern Sie die Einstellung für Sitzungsaufzeichnungsserver - Eigenschaften so, dass der Ordner als gemeinsamer Ordner verwendet wird. Weitere Informationen finden Sie unter Angeben des Speicherortes für wiederhergestellte Dateien.
  4. Fügen Sie in der Registrierung des Sitzungsaufzeichnungsservers einen Schlüssel hinzu (HKEY_LOCAL_MACHINE\Software\Citrix\SmartAuditor\Server).
    Schlüsselname: EnableLB
    ;Schlüsselwert: 1 (D_WORD, was “Aktivieren” bedeutet)
  5. Wenn Sie für die Nachrichtenwarteschlage des Speichermanagers der Sitzungsaufzeichnung HTTP oder HTTPS auswählen, erstellen Sie einen Host für die NetScaler-VIP-Adresse, fügen Sie eine Umleitung in C:\Windows\System32\msmq\Mapping\sample_map hinzu und starten Sie den Message Queuing-Dienst neu.

    Die Umleitung sieht in etwa folgendermaßen aus:

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

    Wobei <NetScalerHost> der erstellte FQDN der NetScaler-VIP-Adresse und <LocalFqdn> der FQDN des lokalen Hosts ist.

  6. (Empfohlen) Nach dem Konfigurieren der Registrierung eines Sitzungsaufzeichnungsservers können Sie mit dem folgenden Skript die Konfigurationen aus dieser Serverregistrierung exportieren und in die Registrierungen der anderen Sitzungsaufzeichnungsserver importieren. Sie können das Skript auch zum Hinzufügen einer Umleitungszuordnung für die Nachrichtenwarteschlange verwenden.

    # 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 NetScalerHost
    
           The host name or FQDN of NetScaler.
    
        .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 -NetScalerHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,AddRedirection -NetScalerHost netscaler.xd.local
    
           .EXAMPLE
    
        SrServerConfigurationSync.ps1 -Action Import,Export,AddRedirection -NetScalerHost netscaler.xd.local
    
    #>
    
    ######################
    
    # Parameters section #
    
    ######################
    
    Param(
    
           [Parameter(Mandatory = $true)]
    
           [ValidateSet("Export", "Import", "AddRedirection")]
    
           [string[]] $Action,
    
           [Parameter(Mandatory = $false)]
    
           [string] $NetScalerHost
    
    )
    
    #############################
    
    # 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 netscaler host is given; If not, exit normally with warning.
    
                  If(([String]::IsNullOrEmpty($NetScalerHost)))
    
                  {
    
                         Write-Host "No NetScaler 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://$NetScalerHost*/msmq/private$/CitrixSmAudData</from>
    
                  <to>http://$LocalFqdn/msmq/private$/CitrixSmAudData</to>
    
           </redirection>
    
           <redirection>
    
                  <from>https://$NetScalerHost*/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
    
    }
    
    

6a. Speichern Sie den o. g. Beispielcode als PowerShell-Skript, z. B. SrServerConfigurationSync.ps1.

6b. Starten Sie auf einem Sitzungsaufzeichnungsserver nach dem Konfigurieren des Registrierungsschlüssels EnableLB eine Eingabeaufforderung als Administrator und führen Sie den Befehl powershell.exe -file SrServerConfigurationSync.ps1 –Action Export,AddRedirection –NetScalerHost <NetScalerHost> aus, wobei <NetScalerHost> der erstellte FQDN der NetScaler VIP-Adresse ist.

6c. Nachdem das Skript ausgeführt wurde, wird eine exportierte Registrierungsdatei mit dem Namen SrServerConfig.reg generiert und die Datei sr_lb_map.xml wird dem Pfad C:\Windows\System32\msmq\Mapping hinzugefügt.

6d. Kopieren Sie für die anderen Sitzungsaufzeichnungsserver die in dem obigen Schritt erstellte Datei SrServerConfig.reg, starten Sie dann eine Eingabeaufforderung als Administrator und führen Sie den Befehl powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection –NetScalerHost <NetScalerHost> aus, wobei <NetScalerHost> der erstellte FQDN der NetScaler VIP-Adresse ist.

6e. Nachdem das Skript ausgeführt wurde, wird der Schlüssel EnableLB den anderen Registrierungen der Sitzungsaufzeichnungsserver hinzugefügt und eine Datei sr_lb_map.xml wird unter dem Pfad C:\Windows\System32\msmq\Mapping hinzugefügt.

Führen Sie auf der Maschine mit installiertem Sitzungsaufzeichnungsagenten folgende Schritte in den Sitzungsaufzeichnungsagent-Eigenschaften aus

  • Wenn Sie für die Nachrichtenwarteschlange des Speichermanagers der Sitzungsaufzeichnung HTTP oder HTTPS wählen, geben Sie den FQDN der NetScaler-VIP-Adresse im Textfeld Sitzungsaufzeichnungsserver ein.
  • Wenn Sie für die Nachrichtenwarteschlange des Speichermanagers der Sitzungsaufzeichnung das Standardprotokoll TCP wählen, geben Sie die NetScaler-VIP-Adresse im Textfeld Sitzungsaufzeichnungsserver ein.

Führen Sie auf der Maschine mit installiertem Sitzungsaufzeichnungsplayer folgende Schritte aus

Fügen Sie die NetScaler-VIP-Adresse oder den zugehörigen FQDN als verbundenen Sitzungsaufzeichnungsserver hinzu.

Führen Sie auf dem SQL-Server mit installierter Datenbank für die Sitzungsaufzeichnung folgende Schritte aus

Fügen Sie alle Maschinenkonten der Sitzungsaufzeichnung der Datenbank für die Sitzungsaufzeichnung hinzu und weisen Sie ihnen die Berechtigung db_owner zu.

Lastausgleich