Linux Virtual Delivery Agent

日志收集

日志机制概述

下表概述了 Linux VDA 的日志机制。

日志模块 日志文件名称格式 日志文件名称示例 日志范围 单个文件最大大小 轮换阈值(默认值) 配置
HDX hdx.log[.n] hdx.log、hdx.log.1 图形、登录、音频、键盘、鼠标 200 MiB 1 个当前文件,2 个旧文件 可通过 setlog 实用程序配置
Jproxy jproxy.log[.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 个旧文件 可通过 setlog 实用程序或 /etc/xdl/brokeragent.conf 配置

注意:

  • 第一个日志文件的名称中没有数字,后续文件则以“.n”编号,其中“n”表示文件编号。例如,“hdx.log”是第一个 HDX 日志文件,“hdx.log.1”是第二个。
  • 单个日志文件的最大大小以 Mebibyte (MiB) 为单位。
  • 正在生成且尚未达到单个文件最大大小的日志文件称为“当前”日志文件。当“当前”日志文件达到单个文件的最大大小时,它将进行轮换并成为“旧”日志文件。
  • 轮换阈值可配置,用于限制可保留的“旧”日志文件数量。达到限制时,将删除最旧的日志文件。

日志配置

本节提供了有关日志配置的更多信息,作为对上表中详细信息的补充。

默认情况下为 Linux VDA 启用日志记录

ctxlogd 守护程序和 setlog 实用程序包含在 Linux VDA 发布包中。默认情况下,在安装和配置 Linux VDA 后,ctxlogd 守护程序会启动。所有其他跟踪服务都依赖于 ctxlogd 守护程序。如果您不想继续跟踪 Linux VDA,可以停止 ctxlogd 守护程序。

通过 /etc/xdl/brokeragent.conf 配置 VDA 日志记录

注意:

如果您只想配置 VDA 日志记录的日志级别,而不想深入了解其他日志记录参数(例如单个日志文件的最大大小),则可以使用本文后面介绍的 setlog 实用程序。否则,请使用 /etc/xdl/brokeragent.conf

VDA 上的 /etc/xdl/brokeragent.conf 文件可用于配置 VDA 日志记录。例如:

/etc/xdl/brokeragent.conf 文件

注意:

默认情况下,可保留的“旧”VDA 日志文件最大数量为 100 个。请根据需要进行调整。

通过 /etc/xdl/log4j2.xml 配置 Jproxy 日志记录

注意:

如果您只想配置 Jproxy 日志记录的日志级别,而不想深入了解其他日志记录参数(例如单个日志文件的最大大小),则可以使用本文后面介绍的 setlog 实用程序。否则,请使用 /etc/xdl/log4j2.xml

以下是通过 /etc/xdl/log4j2.xml 配置 Jproxy 日志记录的示例,其中 SizeBasedTriggeringPolicy 参数指定单个 Jproxy 日志文件的最大大小,DefaultRollerStrategy 参数设置可保留的 Jproxy 日志文件总数。

配置 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。然后,重现问题并收集日志。

要设置日志级别(包括 Disabled、Inherited、Trace、Verbose、Information、Warnings、Errors 和 Fatal Errors),请运行以下命令:

setlog level <class> [<level>]
<!--NeedCopy-->
日志级别 命令参数(不区分大小写)
禁用 none
继承 inherit
跟踪 trace
详细 verbose
信息 info
警告 warning
错误 error
严重错误 fatal

<class> 变量指定 Linux VDA 的一个组件。要涵盖所有组件,请将其设置为 all。例如:

setlog level all error
<!--NeedCopy-->

要查看所有支持的类或组件,请运行以下命令:

setlog levels
<!--NeedCopy-->

恢复默认值

将所有级别和值恢复为默认设置:

setlog default
<!--NeedCopy-->

重要提示:

ctxlogd 服务使用 /var/xdl/.ctxlog 文件进行配置,该文件只能由 root 用户创建。其他用户没有对此文件的写入权限。我们建议 root 用户不要向其他用户授予写入权限。不遵守此规定可能会导致对 ctxlogd 进行任意或恶意配置,从而影响服务器性能和用户体验。

日志收集

您可以运行 bash /opt/Citrix/VDA/bin/xdlcollect.sh 命令来收集日志。用于收集日志的 xdlcollect Bash 脚本已集成到 Linux VDA 软件中,位于 /opt/Citrix/VDA/bin 下。

日志收集完成后,会在与脚本相同的文件夹中生成一个压缩日志文件。xdlcollect Bash 脚本可以询问您是否将压缩日志文件上传到 Citrix Insight Services (CIS)。如果您同意,xdlcollect 会在上传完成后返回一个 upload_ID。上传不会从您的本地计算机中删除压缩日志文件。其他用户可以使用 upload_ID 访问 CIS 中的日志文件。

故障排除

/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 服务。