Linux 虚拟投递代理 2407

日志收集

日志机制概述

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

Logging module Log file name format Log file name example Logging scope Maximum single file size Rotation threshold (defaults) Configuration
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 注册 50 MiB 1 个当前文件,1 个旧文件 可通过 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 文件

通过 /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-->
Log Level Command Parameter (Case-Insensitive)
Disabled none
Inherited inherit
Trace trace
Verbose verbose
Information info
Warnings warning
Errors error
Fatal Errors 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 下。

日志收集完成后,将在 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 服务,其他服务都依赖于该服务。