Citrix Virtual Apps and Desktops

配置日志记录

配置日志记录是一项功能,可将站点配置更改和管理活动捕获到数据库中。此功能默认启用。您可以使用记录的内容来:

  • 在进行配置更改后,诊断并解决出现的问题。日志提供了一条可供追溯的线索。
  • 协助进行变更管理,并跟踪配置情况。
  • 报告管理活动详情。

您可以从 Citrix Studio 设置配置日志记录首选项、显示配置日志以及生成 HTML 和 CSV 报告。您可以按日期范围和全文搜索结果筛选配置日志显示。强制日志记录在启用时,会阻止进行配置更改,除非这些更改可以被记录。获得适当权限后,您可以从配置日志中删除条目。您不能使用配置日志记录功能编辑日志内容。

配置日志记录使用 PowerShell SDK 和配置日志记录服务。配置日志记录服务在站点中的每个控制器上运行。如果一个控制器发生故障,另一个控制器上的服务会自动处理日志记录请求。

默认情况下,配置日志记录功能处于启用状态,并使用在创建站点时创建的数据库(站点配置数据库)。您可以为数据库指定不同的位置。配置日志记录数据库支持与站点配置数据库相同的高可用性功能。

对配置日志记录的访问通过委派管理进行控制,具有“编辑日志记录首选项”和“查看配置日志”权限。

配置日志在创建时即已本地化。例如,以英语创建的日志将以英语读取,无论读者的区域设置如何。

记录的内容

从 Studio、Director 和 PowerShell 脚本启动的配置更改和管理活动都会被记录。记录的配置更改示例包括处理(创建、编辑、删除、分配):

  • 计算机目录
  • 交付组(例如,对电源管理设置进行更改)
  • 管理员角色和范围
  • 主机资源和连接的配置
  • 通过 Studio 配置的思杰策略

已记录的管理更改示例包括:

  • 针对虚拟机或用户桌面的电源管理操作
  • 由 Studio 或 Director 发送给用户的消息

以下操作不会被记录:

  • 自动化操作,例如池管理对虚拟机的开机操作。
  • 通过组策略管理控制台 (GPMC) 实施的策略操作;使用 Microsoft 工具查看这些操作的日志。
  • 通过注册表、直接访问数据库或来自 Studio、Director 或 PowerShell 以外的源进行的更改。
  • 当部署完成初始化后,配置日志记录功能将在第一个配置日志记录服务实例成功向配置服务注册时才变得可用。因此,配置过程的早期阶段将不会被记录(例如,在获取并应用数据库架构时,以及在初始化管理程序时)。

管理配置日志记录

默认情况下,配置日志记录使用创建站点时创建的数据库(也称为站点配置数据库)。Citrix 建议您将配置日志记录数据库(和监视数据库)放置在单独的位置,原因如下:

  • 用于配置日志记录数据库的备份策略,很可能与用于站点配置数据库的备份策略有所不同。
  • 为配置日志记录(和监视服务)收集的数据量可能会对站点配置数据库的可用空间产生不利影响。
  • 它将三个数据库的单点故障分离开来。

不支持配置日志记录的产品版本在 Studio 中没有“日志记录”节点。

启用和禁用配置日志记录以及强制日志记录

默认情况下,配置日志记录处于启用状态,强制日志记录处于禁用状态。

  1. 登录 Web Studio 并在左侧窗格中选择“日志记录”。
  2. 在操作栏中选择“首选项”。配置日志记录对话框包含数据库信息,并指示配置日志记录和强制日志记录是处于启用状态还是禁用状态。
  3. 选择所需操作:

    要启用配置日志记录,请选择“启用”。这是默认设置。如果无法写入数据库,则日志记录信息将被丢弃,但操作会继续。

    要禁用配置日志记录,请选择“禁用”。如果以前启用了日志记录,则现有日志仍可通过 PowerShell SDK 读取。

    要启用强制日志记录,请选择“当数据库不可用时阻止更改站点配置”。除非可以将配置更改或通常记录的管理活动写入配置日志记录数据库,否则不允许进行此类操作。仅当配置日志记录处于启用状态(即选择了“启用”)时,才能启用强制日志记录。如果配置日志记录服务失败且未使用高可用性,则假定为强制日志记录。在这种情况下,通常会记录的操作将不会执行。

    要禁用强制日志记录,请选择“当数据库不可用时允许更改站点配置”。即使无法访问配置日志记录数据库,也允许进行配置更改和管理活动。这是默认设置。

更改配置日志记录数据库位置

启用强制日志记录后,无法更改数据库位置,因为位置更改会包含一个无法记录的短暂断开连接间隔。

  1. 使用受支持的 SQL Server 版本创建数据库服务器。
  2. 登录 Web Studio 并在左侧窗格中选择“日志记录”。
  3. 在操作栏中选择“首选项”。
  4. 在日志记录首选项对话框中,选择更改日志记录数据库
  5. 在更改日志记录数据库对话框中,指定包含新数据库服务器的服务器位置。有关有效格式,请参阅数据库地址格式
  6. 要允许 Studio 创建数据库,请单击确定。出现提示时,单击确定,数据库将自动创建。Studio 尝试使用当前 Studio 用户的凭据访问数据库。如果失败,系统会提示您输入数据库用户的凭据。然后,Studio 会将数据库架构上传到数据库。(凭据仅在数据库创建期间保留。)
  7. 要手动创建数据库,请单击生成数据库脚本。生成的脚本包含手动创建数据库的说明。在上传架构之前,请确保数据库为空,并且至少有一个用户具有访问和更改数据库的权限。

以前数据库中的配置日志记录数据不会导入到新数据库中。检索日志时,无法从两个数据库聚合日志。新配置日志记录数据库中的第一个日志条目指示发生了数据库更改,但它未标识以前的数据库。

查看配置日志内容

要查看配置日志内容,请在左窗格中选择日志记录,然后选择事件选项卡。

默认情况下,事件日志按管理员名称列出。您可以根据需要执行以下任务:

  • 查看日志详细信息。高级操作会产生一个或多个服务和 SDK 调用,这些是低级操作。当您在上窗格中选择高级操作时,下窗格会显示低级操作。
  • 排序显示。通过单击列标题对显示进行排序。
  • 筛选日志。通过设置筛选条件(例如日期间隔或自定义周期)或在“搜索”框中输入完整或部分“主任务”名称来优化显示。要在使用搜索后返回标准显示,请清除“搜索”框中的文本。
  • 导出日志。将选定日志或所有日志导出到 CSV 文件,以进行存档或进一步分析。
  • 自定义列。通过添加非默认列(例如“客户端 IP”和“标签”)来根据需要调整显示。
  • 管理标签。添加、编辑和删除事件日志的标签,以增强日志组织和跟踪。

显示相关的特性:

  • 如果操作在完成前失败,日志操作可能未在数据库中完成。例如,启动记录没有相应的停止记录。在这种情况下,日志会指示信息缺失。当您根据时间范围显示日志时,如果数据符合条件,则会显示不完整的日志。

    例如,如果您请求过去五天的日志,并且过去五天内开始但没有结束时间的日志也会被包括在内。

  • 当使用调用 PowerShell cmdlet 的脚本时,如果您创建了一个低级别操作但未指定父高级别操作,配置日志记录会创建一个替代高级别操作。

生成报告

您可以生成包含配置日志数据的 CSV 和 HTML 报告。

  • CSV 报告包含指定时间间隔内的所有日志数据。数据库中的分层数据被展平为单个 CSV 表。数据在文件中没有优先级。不使用任何格式,也不假定人类可读性。该文件(名为 MyReport)以通用可消费格式包含数据。CSV 文件通常用于存档数据或作为报告或数据操作工具(例如 Microsoft Excel)的数据源。
  • HTML 报告以人类可读的形式提供指定时间间隔内的日志数据。它提供了一个结构化、可导航的视图,用于审查更改。HTML 报告包含两个文件,名为 Summary 和 Details。Summary 列出高级别操作:每个操作发生的时间、执行者和结果。单击每个操作旁边的“详细信息”链接会将您带到 Details 文件中的低级别操作,该文件提供附加信息。

要生成配置日志报告,请在 Studio 导航窗格中选择“日志记录”,然后在操作栏中选择“创建自定义报告”。

  • 选择报告的日期范围。
  • 选择报告格式:CSV、HTML 或两者。
  • 请浏览并选择您希望保存报告的目录。

删除配置日志内容

要删除配置日志,您必须具有特定的委派管理和 SQL Server 数据库权限。

  • 委派管理: 您必须具有允许读取部署配置的委派管理角色。完全管理员角色具有此权限。自定义角色必须在“其他权限”类别中选择“只读”或“管理”。

    在删除配置日志数据之前创建备份时,自定义角色还必须在“日志记录权限”类别中选择“只读”或“管理”。

  • SQL Server 数据库: 您必须拥有一个具有从数据库删除记录权限的 SQL Server 登录名。有两种方法可以实现此目的:

    • 使用具有 sysadmin 服务器角色的 SQL Server 数据库登录名,该角色允许您在数据库服务器上执行任何活动。或者,serveradminsetupadmin 服务器角色允许您执行删除操作。

    • 如果您的部署需要更高的安全性,请使用映射到数据库用户的非 sysadmin 数据库登录名,该用户具有从数据库删除记录的权限。

      1. 在 SQL Server 管理工作室中,创建一个具有除 ‘sysadmin’ 之外的服务器角色的 SQL Server 登录名。
      2. 将登录名映射到数据库中的用户。SQL Server 会自动在数据库中创建一个与登录名同名的用户。
      3. 在“数据库角色成员身份”中,为数据库用户指定至少一个角色成员:ConfigurationLoggingSchema_ROLEdbowner

      有关详细信息,请参阅 SQL 服务器管理工作室文档。

要删除配置日志,请执行以下操作:

  1. 登录 Web Studio 并在左侧窗格中选择日志记录
  2. 在操作栏中选择删除日志
  3. 系统会询问您是否要在删除日志之前创建备份。如果您选择创建备份,请浏览到保存备份存档的位置。备份将创建为 CSV 文件。

清除配置日志后,日志删除是发布到空日志的第一个活动。该条目提供了有关谁以及何时删除日志的详细信息。

查看应用程序接口和 PowerShell 日志

要监视当前会话期间发出的 API 请求,请单击API选项卡。API 日志在您从 Web Studio 注销后清除。

要查看您当天执行的 UI 操作对应的 PowerShell 命令,请单击PowerShell选项卡。

将元数据与配置日志关联

您可以通过将一个名为 MetadataMapname-value 对与日志记录关联,从而将元数据附加到配置日志。

注意:

  • 您只能将元数据附加到高级操作对象。
  • 元数据在执行时,会与现有的记录建立关联。

设置元数据

运行 PowerShell 命令 Set-LogHighLevelOperationMetadata 以将日志记录与 MetadataMap 关联。 Set-LogHighLevelOperationMetadata 接受以下参数:

  • Id:高级操作的 ID。
  • InputObject:您添加元数据的高级操作。这是 Id 参数的替代方法,其中高级操作对象或对象列表被传递给 PowerShell 命令。
  • Name:要添加的元数据的属性名称。该属性对于指定的高级操作必须是唯一的。该属性不能包含以下任何字符:()\/;:#.*?=<> []”‘。
  • Value:属性的值。
  • Map:属性的(名称、值)对字典。这是使用 -Name-Value 参数设置元数据的替代方法。

例如,要将元数据附加到所有 Id 为 40 的高级日志记录,请运行以下 PowerShell 命令:

Get-LogHighLevelOperation – Id 40 | Set-LogHighLevelOperationMetadata -Name A -Value B

要将元数据附加到用户为 abc@example.com 的高级记录,请运行以下 PowerShell 命令:

Get-LogHighLevelOperation – User `abc@example.com` | Set-LogHighLevelOperationMetadata -Name C -Value D

使用元数据检索

运行以下 PowerShell 命令,使用关联的元数据检索日志记录:

  • 按键和值搜索:

    Get-LogHighLevelOperation -Metadata "Key:Value"

  • 按值搜索任意键:

    Get-LogHighLevelOperation -Metadata "*:Value"

  • 按键搜索任意值:

    Get-LogHighLevelOperation -Metadata "Key:*"

删除元数据

运行 PowerShell 命令 Remove-LogHighLevelOperationMetadata 以删除关联的元数据。 Remove-LogHighLevelOperationMetadata 接受以下参数:

  • Id:高级操作的 ID。
  • InputObject:您添加元数据的高级操作。这是 Id 参数的替代方法,其中高级操作对象或对象列表将传递给 PowerShell 命令。
  • Name:要删除的元数据的属性名称。设置为 $null 以删除指定对象的所有元数据。
  • Map:属性的(名称、值)对字典。这可以是哈希表(使用 @{“name1” = “val1”; “name2” = “val2”} 创建)或字符串字典(使用 new-object “System.Collections.Generic.Dictionary[String, String]” 创建)。名称与映射中的键匹配的属性将被删除。