配置日志记录
配置日志记录是一项功能,可将站点配置更改和管理活动捕获到数据库中。此功能默认启用。您可以使用记录的内容来:
-
在配置更改后诊断和解决问题。日志提供了一个跟踪线索。
-
协助变更管理并跟踪配置。
-
报告管理活动。
您可以从 Citrix Studio 设置配置日志记录首选项、显示配置日志以及生成 HTML 和 CSV 报告。您可以按日期范围和全文搜索结果筛选配置日志显示。强制日志记录(启用时)会阻止进行配置更改,除非这些更改可以被记录。获得适当权限后,您可以从配置日志中删除条目。您不能使用配置日志记录功能编辑日志内容。
配置日志记录使用 PowerShell SDK 和配置日志记录服务。配置日志记录服务在站点中的每个控制器上运行。如果一个控制器发生故障,另一个控制器上的服务会自动处理日志记录请求。
默认情况下,配置日志记录功能处于启用状态,并使用在创建站点时创建的数据库(站点配置数据库)。您可以为数据库指定不同的位置。配置日志记录数据库支持与站点配置数据库相同的高可用性功能。
对配置日志记录的访问通过委派管理进行控制,具有“编辑日志记录首选项”和“查看配置日志”权限。
配置日志在创建时即已本地化。例如,以英语创建的日志将以英语读取,无论读者的区域设置如何。
记录了什么
从 Studio、Director 和 PowerShell 脚本启动的配置更改和管理活动都会被记录。记录的配置更改示例包括处理(创建、编辑、删除、分配):
-
计算机目录
-
交付组(包括更改电源管理设置)
-
管理员角色和范围
-
主机资源和连接
-
通过 Studio 的 Citrix 策略
记录的管理更改示例包括:
-
虚拟机或用户桌面的电源管理
-
Studio 或 Director 向用户发送消息
以下操作不会被记录:
-
自主操作,例如池管理虚拟机的电源开启。
-
通过组策略管理控制台 (GPMC) 实现的策略操作;使用 Microsoft 工具查看这些操作的日志。
-
通过注册表、直接访问数据库或来自 Studio、Director 或 PowerShell 以外的源进行的更改。
-
部署初始化时,当第一个配置日志记录服务实例向配置服务注册时,配置日志记录才可用。因此,配置的早期阶段不会被记录(例如,获取和应用数据库架构时,初始化管理程序时)。
管理配置日志记录
默认情况下,配置日志记录使用创建站点时创建的数据库(也称为站点配置数据库)。Citrix 建议您将配置日志记录数据库(和监视数据库)放置在单独的位置,原因如下:
-
配置日志记录数据库的备份策略可能与站点配置数据库的备份策略不同。
-
为配置日志记录(和监视服务)收集的数据量可能会对站点配置数据库的可用空间产生不利影响。
-
它将三个数据库的单点故障分离开来。
不支持配置日志记录的产品版本在 Studio 中没有“日志记录”节点。
启用和禁用配置日志记录以及强制日志记录
默认情况下,配置日志记录处于启用状态,强制日志记录处于禁用状态。
-
登录 Web Studio 并在左侧窗格中选择 日志记录。
-
在操作栏中选择 首选项。配置日志记录对话框包含数据库信息,并指示配置日志记录和强制日志记录是启用还是禁用。
-
选择所需操作:要启用配置日志记录,请选择 启用。这是默认设置。如果无法写入数据库,则日志记录信息将被丢弃,但操作会继续。要禁用配置日志记录,请选择 禁用。如果以前启用了日志记录,则现有日志仍可通过 PowerShell SDK 读取。要启用强制日志记录,请选择 当数据库不可用时阻止更改站点配置。除非可以将配置更改或通常记录的管理活动写入配置日志记录数据库,否则不允许进行此类更改或活动。仅当启用配置日志记录时(即选择 启用 时),才能启用强制日志记录。如果配置日志记录服务失败且未使用高可用性,则假定为强制日志记录。在这种情况下,通常会记录的操作将不会执行。要禁用强制日志记录,请选择 当数据库不可用时允许更改站点配置。即使无法访问配置日志记录数据库,也允许进行配置更改和管理活动。这是默认设置。
更改配置日志记录数据库位置
当强制日志记录启用时,您无法更改数据库位置,因为位置更改包括一个无法记录的短暂断开连接间隔。
-
使用受支持的 SQL Server 版本创建数据库服务器。
-
登录 Web Studio 并在左侧窗格中选择 日志记录。
-
在操作栏中选择 首选项。
-
在“日志记录首选项”对话框中,选择 更改日志记录数据库。
-
在“更改日志记录数据库”对话框中,指定包含新数据库服务器的服务器位置。有关有效格式,请参阅 (/zh-cn/citrix-virtual-apps-desktops/2607-ltsr/technical-overview/databases.html#database-address-formats)。
-
要允许 Studio 创建数据库,请单击 确定。出现提示时,单击 确定,数据库将自动创建。Studio 尝试使用当前 Studio 用户的凭据访问数据库。如果失败,系统会提示您输入数据库用户的凭据。然后,Studio 会将数据库架构上传到数据库。(凭据仅在数据库创建期间保留。)
-
要手动创建数据库,请单击生成数据库脚本。生成的脚本包含手动创建数据库的说明。在上传架构之前,请确保数据库为空,并且至少有一个用户有权访问和更改数据库。
以前数据库中的配置日志记录数据不会导入到新数据库。检索日志时,无法从两个数据库聚合日志。新配置日志记录数据库中的第一个日志条目指示发生了数据库更改,但它不标识以前的数据库。
查看配置日志内容
要查看配置日志内容,请在左侧窗格中选择日志记录,然后选择事件选项卡。
默认情况下,事件日志按管理员名称列出。您可以根据需要执行以下任务:
-
查看日志详细信息。 高级操作会导致一个或多个服务和 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 数据库登录名,该角色允许您在数据库服务器上执行任何活动。或者,
serveradmin或setupadmin服务器角色允许您执行删除操作。 -
如果您的部署需要更高的安全性,请使用映射到有权从数据库中删除记录的数据库用户的非 sysadmin 数据库登录名。
-
在 SQL Server Management Studio 中,创建一个服务器角色不是“sysadmin”的 SQL Server 登录名。
-
将登录名映射到数据库中的用户。SQL Server 会自动在数据库中创建一个与登录名同名的用户。
-
在“数据库角色成员身份”中,为数据库用户指定至少一个角色成员:
ConfigurationLoggingSchema_ROLE或dbowner。
有关详细信息,请参阅 SQL Server Management Studio 文档。 -
-
要删除配置日志:
-
登录 Web Studio 并在左侧窗格中选择“日志记录”。
-
在操作栏中选择“删除日志”。
-
系统会询问您是否要在删除日志之前创建日志备份。如果您选择创建备份,请浏览到保存备份存档的位置。备份将创建为 CSV 文件。
配置日志清除后,日志删除是发布到空日志的第一项活动。该条目提供有关谁在何时删除了日志的详细信息。
查看 API 和 PowerShell 日志
要监视当前会话期间发出的 API 请求,请单击“API”选项卡。退出 Web Studio 后,API 日志将被清除。
要查看与您当天执行的 UI 操作对应的 PowerShell 命令,请单击“PowerShell”选项卡。
将元数据与配置日志关联
您可以通过将一个名为
MetadataMap 的 name-value 对与日志记录关联,从而将元数据附加到配置日志。
注意:
-
您只能将元数据附加到高级操作对象。
-
元数据在执行时与现有记录关联。
设置元数据
运行 PowerShell 命令
Set-LogHighLevelOperationMetadata 以将日志记录与 MetadataMap 关联。 Set-LogHighLevelOperationMetadata 接受以下参数:
-
Id:高级操作的 ID。
-
InputObject:您向其添加元数据的高级操作。这是
Id参数的替代方法,其中高级操作对象或对象列表传递给 PowerShell 命令。 -
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 以移除指定对象的所有元数据。
最佳实践
-
首先使用直接参数。将已知操作与相应的参数匹配:
-User、-OperationType、-TargetType、-Source或-IsSuccessful。 -
始终包含时间范围。
-StartTime和-EndTime是任何查询最有效的首个筛选器。 -
从高级别深入到低级别。调查特定操作时,首先检索高级别操作,然后将其 ID 与
-HighLevelOperationId结合使用。 -
将导出范围限定在感兴趣的时期。使用
-StartDateRange和-EndDateRange定位相关时间窗口。 -
当不需要显示名称时,对导出使用
-RawReport。这可以减少处理时间和输出大小。