日志收集
日志记录机制概述
下表概述了 Linux VDA 的日志记录机制。
| 日志记录模块 | 日志文件名格式 | 日志文件名示例 | 日志记录范围 | 单个文件最大大小 | 轮换阈值(默认值) | 配置设置 |
|---|---|---|---|---|---|---|
| HDX | hdx.log[.n] | hdx.log, hdx.log.1 | 图形、登录、音频、键盘、鼠标 | 200 MiB | 1 个当前,2 个旧 | 可通过 setlog 实用程序配置 |
| J代理 | J代理日志[.n.log] | jproxy.log, jproxy.log.1.log | VDA 注册,用户身份验证 | 20 MiB | 1 个当前,10 个旧 | 可通过 setlog 实用程序或位于 /etc/xdl/log4j2.xml 的配置文件进行配置 |
| VDA | vda.YYYY-MM-DD.hh.mm.ss.log | vda.2024-05-06.20.18.40.log | VDA 注册 | 10 MiB | 1 个当前,100 个旧 | Configurable through the setlog utility or /etc/xdl/brokeragent.conf |
注意:
- 第一个日志文件的名称中没有数字,后续文件则以“.n”编号,其中“n”表示文件编号。例如,“hdx.log”是第一个 HDX 日志文件,“hdx.log.1”是第二个。
- 单个日志文件的最大大小以兆字节 (MiB) 为单位测量。
- 正在生成且尚未达到单个文件最大大小的日志文件称为“当前”日志文件。当“当前”日志文件达到单个文件的最大大小时,它将滚动并成为“旧”日志文件。
- 可配置轮换阈值以限制可保留的“旧”日志文件数量。达到限制时,最旧的日志文件将被删除。
日志记录配置
本节提供有关日志记录配置的更多信息,作为对上表中概述的详细信息的补充。
Linux VDA 默认启用日志记录
ctxlogd 守护程序和 setlog 实用程序包含在 Linux VDA 发布包中。默认情况下,在安装和配置 Linux VDA 后,ctxlogd 守护程序会启动。所有其他被跟踪的服务都依赖于 ctxlogd 守护程序。如果您不想继续跟踪 Linux VDA,可以停止 ctxlogd 守护程序。
Configure VDA logging through /etc/xdl/brokeragent.conf
注意:
如果您只想配置 VDA 日志记录的日志级别,而不想深入研究其他日志记录参数(例如单个日志文件的最大大小),则可以使用本文后面介绍的 setlog 实用程序。否则,请使用 /etc/xdl/brokeragent.conf。
The /etc/xdl/brokeragent.conf file on the VDA is available for configuring VDA logging. For example:

注意:
默认情况下,可保留的“旧”VDA 日志文件最大数量为 100。请根据需要进行调整。
通过 /etc/xdl/log4j2.xml 文件来配置 Jproxy 的日志记录功能
注意:
如果您只想配置 Jproxy 日志记录的日志级别,而不深入研究其他日志记录参数(例如单个日志文件的最大大小),则可以使用本文后面介绍的 setlog 实用程序。否则,请使用 /etc/xdl/log4j2.xml。
以下是关于如何通过 /etc/xdl/log4j2.xml 文件配置 Jproxy 日志记录的示例,其中,SizeBasedTriggeringPolicy 参数用于指定单个 Jproxy 日志文件的最大容量,而 DefaultRollerStrategy 参数则负责设置可保留的 Jproxy 日志文件的总数量。

通过 setlog 实用程序配置 HDX™ 日志记录
setlog 实用程序位于 /opt/Citrix/VDA/bin/ 路径下。只有 root 用户才有权运行它。您可以使用 GUI 或运行命令来查看和更改配置选项,包括值(日志文件路径、单个文件大小限制和轮换阈值)和日志级别。运行以下命令以获取有关 setlog 实用程序的帮助:
setlog help
<!--NeedCopy-->
值
默认情况下,HDX 日志保存在 /var/log/xdl/hdx.log 下,单个 HDX 日志文件的大小限制为 200 MiB,并且您可以在 /var/log/xdl/hdx.log 下最多保存两个“旧”HDX 日志文件。
要查看所有当前 setlog 值,请运行以下命令:
setlog values
log_path (Log Output Path) = /var/log/xdl/hdx.log
log_size (Max Log Size (MiB)) = 200
log_count (Max Old Log Files) = 2
<!--NeedCopy-->
要查看或设置单个 setlog 值,请运行以下命令:
setlog value <name> [<value>]
<!--NeedCopy-->
例如:
setlog value log_size 100
<!--NeedCopy-->
级别
默认情况下,日志级别设置为 info(不区分大小写)。
当您遇到需要故障排除的问题时,我们建议您在大多数情况下将日志级别设置为 verbose。然后,重现问题并收集日志。
要设置日志级别(包括禁用、继承、跟踪、详细、信息、警告、错误和致命错误),请运行以下命令:
setlog level <class> [<level>]
<!--NeedCopy-->
| 日志级别 | 命令参数(不区分大小写) |
|---|---|
| 已禁用 | 无 |
| 已继承 | 继承 |
| 跟踪 | 跟踪 |
| 详细 | 详细 |
| 信息级别 | 信息 |
| 警告 | 警告 |
| 错误 | 错误 |
| 严重错误 | 严重 |
<class> 变量指定 Linux VDA 的一个组件。要涵盖所有组件,请将其设置为 all。例如:
setlog level all error
<!--NeedCopy-->
要查看所有支持的类或组件,请运行以下命令:
setlog levels
<!--NeedCopy-->
恢复默认设置
将所有级别和值恢复为默认设置:
setlog default
<!--NeedCopy-->
重要提示:
ctxlogd 服务是使用 /var/xdl/.ctxlog 文件配置的,该文件只能由 root 用户创建。其他用户对此文件没有写入权限。我们建议 root 用户不要向其他用户授予写入权限。不遵守此规定可能会导致对 ctxlogd 进行任意或恶意配置,这会影响服务器性能,进而影响用户体验。
日志收集
You can run the bash /opt/Citrix/VDA/bin/xdlcollect.sh command to collect logs. The xdlcollect Bash script used to collect logs is integrated into the Linux VDA software and located under /opt/Citrix/VDA/bin.
日志收集完成后,VDA 上的 /tmp/xdlcollect 下会生成一个 ZIP 文件。
AOT 日志收集和上传
概述
此功能收集来自 虚拟投递代理 (VDA) 上的组件的 始终在线跟踪 (AOT) 日志。它支持:
- 故障排除难以重现的问题
- 日常健康检查
- 集中式日志管理
日志被转换为结构化事件,并上传到集中式 日志服务器 以进行查询和分析。
配置设置
组策略配置设置
要通过 组策略 启用此功能,请确保 日志服务器 已在 交付控制器 (DDC) 上正确配置。步骤如下:
- 在 Citrix Studio 中,单击设置->日志服务器->编辑

- 设置日志服务器地址和端口以启用日志转发到日志服务器

本地注册表配置
本地注册表具有比策略更高的优先级。要通过本地注册表启用此功能,请在 VDA 上执行以下命令(将 <ip> 和 <port> 替换为您的值):
启用 AOT 数据收集:
设置日志服务器端点:
sudo /opt/Citrix/VDA/bin/ctxreg create \
-k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \
-t "REG_DWORD" \
-v "EnableAotDataCollection" \
-d "0x00000001" --force
sudo /opt/Citrix/VDA/bin/ctxreg create \
-k "HKLM\System\CurrentControlSet\Control\Citrix\AOT" \
-t "REG_SZ" \
-v "AotDataStoreEndpoint" \
-d "<http/https>://<fqdn-or-ip-address>:<port>" --force
<!--NeedCopy-->
一旦从 Studio 推送的策略设置发生更改,或者本地注册表设置发生更改,ctxvector 服务将在不到 1 分钟内自动应用更改。无需手动重新启动它。
TLS 身份验证
此功能支持与日志服务器建立 HTTP 和 HTTPS 连接。对于 HTTPS,请在 Linux 系统密钥库中安装根 CA 证书。VDA 只有在验证日志服务器证书后才能成功建立 HTTPS 连接。日志服务器不验证 VDA。
故障排除
当 /var/xdl/.ctxlog 文件缺失(例如,意外删除)时,ctxlogd 守护程序会失败,并且您无法重新启动 ctxlogd 服务。
/var/log/messages:
Apr 1 02:28:21 RH72 citrix-ctxlogd[17881]: Failed to open logging configuration file.
Apr 1 02:28:21 RH72 systemd: ctxlogd.service: main process exited, code=exited, status=1/FAILURE
Apr 1 02:28:21 RH72 systemd: Unit ctxlogd.service entered failed state.
Apr 1 02:28:21 RH72 systemd: ctxlogd.service failed.
<!--NeedCopy-->
要解决此问题,请以 root 用户身份运行 setlog 以重新创建 /var/xdl/.ctxlog 文件。然后重新启动其他服务所依赖的 ctxlogd 服务。