Citrix Virtual Apps and Desktops

查看和使用 AOT 日志

通过 Director 用户界面访问日志

步骤 1

编辑 StartLogServer.bat 文件

StartLogServer.bat 文件包含用于启动 AOT 日志服务器容器的所有配置参数,包括控制日志访问和行为的多个环境变量。其中一个关键设置是 LOCAL_DOWN_ONLY

  • LOCAL_DOWN_ONLY=false 时,日志服务器接受远程日志查看请求。这允许 Citrix Director/Monitor 连接到日志服务器并在 Monitor UI 中直接显示 AOT 日志。

  • LOCAL_DOWN_ONLY=true 时,日志服务器将日志访问限制为仅限本地连接。在此模式下,您必须直接连接到日志服务器计算机才能查看日志,并且 Citrix Director Monitor 将无法检索或显示日志

AOT 批处理文件

步骤 2

Web Studio 提供了一个专用设置,允许 Citrix Director 连接到 AOT 日志服务器并在 Monitor 控制台中显示日志。保存 Web Studio 设置后,交付控制器会更新站点配置,Director 会收到日志服务器详细信息,包括日志服务器地址、端口和身份验证密钥。Director 使用这些设置与日志服务器建立安全连接。

步骤 3

配置完成后:

  1. 打开 Citrix 导向器
  2. 左侧导航面板中会出现一个新的“日志”选项。
  3. 选择“日志”,您将看到“入门”页面,单击“关闭”跳过它,因为我们之前已完成这些设置。
  4. 现在,您将看到 Director 直接从日志服务器检索并显示 AOT 日志。

思杰导向器

Director 中的日志页面提供了来自 Delivery Controllers、VDA、StoreFront 服务器以及其他 Citrix 组件的 AOT 事件的统一视图。您可以实时搜索、筛选和检查日志,以快速排查问题。

自由文本搜索: 在“日志”页面顶部,您会找到一个自由文本搜索栏。您可以键入任何关键字以开始缩小结果范围。应用筛选器后,搜索结果会立即更新。示例包括:

  • 用户名
  • 计算机名称
  • 事件关键字(例如,注册、身份验证、STA)
  • 事务 ID
  • 错误消息或部分字符串

时间筛选器: 使用时间选择器(例如,过去 5 分钟、过去 1 小时、过去 24 小时)查看在特定持续时间内生成的日志。这有助于您快速隔离问题发生确切时间附近的事件。

类别筛选器: “类别”字段允许您根据事件或子系统的类型筛选日志。这有助于您专注于与应用程序启动、注册、VDA 配置、图形、HDX Direct、ICA 连接等相关的日志。

日志类筛选器: “日志类”筛选器按严重性或事件类型对日志进行分组。这使您在排查问题时可以只关注错误或重要事件。常见类别包括:

  • 详细信息
  • 警告
  • 错误
  • 失败

主机名筛选器: 主机名筛选器允许您选择特定的计算机 — 例如 VDA、交付控制器、CWA 或 StoreFront 服务器。当您想要深入查看单个端点或 VM 的日志而不是搜索整个部署时,这非常有用。

这种集中式访问通过允许从单个控制台快速检索和分析日志来简化故障排除。在 Director - 日志 中了解有关先决条件和入门的更多信息。

通过日志服务器访问日志

以下内容是生成 AuthKey。要启用日志访问,用户需要

  1. Modify the StartLogServer.bat script LOCAL_DOWN_ONLY=false

  2. Generate the AuthKey

为了确保日志安全,您需要在下载日志之前拥有一个 AuthKey。操作方法如下:

  1. 获取您的 AuthKey – 使用您自己的角色名/名称来生成它。
  2. 本地运行 – 脚本只能在安装了 Docker 容器的计算机上运行。
  3. Windows 用户 – 使用 GetAuthKey.bat 脚本而不是 shell 脚本。
  4. 下载日志 – 经过身份验证后,您可以安全地检索日志。

生成和管理 AOT 日志服务器的身份验证密钥

您可以使用提供的 .sh (Linux) 或 .bat (Windows) 脚本为特定角色或用户快速生成新的身份验证密钥。这些脚本通过返回生成的密钥以及关联的角色来简化此过程。

对于 Linux 系统

./GetAuthKey.sh role-name
<!--NeedCopy-->

适用于 Windows 系统

GetAuthKey.bat role-name
<!--NeedCopy-->

AOT 日志服务器提供用于管理与不同角色或用户关联的身份验证密钥的命令。这些命令允许管理员直接从容器中添加、列出、验证删除身份验证密钥。直接在日志服务器容器上使用可用的 docker exec 命令。

  • 添加新身份验证密钥:为指定角色或用户创建新的身份验证密钥:

docker exec logserver /app/authkey add <RoleName>

  • 列出所有身份验证密钥:显示已创建身份验证密钥的所有现有角色/用户:

docker exec logserver /app/authkey list

  • 验证身份验证密钥:验证给定身份验证密钥是否有效并识别关联角色:

docker exec logserver /app/authkey validate <key>

  • 删除身份验证密钥:删除与特定角色关联的身份验证密钥:

docker exec logserver /app/authkey del <RoleName>

  • 查看命令用法:显示身份验证密钥管理的可用选项:

docker exec logserver /app/authkey ??

以下示例演示如何管理身份验证密钥:

AOT 身份验证密钥

列出已将其 AOT 日志发送到日志服务器的计算机名称

参数是从 GetAuthKey.sh 获取的密钥。

适用于 Linux 操作系统

./ListMachines.sh ebac9b7726cb4be597c92c6769134d25
{"machines":["MachineName"]}
<!--NeedCopy-->

空机器表示没有日志信息

适用于 Windows 操作系统

ListMachines.bat ebac9b7726cb4be597c92c6769134d25
{"machines":["MachineName"]}
<!--NeedCopy-->

For windows powershell when LogServer starts with “-e LOCAL_DOWN_ONLY=false”:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/ListMachine" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" }
<!--NeedCopy-->

将 logserver_fqdn 替换为 LogServer 的实际完全限定域名,并将 8443 替换为 LogServer 的实际端口。在 HTTP 模式下安装时,将 https 替换为 http。

空机器表示没有日志信息

按计算机名称和时间范围下载日志。

时间采用协调世界时格式:YYYY-mm-ddTHH:MM:SSZ。

#Usage: ./DownloadLogsByTime.sh [AuthKey] [MachineName] [StartTime|YYYY-mm-ddTHH:MM:SSZ] [EndTime|YYYY-mm-ddTHH:MM:SSZ] [OutputFile]
#Example:
<!--NeedCopy-->

针对 Linux 系统

./DownloadLogsByTime.sh ebac9b7726cb4be597c92c6769134d25 MachineName 2025-01-01T00:00:00Z 2025-01-02T00:00:00Z logs.csv
<!--NeedCopy-->

适用于 Windows 操作系统

DownloadLogsByTime.bat ebac9b7726cb4be597c92c6769134d25 MachineName 2025-01-01T00:00:00Z 2025-01-02T00:00:00Z logs.csv
<!--NeedCopy-->

For windows powershell when LogServer starts with “-e LOCAL_DOWN_ONLY=false”:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/TimeRange?start=2025-01-01T00:00:00Z&end=2025-01-02T00:00:00Z" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" } -OutFile logs.csv
<!--NeedCopy-->

按关键字/过滤器下载日志。时间采用 UTC 格式

注意:

  • 关键字可以是单个词或词的组合。
  • 关键字可以匹配日志消息中的任何位置。
  • 一个事务 ID 也可以用作关键字。
#Usage: ./DownloadLogsByWords.sh [AuthKey] [StartTime|YYYY-mm-ddTHH:MM:SSZ] [EndTime|YYYY-mm-ddTHH:MM:SSZ] [SearchWords] [OutputFile]
#Example:
<!--NeedCopy-->

适用于 Linux 操作系统

./DownloadLogsByWords.sh authkey 2025-01-01T00:00:00.000Z 2025-12-31T23:59:59.999Z "session launch" logs.csv
<!--NeedCopy-->

适用于 Windows 操作系统

DownloadLogsByWords.bat authkey 2025-01-01T00:00:00.000Z 2025-12-31T23:59:59.999Z "failed vda" logs.csv
<!--NeedCopy-->

针对 Windows PowerShell 环境下的操作,当 LogServer 服务启动时,并且其启动命令行参数中包含 “-e LOCAL_DOWN_ONLY=false” 这一特定设置时:

Invoke-WebRequest -Uri "https://logserver_fqdn:8443/ctxlogserver/Download/SearchLog?start=2025-01-01T00:00:00Z&end=2025-01-02T00:00:00Z&words=failed vda" -Headers @{ AuthKey = "ebac9b7726cb4be597c92c6769134d25" } -OutFile logs.csv
<!--NeedCopy-->

单词由空格分隔

查看和使用 AOT 日志