Session Recording

在现有部署环境中配置负载均衡

本文指导您在现有会话录制部署中使用 Citrix ADC 添加负载平衡节点。以下服务器在整个过程中用作示例。您还可以在 Azure 中部署和负载平衡会话录制

  • 会话录制功能

    主机名 服务器角色 操作系统 IP 地址
    SR 服务器 1 会话录制服务器 视窗服务器 10.63.32.55
    负载均衡和内容交换 域控制器服务器 Windows 服务器系统 10.63.32.82
    特斯维达 会话录制代理 视窗服务器 10.63.32.215
    会话录制 SQL 会话录制数据库和文件服务器 视窗服务器 10.63.32.91

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

  • 思杰 ADC

    主机名 服务器角色 管理 IP 地址 (NSIP) 子网 IP 地址 (SNIP)
    奈思乐 Citrix 应用交付控制器 VPX 实例 10.63.32.40 10.63.32.109

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

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

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

  2. 创建一个文件夹以存储录制件,并将该文件夹命名为 SessionRecording,例如 C:\SessionRecording。与会话录音服务器共享该文件夹的读/写权限。以 SRServer1 为例,键入 LB\SRSERVER1$。需要美元符号 $

    文件夹的共享权限

    将文件夹共享权限授予目标服务器

  3. SessionRecording 文件夹中创建一个子文件夹,并将该子文件夹命名为 share,例如 C:\SessionRecording\share

    文件夹的共享权限

  4. 创建另一个文件夹以还原存档的录制件,并将该文件夹命名为 SessionRecordingsRestored,例如 C:\ SessionRecordingsRestored。与会话录音服务器共享该文件夹的读/写权限。以 SRServer1 为例,键入 LB\SRSERVER1$。需要美元符号 $

  5. SessionRecordingsRestored 文件夹中创建一个子文件夹,并将该子文件夹命名为 share,例如 C:\ SessionRecordingsRestored\share

步骤 2:配置现有会话录音服务器以支持负载平衡

此步骤介绍如何配置现有会话录音服务器以支持负载平衡。步骤 7 详细介绍了将更多会话录音服务器添加到现有部署的过程。

  1. 通过使用域管理员帐户登录到一台会话录制服务器。

  2. 打开 会话录制服务器属性

    会话录制服务器属性

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

    注意:

    会话录制播放器无法播放包含驱动器号或美元符号 ($) 的路径下的文件,除非您在同一台计算机上安装播放器和会话录制服务器。

    添加 UNC 路径

  4. HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Server 处将会话录制服务器注册表项添加一个值。

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

    添加注册表项值

  5. 重新启动 Citrix 会话录制存储管理器服务。

步骤 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. 导航到 配置 > 系统 > 设置 > 配置基本功能

    配置基本功能

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

    选择负载平衡

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

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

    添加负载平衡服务器

    键入会话录制服务器的名称和 IP 地址,然后单击 创建。例如:

    创建负载平衡服务器

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

    点击保存(/zh-cn/session-recording/2201/media/save-icon.png)

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

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

    添加负载平衡服务(/zh-cn/session-recording/2201/media/add-load-balancing-services.png)

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

    创建负载平衡服务(/zh-cn/session-recording/2201/media/create-a-load-balancing-service.png)

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

    绑定 TCP 协议监视器(/zh-cn/session-recording/2201/media/bind-tcp-protocol-monitor.png)

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

    保存已创建的服务(/zh-cn/session-recording/2201/media/services-save-icon.png)

    提示:

    端口 22334 的负载平衡服务仅适用于 WebSocket 服务器版本 1.0。

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

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

    保存虚拟服务器

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

    添加虚拟服务器

    根据 TCP 协议,添加每个具有 Citrix ADC VIP 地址的虚拟服务器。

    负载平衡虚拟服务器

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

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

    添加虚拟服务器服务绑定

    选择负载平衡方法。

    选择负载平衡方法

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

    配置持久性

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

    创建主机记录

  8. 要通过 HTTPS 访问 Web 播放器,请确保 Citrix ADC 和每个会话录制服务器上都提供了 SAN 证书。SAN 证书包含 Citrix ADC 和每个会话录制服务器的 FQDN。

    主题备用名称证书

通过 SSL 卸载配置负载平衡

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

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

    通过 SSL 卸载配置负载平衡

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

    通过 SSL 卸载配置负载平衡

  1. 请登录到您的 Citrix ADC VPX 实例中。

  2. 导航到 配置 > 系统 > 设置 > 配置基本功能

    配置基本功能

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

    选择 SSL 卸载和负载平衡

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

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

    添加负载平衡服务器

    键入会话录音服务器的名称和 IP 地址,然后单击“创建”。例如:

    创建负载平衡服务器(/zh-cn/session-recording/2201/media/create-a-load-balancing-server.png)

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

    单击保存(/zh-cn/session-recording/2201/media/save-icon.png)

  5. 为您在上一步中添加的每个会话录音服务器添加负载平衡服务。

    为每个会话录音服务器添加以下负载平衡服务:

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

    例如:

    服务器的负载平衡服务(/zh-cn/session-recording/2201/media/load-balancing-services-for-a-server.png)

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

    添加负载平衡服务(/zh-cn/session-recording/2201/media/add-load-balancing-services.png)

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

    例如,请参阅以下屏幕截图。

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

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

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

    为每个会话录制服务器添加一个端口 443 的 SSL 负载平衡服务。 键入负载平衡服务的名称,选择 Existing Server,选择会话录制服务器的 IP 地址,选择 SSL 作为服务器协议,键入端口号 443,然后单击 OK

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

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

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

    为每个会话录制服务器添加一个端口 1801 的 TCP 负载平衡服务。 键入负载平衡服务的名称,选择 Existing Server,选择会话录制服务器的 IP 地址,选择 TCP 作为服务器协议,键入端口号 1801,然后单击 OK

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

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

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

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

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

    添加 HTTP 配置文件

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

    启用网络套接字连接

    键入 HTTP 配置文件的名称,例如 websocket_SSL

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

    添加配置文件

    选择 HTTP 配置文件,例如 websocket_SSL,然后单击 OK,再单击 Done

    选择要添加的配置文件

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

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

    创建主机记录

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

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

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

    例如,请参阅以下屏幕截图。

    三个端口号的负载均衡虚拟服务器(/zh-cn/session-recording/2201/media/load-balancing-virtual-servers-of-three-port-numbers.png)

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

    添加虚拟服务器(/zh-cn/session-recording/2201/media/add-virtual-servers.png)

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

    端口 80 的虚拟服务器(/zh-cn/session-recording/2201/media/virtual-server-port-80.png)

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

    绑定到相同端口的负载均衡服务(/zh-cn/session-recording/2201/media/bind-to-service-of-same-port.png)

    提示:

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

    选择负载均衡方法。

    负载均衡方法(/zh-cn/session-recording/2201/media/least-bandwidth.png)

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

    配置持久性(/zh-cn/session-recording/2201/media/sourceip.png)

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

    为端口 22334 的负载均衡虚拟服务器添加 HTTP 配置文件(/zh-cn/session-recording/2201/media/add-profile-for-virtual-server-of-port-22334.png)

  10. 在 Citrix ADC 中安装主题备用名称 (SAN) 证书。

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

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

    安装证书

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

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

    服务器证书

    添加前面提到的 SAN 证书,然后单击 绑定

步骤 4:配置现有会话录制代理以支持负载平衡

  1. 通过使用域管理员帐户登录到会话录制代理。

  2. 打开 会话录制代理属性

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

    会话录制服务器 框中键入 Citrix ADC VIP 地址的 FQDN。

    会话录制服务器框

    在每个会话录制服务器上,在 HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\MSMQ\Parameters 下添加并将 IgnoreOSNameValidation DWORD 值设置为 1

  4. 如果您使用基于 HTTP 或 HTTPS 的 MSMQ,请完成此步骤。

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

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

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

    添加重定向

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

    会话录制服务器 框中键入 Citrix ADC VIP 地址的 FQDN。例如:

    键入您的 Citrix ADC VIP 地址的完全限定域名

步骤 5:配置现有会话录制播放器以支持负载平衡

在安装了会话录制播放器组件的每台计算机上,将 Citrix ADC VIP 地址或其 FQDN 添加为连接的会话录制服务器。

步骤 6:检查负载平衡是否适用于已配置的现有会话录制服务器

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

步骤 7:添加更多会话录制服务器

  1. 在同一域中准备一台计算机,并仅在该计算机上安装会话录音服务器和会话录音管理员日志记录模块。

    仅安装会话录音服务器和会话录音管理员日志记录模块(/zh-cn/session-recording/2201/media/install-only-session-recording-server-and-administrator-logging-modules.png)

  2. 使用与现有会话录音服务器相同的数据库名称。例如:

    使用相同的数据库名称(/zh-cn/session-recording/2201/media/use-the-same-database-names.png)

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

  4. 在安装了会话录音数据库的 SQL Server 上,将会话录音服务器的所有计算机帐户添加到共享会话录音数据库,并为其分配 db_owner 权限。例如:

    将会话录音服务器的所有计算机帐户添加到共享会话录音数据库(/zh-cn/session-recording/2201/media/shared-database.png)

    分配数据库权限(/zh-cn/session-recording/2201/media/assign-database-permission.png)

  5. 与新会话录音服务器的计算机帐户(例如 LB\SRServer2$)共享录音存储和还原文件夹的读/写权限,例如 SessionRecordingSessionRecordingsRestored。需要美元符号 $

  6. 重复 步骤 3 以添加新会话录音服务器的负载平衡服务,并编辑现有虚拟服务器以添加与负载平衡服务的绑定。无需添加更多虚拟服务器。例如:

    新的会话录音服务器(/zh-cn/session-recording/2201/media/a-new-session-recording-server.png)

    为新的会话录音服务器添加负载平衡服务(/zh-cn/session-recording/2201/media/add-load-balancing-services-for-new-session-recording-server.png)

    编辑虚拟服务器(/zh-cn/session-recording/2201/media/edit-virtual-servers.png)

    虚拟服务器服务绑定(/zh-cn/session-recording/2201/media/virtual-server-service-binding-2.png)

  7. 将会话录音授权控制台配置文件 SessionRecordingAzManStore.xml 从现有会话录音服务器复制到新的会话录音服务器。该文件位于 <Session Recording Server installation path>\App_Data 中。

  8. 要为新的会话录制服务器通过 HTTP 或 HTTPS 使用 MSMQ,请完成以下步骤以导入当前正在运行的会话录制服务器的注册表设置。

    在现有会话录制服务器上(例如 SRServer1),运行 powershell.exe -file SrServerConfigurationSync.ps1 –Action Export – ADCHost <ADCHost > 命令,其中 <ADCHost> 是 Citrix ADC VIP 地址的 FQDN。将生成一个导出的注册表文件 SrServerConfig.reg

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

  9. 重复此过程以添加另一个会话录制服务器。

故障排除

  • 当您为会话录制服务器使用 CNAME 记录或 ALIAS 记录时,会话不会被录制。要解决此问题,请参阅 Microsoft 文档

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