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”是第二个 HDX 日志文件。
  • 单个日志文件的最大大小以兆字节 (MiB) 为单位进行测量。
  • 正在生成但尚未达到单个文件的最大大小的日志文件称为“当前”日志文件。 当“当前”日志文件达到单个文件的最大大小时,它会滚动并变成“旧”日志文件。
  • 轮换阈值可配置为限制可以保留的“旧”日志文件的数量。达到限制时,最旧的日志文件将被删除。

日志记录配置

本部分内容提供有关日志记录配置的其他信息,对上述表格中概述的详细信息进行了补充。

Linux VDA 的日志记录默认处于启用状态

ctxlogd 守护程序和 setlog 实用程序包括在 Linux VDA 版本软件包中。默认情况下,ctxlogd 守护程序在您安装并配置 Linux VDA 后启动。跟踪的所有其他服务都基于 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。然后,请重现该问题并收集日志。

要设置日志级别(包括“已禁用”、“已继承”、“跟踪”、“详细”、“信息”、“警告”、“错误”和“致命错误”),请运行以下命令:

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

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

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 下。

日志收集完成后,将在 VDA 上的 /tmp/xdlcollect 下生成一个 ZIP 文件。

故障排除

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