Linux Virtual Delivery Agent

日志收集

概述

收集日志并重现问题减慢了诊断速度,并且降低了用户体验。默认情况下,Linux VDA 的日志收集功能处于启用状态。

配置

ctxlogd 守护程序和 setlog 实用程序包括在 Linux VDA 版本软件包中。默认情况下,ctxlogd 守护程序在您安装并配置 Linux VDA 后启动。

ctxlogd 守护进程

跟踪的所有其他服务都基于 ctxlogd 守护程序。如果不希望跟踪 Linux VDA,可以停止 ctxlogd 守护程序。

setlog 实用程序

日志收集功能是使用 setlog 实用程序配置的,该程序位于 /opt/Citrix/VDA/bin/ 路径下。只有 root 用户有权运行该程序。可以使用 GUI 或运行命令来查看和更改配置。请运行以下命令以获取使用 setlog 实用程序的帮助信息:

setlog help
<!--NeedCopy-->

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

查看当前的 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 的一个组件。要涵盖所有组件,请将其设置为“全部”。例如:

setlog level all 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 用户能够创建该文件。其他用户对该文件没有写入权限。我们建议 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 服务。

日志收集

在本文中