从 CVAD 核心组件上传 AOT 日志

Last published : Nov 13, 2026
从 CVAD 2507 CU1 和 CVAD 2511 开始,将从所有适用的组件收集 AOT 日志。支持的组件包括 DDC、StoreFront、Citrix Director、Windows VDA、Linux VDA、Mac VDA、许可证服务器、FAS、云连接器、PVS、WEM、会话录制、Citrix Workspace UI 和 Citrix Gateway。

通过 Citrix Web Studio 为本地 CVAD 集中配置日志转发

Citrix Web Studio 提供了一个集中位置,用于配置整个站点的 Always-on Tracing (AOT) 日志转发。此设置定义了 AOT 日志的发送位置,并自动将配置传播到环境中的相关组件。
在 Web Studio 中配置日志服务器时:
  • 配置将写入站点数据库。
  • 交付控制器检索更新的设置,并将其分发给选定交付组中的 VDA。
  • VDA 使用收到的配置将其 AOT 日志转发到指定的日志服务器。
  • 参与 AOT 日志记录的 StoreFront 通过相同的集中机制接收必要的详细信息。
  • Director 使用提供的 AuthKey 和日志服务器详细信息查询并显示 AOT 日志,用于监视和故障排除。
这种集中式方法消除了单独配置每个组件的需要。您只需在 Web Studio 中设置一次日志服务器详细信息,Citrix 就会自动将配置传播到整个站点。
以下是在 Web Studio 中设置后将获取日志服务器详细信息的组件列表:
  • 思杰管理中心/监控
  • 思杰交付控制器
  • Windows 虚拟交付代理
  • Linux 虚拟投递代理
  • Mac VDA
  • StoreFront
  • 会话录制代理
  • Citrix Workspace 应用程序

配置本地环境的日志服务器设置

AOT 日志服务器设置
  1. 登录 Web Studio 并在左侧窗格中选择 设置。
  2. 在“日志服务器”磁贴中,如果未配置日志服务器,请选择“添加”。
  3. 在“日志服务器”页面上,打开“启用日志转发到日志服务器”。
  4. 输入“日志服务器地址”和“端口”。VDA 和交付控制器使用此信息转发 AOT 日志。
    注意:
    1. 如果您使用 Citrix 连接器设备部署日志服务器,请确保仅配置端口 443。
    2. 在 Citrix Studio 中更新日志服务器地址和端口最初是有效的,但如果您重新访问设置并在未重新输入身份验证密钥的情况下修改日志服务器详细信息,则身份验证密钥占位符在保存后会变为空,即使操作看起来成功。这会导致 Director 和 Monitor 中的配置缺失或无效。作为一种变通方法,在修改日志服务器设置时,请务必重新输入并验证身份验证密钥,直到此问题得到解决。
  5. 选择哪些组件转发日志:
    1. 包括交付控制器:从所有交付控制器发送 AOT 日志。
    2. 选择交付组:从所选交付组中的 VDA 发送日志。
    • 所有交付组:从所有 VDA 发送日志。
    • 选择特定交付组:选择要包含的单个交付组。
  6. 输入在日志服务器上生成的 AuthKey。dDirector 使用此密钥进行身份验证和检索日志。
  7. 选择“保存”以应用配置。

编辑现有配置

要更新日志服务器或修改日志记录范围,请转至“设置 > 日志服务器”并选择“编辑”。

通过 DaaS 设置配置 Citrix DaaS/云环境的日志服务器设置

始终在线跟踪 (AOT) 支持本地 (CVAD) 和 Citrix DaaS(云)部署。但是,日志收集行为因组件托管位置而异。
在安装和配置 AOT 日志服务器(在 Linux、Windows 或连接器设备上)后,完成以下步骤以在 Citrix DaaS 设置中为云部署启用日志转发到日志服务器:
AOT 日志服务器设置 1
适用于 DaaS 的 Citrix Web Studio(DaaS 设置)提供了一个集中位置,用于为云管理站点配置始终在线跟踪 (AOT) 日志转发。此配置确定 AOT 日志的发送位置,并控制哪些 VDA 参与日志转发。Monitor 使用这些设置来检索和显示日志以进行故障排除。
  1. 登录适用于 DaaS 的 Web Studio(DaaS 设置),然后在左侧窗格中选择“设置”。
  2. 在“日志服务器”磁贴中,如果当前未配置日志服务器,请选择“添加”。
  3. 在“日志服务器”页面上,输入“日志服务器地址”和“端口”。VDA 使用此信息将 AOT 日志转发到服务器。
  4. 定义哪些 VDA 转发日志:
    1. 选择“选择交付组”以控制范围。
    2. “所有交付组”(默认)转发站点中所有 VDA 的日志。
    3. 要定位特定 VDA,请选择“选择特定交付组”,然后选择要包括的交付组。
    注意:
    如果您使用 Citrix 连接器设备部署日志服务器,请确保仅配置端口 443。
  5. 选择部署日志服务器的区域(资源位置)。
  6. 输入日志服务器生成的 Authkey。Monitor 使用此密钥进行身份验证并检索日志以供显示。
  7. 选择“保存”以应用配置。

其他组件的日志转发配置

在 Citrix Cloud 部署中配置 StoreFront 的 AOT 日志上传

对于 Citrix Cloud(混合)部署,当本地 StoreFront(而不是 Citrix Workspace)与云 DDC 配合使用时,StoreFront 不会自动从云连接器接收 AOT 日志服务器配置。请在 StoreFront 服务器上运行以下 PowerShell 命令,以手动配置 AOT 日志服务器端点。
# Enable - Run the following command in StoreFront PowerShell

Enable-CitrixAOTUpload -AoTDataStoreEndpoint https://<FQDNofLogServer>:<server_port> -Role StoreFront

# Disable - Run the following command in StoreFront PowerShell
Disable-CitrixAOTUpload
注意:
仅对使用云 DDC 的 Citrix Cloud(混合)部署执行此命令。请勿对 StoreFront 与本地 Delivery Controller 配对的本地 CVAD 部署运行此命令,因为日志服务器配置会自动同步,无需手动配置。

配置 Session Recording Server 的 AOT 日志上传

您可以通过在 Session Recording Server 计算机上运行以下 PowerShell 命令,将 Session Recording Server 配置为将 AOT 日志上传到中央日志服务器:
#Enable - run following command in Session Recording Server PowerShell
Enable-CitrixAOTUpload -AotDataStoreEndpoint <https://FQDNofServer>:<server port> -Role SessionRecording

#Disable - run following command in Session Recording Server PowerShell
Disable-CitrixAOTUpload

配置 FAS 的 AOT 日志上传

您可以通过在 FAS 服务器上运行以下 PowerShell 命令,将 FAS 配置为将 AOT 日志上传到中央日志服务器:
#Enable - run following command in FAS PowerShell
Enable-CitrixAOTUpload -AotDataStoreEndpoint <https://FQDNofServer>:<server port> -Role FAS

#Disable - run following command in FAS PowerShell
Disable-CitrixAOTUpload
注意:
如果您使用 FAS 安装程序 MSI 文件 - FederatedAuthenticationService_x64.msi 进行安装或升级,则始终在线跟踪不可用。
始终从 CVAD MetaInstaller 或 XenDesktopFasSetup.exe 或 FasSetup_xxxx.exe 安装 FAS

配置 PVS 的 AOT 日志上传

您可以通过在 PVS 服务器上运行以下 PowerShell 命令,将 PVS 配置为将 AOT 日志上传到中央日志服务器:
#Enable - run following command in PVS PowerShell
Enable-CitrixAOTUpload -AotDataStoreEndpoint <https://FQDNofServer>:<server port> -Role PVS

#Disable - run following command in PVS PowerShell
Disable-CitrixAOTUpload
注意:
如果您有多个 PVS 服务器,请在每个服务器上运行该命令以启用或禁用 AOT 日志上传。

上传许可证服务器的 AOT 日志

  • 需要在 SLS 配置文件中更新日志服务器 URL,该文件位于“C:\Program Files (x86)\Citrix\Licensing\WebServicesForLicensing\SimpleLicenseServiceConfig.xml”,使用 XML 标签“AotServerURL”
示例:
<AotServerURL>https://<FQDNofLogServer:443>//ctxlogserver/UploadCitrixLogStream</AotServerURL>
注意:
许可证服务器何时生成日志?
许可证服务器 AOT 日志仅在特定事件期间生成,例如:许可证服务器安装或升级、WSL (Citrix Web Services for Licensing) 服务重启、许可证激活失败、暗站激活失败以及与时钟相关的许可问题
如果最近没有发生这些事件,则没有日志不一定表示存在问题。

快速检查

  1. 确认最近是否发生了符合条件的事件(重启、升级、激活问题等)。
  2. 重新启动 Citrix Web Services for Licensing 服务,并留出最多一小时进行上传处理。
  3. 验证 AOT 日志服务器 URL 是否配置正确。
  4. 确认 Citrix Web Services for Licensing 服务正在运行。
  5. 检查:C:\Program Files (x86)\Citrix\Licensing\LS\resource\aot 如果文件包含数据,则日志可能正在等待上传。
注意:
许可证服务器 AOT 日志记录是事件驱动的,而不是连续的。当没有发生符合条件的事件时,没有日志是正常的。
  • 许可证服务器会定期自动将日志上传到 AOT 服务器。

为 Citrix Connector 配置 AOT 日志上传

要在 AOT 日志服务器中收集 Cloud Connector 日志,需要满足以下要求:
  • Cloud Connector 必须是 6.169.0.22492 或更高版本。
  • 在 云 DDC 部署中,日志服务器配置详细信息会随 5 月版本自动同步到注册表,无需手动配置。
  • 在 **混合部署(本地 DDC)**中,需要手动配置注册表才能启用日志收集。在 Cloud Connector 计算机上创建以下注册表项:
路径: HKLM\Software\Citrix\ConfigSyncService
条目:
  • LogServerEnabled (REG_DWORD) = 1
  • LogServerEndpoint (REG_SZ) = https://&lt;logserver-fqdn:<port>>

为 Citrix Workspace 应用程序配置 AOT 日志上传

Citrix 允许 Citrix Workspace 应用程序客户端自动将诊断日志上传到集中式日志服务器。此功能通过向管理员提供客户端诊断信息的即时访问权限,而无需手动收集日志,从而提高了故障排除效率。客户端 AOT 将自动上传,并在整个 CVAD 环境中启用 AOT 功能以及用户启动资源时触发。

系统要求

  • Citrix Virtual Apps and Desktops 2511 或 CVAD 2507 CU1 及更高版本
  • Citrix Workspace 应用程序 2511 或 CWA 2507.1 CU1 及更高版本
  • 确保已安装所选 Citrix Workspace 应用程序 (CWA) 的所需版本。有关详细信息,请参阅支持的版本

先决条件

Citrix Workspace 应用程序 Web 启动
对于 Citrix Workspace 应用程序 Web 启动(包括 WebHelper、直接 ICA 文件下载和 Web 浏览器扩展启动方法),必须将 StoreFront 配置为使用现代用户界面 (UI 体验)。 有关启用现代 UI 体验的说明,请参阅 StoreFront 文档。
注意:
此先决条件仅适用于基于 Web 的启动,对于本机 Citrix Workspace 应用程序启动则不需要。

为 NetScaler 配置 AOT 日志上传

  • 通过 SSH 连接到 NetScaler CLI,然后通过运行“shell”命令进入 NetScaler shell。
  • 进入 /var/analytics_conf 目录
    cd /var/analytics_conf
  • 通过执行交互式 Python 脚本 "python {auditlog_schema_generator_for_hec_export.py}" 生成架构文件。该架构文件定义了 HTTP 标头(例如 Auth-token、User-Agent)和负载属性(例如 Role、Machine IP)。

此脚本生成的输出片段

root@Raju-adc2# python auditlog_schema_generator_for_hec_export.py
Schema Builder: Follow the prompts to define your schema.
Include 'Auth-Token'? (Y/n):  
Enter the display name (alias) for 'Auth-Token' (press Enter to keep as is): Authkey
'Auth-Token' can only go in 'header'. Automatically selected.
Include 'HostName'? (Y/n): n
Include 'Content-type'? (Y/n): y
Enter the display name (alias) for 'Content-type' (press Enter to keep as is):
'Content-type' can only go in 'header'. Automatically selected.
Default value for 'Content-type' is 'application/json'.  
Do you want to change it? (y/N):  
Include 'User-agent'? (Y/n):  
Enter the display name (alias) for 'User-agent' (press Enter to keep as is):
'User-agent' can only go in 'header'. Automatically selected.
Default value for 'User-agent' is 'AUDITLOGS/1.0'.  
Do you want to change it? (y/N):  
Include 'Role'? (Y/n): y  
Enter the display name (alias) for 'Role' (press Enter to keep as is):  
Where should 'Role' be included? (HEADER/payload): HEADER  
Default value for 'Role' is 'GW'.  
Do you want to change it? (y/N): y  
Enter new default value for 'Role': Gateway  

已生成的示例架构文件

{
     "Header": {
         "Auth-Token": {
             "name": "AuthKey"
         },
         "Content-type": {
             "name": "Content-type",
             "value": "application/json"
         },
         "User-agent": {
             "name": "User-agent",
             "value": "AUDITLOGS/1.0"
         },
         "Role": {
             "name": "Role",
             "value": "Gateway"
         },
         "MachineIP": {
             "name": "MachineIP"
         },
         "MachineName": {
             "name": "MachineName"
         }
     },
     "Payload": {
         "LogLevel": "Level",
         "MessageContent": "Message",
         "ModuleName": "Module",
         "Time": "TimeStamp"
     },
     "Format": {
         "delimiter": ""
     }
 }
  • 退出 shell 并返回 NetScaler CLI
  • 创建 syslog 操作,该操作定义了 Syslog 服务器、端口和架构文件(在上一步中创建)等
add audit syslogAction {Action Name} {AOT Server IP/FQDN} -serverPort {Destination Port} -logLevel {Log Level} -transport HTTP -httpAuthToken {Authentication Token generated on the AOT sever} -httpEndpointUrl {AOT Server URL where logs will be sent} -httpSchemaFile {Schema File created in Previous Step}
示例:
add audit syslogAction act1 10.102.154.196 -serverPort 8088 -logLevel ALL -transport HTTP -httpAuthToken fbb94d5b234d86a6cb155e3f808dd33c9698a0d1a866e814573b1909e4c9e56896f433da1071e3276bd133269fd69203d8f29166816f4d427e709773ceb9d41d531043331f7f76 -httpEndpointUrl "/services/collector/event" -httpSchemaFile sample.json
  • 将 syslogAction 绑定到审计 Syslog 策略
add audit syslogPolicy {PolicyName} True {Name of the Syslog Action}
示例:
add audit syslogPolicy pol1 true act1