跟踪开启

概述

收集日志和重现问题会减慢诊断速度并降低用户体验。“跟踪开启”功能可简化这些工作。默认情况下,Linux VDA 已启用跟踪。

配置

ctxlogd 守护程序和 setlog 实用程序现已包含在 Linux VDA 发布包中。默认情况下,在安装和配置 Linux VDA 后,ctxlogd 守护程序会自动启动。

ctxlogd 守护程序

所有其他被跟踪的服务都依赖于 ctxlogd 守护程序。如果您不想继续跟踪 Linux VDA,可以停止 ctxlogd 守护程序。

setlog 实用程序

“跟踪开启”功能使用 setlog 实用程序进行配置,该实用程序位于 /opt/Citrix/VDA/bin/ 路径下。只有 root 用户才有权运行它。您可以使用 GUI 或运行命令来查看和更改配置。运行以下命令以获取有关 setlog 实用程序的帮助:

setlog help
<!--NeedCopy-->

默认情况下,日志输出路径设置为 /var/log/xdl/hdx.log最大日志大小设置为 200 MB,并且您可以在日志输出路径下最多保存两个旧日志文件。

查看当前的 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-->

级别

默认情况下,日志级别设置为警告

查看为不同组件设置的日志级别:

setlog levels
<!--NeedCopy-->

您可以使用以下命令设置所有日志级别(包括禁用、继承、详细、信息、警告、错误和严重错误):

setlog level <class> [<level>]
<!--NeedCopy-->

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

setlog level all error

Setting log class ALL to ERROR.
<!--NeedCopy-->

标志

默认情况下,标志设置如下:

setlog flags

DATE = true

TIME = true

NAME = true

PID = true

TID = false

SID = true

UID = false

GID = false

CLASS = false

LEVEL = false

FUNC = true

FILE = false
<!--NeedCopy-->

查看当前标志:

setlog flags
<!--NeedCopy-->

查看或设置单个日志标志:

setlog flag <flag> [<state>]
<!--NeedCopy-->

恢复默认值

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

setlog default
<!--NeedCopy-->

重要:

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

故障排除

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

跟踪开启