日志收集
日志记录机制概述
下表概述了 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 日志记录。例如:
注意:
默认情况下,可以保留的“旧”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-->
日志级别 | 命令参数(不区分大小写) |
---|---|
已禁用 | 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 下。
日志收集完成后,将在与脚本相同的文件夹中生成一个压缩的日志文件。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 服务。