在现有部署中配置负载平衡

本文将指导您完成在现有 Session Recording 部署中使用 Citrix ADC 添加负载平衡节点的过程。在整个过程中,以下服务器将用作示例。还可以在 Azure 中部署 Session Recording 以及平衡其负载

  • Session Recording

    主机名 服务器角色 操作系统 IP 地址
    SRServer1 Session Recording Server Windows Server 10.63.32.55
    LBDC 域控制器 Windows Server 10.63.32.82
    TSVDA Session Recording Agent Windows Server 10.63.32.215
    SRSQL Session Recording 数据库和文件服务器 Windows Server 10.63.32.91

    所有 Session Recording 组件和域控制器共享一个域(例如 lb.com)。域管理员帐户(例如 lb\administrator)用于服务器登录。

  • Citrix ADC

    主机名 服务器角色 管理 IP 地址 (NSIP) 子网 IP 地址 (SNIP)
    Netscaler Citrix ADC VPX 实例 10.63.32.40 10.63.32.109

    有关详细信息,请参阅部署 Citrix ADC VPX 实例

步骤 1:在文件服务器上创建共享文件夹

  1. 使用域管理员帐户(例如 lb\administrator)登录文件服务器。

  2. 创建一个用于存储录制件的文件夹并将命名文件夹 SessionRecording(例如 C:\SessionRecording)。与 Session Recording Server 共享文件夹的读取/写入权限。以 SRServer1 为例,键入 LB\SRSERVER1$。必须使用美元符号 $

    共享文件夹的权限

    将文件夹的权限共享到目标服务器

  3. 在文件夹 SessionRecording 中创建子文件夹并命名子文件夹 share(例如 C:\SessionRecording\share)。

    共享文件夹的权限

  4. 创建另一个文件夹以恢复已存档的录制件并命名文件夹 SessionRecordingsRestored(例如 C:\ SessionRecordingsRestored)。与 Session Recording Server 共享文件夹的读取/写入权限。以 SRServer1 为例,键入 LB\SRSERVER1$。必须使用美元符号 $

  5. 在文件夹 SessionRecordingsRestored 中创建子文件夹并命名子文件夹 share(例如 C:\ SessionRecordingsRestored\share)。

步骤 2:配置现有的 Session Recording Server 以支持负载平衡

此步骤介绍了如何配置现有的 Session Recording Server 以支持负载平衡。步骤 7 详细介绍了向您的现有部署中添加更多 Session Recording Server 的过程。

  1. 使用域管理员帐户登录 Session Recording Server。

  2. 打开 Session Recording Server 属性

    Session Recording Server 属性

  3. 添加在步骤 1 中创建的通用命名约定 (UNC) 路径以存储和还原录制文件,在此示例中为 \\SRSQL\SessionRecording\share\\SRSQL\SessionRecordingRestored\shareSRSQL 为文件服务器的主机名。

    注意:

    除非在同一台计算机上安装播放器和 Session Recording Server,否则 Session Recording Player 无法在包含驱动器盘符或美元符号 ($) 的路径下播放文件。

    添加 UNC 路径

  4. HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server 下的 Session Recording Server 注册表项中添加一个值。

    值名称:EnableLB
    值数据:1(D_WORD,表示启用)

    添加注册表项值

  5. 重新启动 Citrix Session Recording Storage Manager 服务。

步骤 3:在 Citrix ADC 中配置负载平衡

有两种方法可以在 Citrix ADC 中配置负载平衡,即 TCP 直通和 SSL 卸载。

通过 TCP 直通配置负载平衡

以下拓扑显示了如何通过 TCP 直通配置负载平衡。

  • 如果您使用的是基于 Python 的 WebSocket 服务器(版本 1.0):

    通过 TCP 直通配置负载平衡

  • 如果您使用的是 IIS 中托管的 WebSocket 服务器(版本 2.0):

    通过 TCP 直通配置负载平衡

要通过 TCP 直通配置负载平衡,请完成以下步骤:

  1. 登录到 Citrix ADC VPX 实例。

  2. 导航到 Configuration(配置)> System(系统)> Settings(设置)> Configure Basic Features(配置基本功能)

    配置基本功能

  3. 选择负载平衡,然后单击确定

    选择负载平衡

  4. 添加负载平衡服务器。

    导航到流量管理 > 负载平衡 > 虚拟服务器,然后单击添加

    添加负载平衡服务器

    键入 Session Recording Server 的名称和 IP 地址,然后单击创建。例如:

    创建负载平衡服务器

    单击右上角的保存图标以保存更改。

    单击“保存”

  5. 对于 WebSocket 服务器版本 1.0,请为每个 Session Recording Server 添加端口 80、1801、22334 和 443 的负载平衡服务。对于 WebSocket 服务器版本 2.0,请为每个 Session Recording Server 添加端口 80、1801 和 443 的负载平衡服务。

    导航到流量管理 > 负载平衡 > 服务,然后单击添加

    负载平衡平衡服务

    为您添加的每个负载平衡服务键入名称。选择现有服务器,选择目标 Session Recording Server 的 IP 地址,选择 TCP 作为服务器协议,然后键入端口号。单击确定

    创建负载平衡服务

    将 TCP 协议监视器绑定到每个负载平衡服务。

    绑定 TCP 协议监视器

    单击右上角的保存图标以保存更改。

    保存创建的服务

    提示:

    只有 WebSocket 服务器版本 1.0 才需要端口 22334 的负载平衡服务。

  6. 添加负载平衡虚拟服务器。

    对于 WebSocket 服务器版本 1.0,请完成以下步骤以添加端口 80、443、1801 和 22334 的负载平衡虚拟服务器。对于 WebSocket 服务器版本 2.0,请添加端口 80、443 和 1801 的负载平衡虚拟服务器。例如:

    保存虚拟服务器

    导航到流量管理 > 负载平衡 > 虚拟服务器,然后单击添加

    添加虚拟服务器

    使用 Citrix ADC VIP 地址根据 TCP 协议添加每台虚拟服务器。

    负载平衡虚拟服务器

    将每个虚拟服务器绑定到同一端口的负载平衡服务。例如:

    负载平衡虚拟服务器服务绑定

    添加虚拟服务器服务绑定

    选择负载平衡方法。

    选择负载平衡方法

    对每台虚拟服务器配置持久性。我们建议您选择 SOURCEIP 作为持久性类型。有关详细信息,请参阅持久性设置

    配置持久性

  7. 在域控制器上为 Citrix ADC VIP 地址创建主机记录。

    创建主机记录

  8. 要通过 HTTPS 访问 Web 播放器,请确保 Citrix ADC 和每个 Session Recording Server 上都有 SAN 证书。SAN 证书包含 Citrix ADC 和每个 Session Recording Server 的 FQDN。

    SAN 证书

通过 SSL 卸载配置负载平衡

以下拓扑展示了如何通过 SSL 卸载配置负载平衡。

  • 如果您使用的是基于 Python 的 WebSocket 服务器(版本 1.0):

    通过 SSL 卸载配置负载平衡

  • 如果您使用的是 IIS 中托管的 WebSocket 服务器(版本 2.0):

    通过 SSL 卸载配置负载平衡

  1. 登录到 Citrix ADC VPX 实例。

  2. 导航到 Configuration(配置)> System(系统)> Settings(设置)> Configure Basic Features(配置基本功能)

    配置基本功能

  3. 选择 SSL 卸载负载平衡,然后单击确定

    选择 SSL 卸载和负载平衡

  4. 添加负载平衡服务器。

    导航到流量管理 > 负载平衡 > 虚拟服务器,然后单击添加

    添加负载平衡服务器

    键入 Session Recording Server 的名称和 IP 地址,然后单击创建。例如:

    创建负载平衡服务器

    单击右上角的保存图标以保存更改。

    单击“保存”

  5. 为您在上一步中添加的每个 Session Recording Server 添加负载平衡服务。

    为每个 Session Recording Server 添加以下负载平衡服务:

    • (仅当使用 WebSocket 服务器版本 1.0 时才需要)绑定到 TCP 监视器的端口 22334 的 SSL 负载平衡服务
    • 绑定到 HTTPS 监视器的端口 443 的 SSL 负载平衡服务
    • 绑定到 TCP 监视器的端口 1801 的 TCP 负载平衡服务

    例如:

    服务器的负载平衡服务

    导航到流量管理 > 负载平衡 > 服务,然后单击添加

    负载平衡平衡服务

    (仅当使用 WebSocket 服务器版本 1.0 时才需要)为每个 Session Recording Server 添加端口 22334 的 SSL 负载平衡服务。键入负载平衡服务的名称,选择现有服务器,选择 Session Recording Server 的 IP 地址,选择 SSL 作为服务器协议,键入端口号 22334,然后单击确定

    有关示例,请参见以下屏幕截图。

    创建端口 22334 的 SSL 负载平衡服务

    将 TCP 监视器绑定到刚添加的 SSL 负载平衡服务。

    将 TCP 协议监视器绑定到端口 22334 的 SSL 负载平衡服务

    为每个 Session Recording Server 添加端口 443 的 SSL 负载平衡服务。键入负载平衡服务的名称,选择现有服务器,选择 Session Recording Server 的 IP 地址,选择 SSL 作为服务器协议,键入端口号 443,然后单击确定

    创建端口 443 的 SSL 负载平衡服务

    将 HTTPS 监视器绑定到刚添加的 SSL 负载平衡服务。

    将 HTTPS 协议监视器绑定到端口 443 的 SSL 负载平衡服务

    为每个 Session Recording Server 添加端口 1801 的 TCP 负载平衡服务。键入负载平衡服务的名称,选择现有服务器,选择 Session Recording Server 的 IP 地址,选择 TCP 作为服务器协议,键入端口号 1801,然后单击确定

    创建端口 1801 的 SSL 负载平衡服务

    将 TCP 监视器绑定到刚添加的 TCP 负载平衡服务。

    将 TCP 协议监视器绑定到端口 1801 的 SSL 负载平衡服务

  6. (仅当使用 WebSocket 服务器版本 1.0 时才需要)为端口 22334 的每个 SSL 负载平衡服务添加 HTTP 配置文件。

    导航到系统 > 配置文件 > HTTP 配置文件,然后单击添加

    添加 HTTP 配置文件

    选中启用 WebSocket 连接复选框并接受其他默认设置。

    启用 WebSocket 连接

    键入 HTTP 配置文件的名称(例如 websocket_SSL)。

    返回到端口 22334 的每个 SSL 负载平衡服务,例如 srv-1-22334。单击 + 配置文件

    添加配置文件

    选择 HTTP 配置文件(例如 websocket_SSL),然后依次单击确定完成

    选择要添加的配置文件

  7. (仅当使用 WebSocket 服务器版本 2.0 时才需要)为端口 443 的每个 SSL 负载平衡服务添加 HTTP 配置文件。

  8. 在域控制器上为 Citrix ADC VIP 地址创建主机记录。

    创建主机记录

  9. 添加负载平衡虚拟服务器。

    使用 Citrix ADC VIP 地址添加以下负载平衡虚拟服务器。

    • (仅当使用 WebSocket 服务器版本 1.0 时才需要)基于 SSL 的端口 22334 的负载平衡虚拟服务器
    • 基于 SSL 的端口 443 的负载平衡虚拟服务器
    • 基于 TCP 的端口 1801 的负载平衡虚拟服务器

    有关示例,请参见以下屏幕截图。

    三个端口号的负载平衡虚拟服务器

    导航到流量管理 > 负载平衡 > 虚拟服务器,然后单击添加

    添加虚拟服务器

    使用 Citrix ADC VIP 地址添加每台虚拟服务器。键入服务器名称,选择 TCPSSL,然后如上文所述选择相关端口号。

    端口 80 的虚拟服务器

    将每个虚拟服务器绑定到同一端口的负载平衡服务。例如:

    绑定到同一端口的负载平衡服务

    提示:

    仅当使用 WebSocket 服务器版本 1.0 时,才需要端口 22334 的负载平衡服务。

    选择负载平衡方法。

    负载平衡方法

    对每台虚拟服务器配置持久性。我们建议您选择 SOURCEIP 作为持久性类型。有关详细信息,请参阅持久性设置

    配置持久性

    (仅当使用 WebSocket 服务器版本 1.0 时才需要)为端口 22334 的负载平衡虚拟服务器添加 HTTP 配置文件。

    为端口 22334 的负载平衡虚拟服务器添加 HTTP 配置文件

  10. 在 Citrix ADC 中安装使用者可选名称 (SAN) 证书。

    从可信证书颁发机构 (CA) 获取 PEM 格式的 SAN 证书。通过导航到流量管理 > SSL > 服务器证书向导,在 Citrix ADC 中提取并上载证书和私钥文件。

    有关详细信息,请参阅 SSL 证书

    安装证书

  11. 将 SAN 证书绑定到每个 SSL 负载平衡虚拟服务器。

    导航到流量管理 > 负载平衡 > 虚拟服务器,选择 SSL 负载平衡虚拟服务器,然后单击服务器证书

    服务器证书

    添加上文提及的 SAN 证书,然后单击绑定

步骤 4:配置现有的 Session Recording Agent 以支持负载平衡

  1. 使用域管理员帐户登录 Session Recording Agent。

  2. 打开 Session Recording Agent 属性

  3. 如果通过 TCP 使用 Microsoft 消息队列 (MSMQ),请完成此步骤。

    Session Recording Server 框中键入 Citrix ADC VIP 地址的 FQDN。

    “Session Recording Server”框

    在每个 Session Recording Server 上,在 HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\MSMQ\Parameters 下添加 IgnoreOSNameValidation DWORD 值并将其设置为 1。有关详细信息,请参阅知识中心文章 CTX248554

  4. 如果您通过 HTTP 或 HTTPS 使用 MSMQ,请完成此步骤。

    (如果此步骤已完成,请跳过)在域控制器上为 Citrix ADC VIP 地址创建主机记录。

    为 Citrix ADC VIP 地址创建主机记录

    在每个 Session Recording Server 上,运行 powershell.exe -file SrServerConfigurationSync.ps1 –Action AddRedirection – ADCHost <ADCHost> 命令以将 Citrix ADC 的重定向添加到本地主机。<ADCHost> 为 Citrix ADC VIP 地址的 FQDN。在 C:\Windows\System32\msmq\Mapping 下生成重定向文件(例如 sr_lb_map.xml)。

    添加重定向

    注意: 运行 PowerShell.exe 时切换到 SrServerConfigurationSync.ps1 所在的文件夹。

    Session Recording Server 框中键入 Citrix ADC VIP 地址的 FQDN。例如:

    键入 Citrix ADC VIP 地址的 FQDN

步骤 5:配置现有的 Session Recording Player 以支持负载平衡

在安装了 Session Recording Player 组件的每台计算机上,将 Citrix ADC VIP 地址或其 FQDN 添加为已连接的 Session Recording Server。

步骤 6:检查负载平衡是否适用于已配置的现有 Session Recording Server

  1. 启动 Citrix 虚拟会话。
  2. 检查是否可以录制会话。
  3. 检查 Web 播放器和 Session Recording Player 是否可以播放录制文件。

步骤 7:添加更多 Session Recording Server

  1. 在同一域中准备一台计算机,并在计算机上仅安装 Session Recording Server 和 Session Recording 管理员日志记录模块。

    仅安装 Session Recording Server 和 Session Recording 管理员日志记录模块

  2. 使用与现有 Session Recording Server 相同的数据库名称。例如:

    使用相同的数据库名称

  3. 禁用计算机上的网络防火墙。

  4. 在安装了 Session Recording 数据库的 SQL Server 上,将所有 Session Recording Server 计算机帐户添加到共享的 Session Recording 数据库中,然后为其分配 db_owner 权限。例如:

    将所有 Session Recording Server 计算机帐户添加到共享 Session Recording 数据库

    分配数据库权限

  5. 使用新 Session Recording Server 的计算机帐户(例如 LB\SRServer2$)共享录制件存储的读取/写入权限并还原文件夹(例如 SessionRecordingSessionRecordingsRestored)。必须使用美元符号 $

  6. 重复步骤 3 为新 Session Recording Server 添加负载平衡服务,然后编辑现有虚拟服务器以向负载平衡服务添加绑定。无需添加更多虚拟服务器。例如:

    新 Session Recording Server

    为新的 Session Recording Server 添加负载平衡服务

    编辑虚拟服务器

    虚拟服务器服务绑定

  7. 将 Session Recording 授权控制台配置文件 SessionRecordingAzManStore.xml 从现有的 Session Recording Server 复制到新的 Session Recording Server。该文件位于 <Session Recording Server installation path>\App_Data 下。

  8. 要将 MSMQ 通过 HTTP 或 HTTPS 用于新的 Session Recording Server,请完成以下步骤以导入当前正常运行的 Session Recording Server 的注册表设置。

    在现有的 Session Recording Server(例如 SRServer1)上,运行 powershell.exe -file SrServerConfigurationSync.ps1 –Action Export – ADCHost <ADCHost > 命令,其中 <ADCHost> 为 Citrix ADC VIP 地址的 FQDN。此时将生成导出的注册表文件(例如 SrServerConfig.reg)。

    SrServerConfig.reg 文件复制到新的 Session Recording Server 并运行 powershell.exe -file SrServerConfigurationSync.ps1 –Action Import,AddRedirection – ADCHost <ADCHost> 命令。EnableLB 值将添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server 下的新 Session Recording Server 的注册表项中,并在 C:\Windows\System32\msmq\Mapping 下添加 sr_lb_map.xml 文件。

  9. 重复该过程以添加另一个 Session Recording Server。

故障排除

  • 对 Session Recording Server 使用 CNAME 记录或 ALIAS 记录时,不会录制会话。有关详细信息,请参阅知识中心文章 CTX248554

  • 录制文件可以存储在本地,但不能存储在通用命名约定 (UNC) 路径中。要解决此问题,请将 Citrix Session Recording Storage Manager 服务的启动模式更改为 Automatic (Delayed Start)(自动(延迟启动))。