清理离线审计存档
启用审计后,您需要监控磁盘空间以确定是否需要清理审计子系统的 AuditArchiveFileRepository。根据所选的实现,AuditArchiveFileRepository 将包含两个子目录中的任意一个,其中每个子目录适用于一个实现:
直接久存 - AuditArchiveDirectPersistence
数据表 - AuditArchive
如果您选择使用数据表实现,然后切换到直接久存实现,则会保留来自数据表实现的审计数据。文件信息库中的目录结构将如下所示:
* 
反之亦然,即,如果从直接久存切换到数据表,则会保留直接久存数据。
以下指标可帮助您决定是否需要清理信息库:
AuditArchiveDiskSpaceUsed (以 MB 为单位) - 存档信息库使用的磁盘空间大小。
AuditArchiveFreeDiskSpace (以 MB 为单位) - 磁盘的可用空间大小。
CleanUpOfflineAudit 服务包括两种 Scheduler 事物:
AuditArchiveCleanupScheduler - 默认情况下,在每月最后一个星期五下午 6 点计划作业。您可以更改排程,方法是在 ThingWorx Composer 中导航至 AuditArchiveCleanupScheduler,然后在其配置页面中为其设置一个不同的 CRON 表达式。
作业将调用 CleanUpOfflineAudit 服务。根据当前启用的实现,CleanUpOfflineAudit 将仅从上述其中一个目录删除已存档审计数据的子目录。当启用了数据表实现时,仅会删除 AuditArchive 中的子目录。同样,当启用了直接久存时,仅会删除 AuditArchiveDirectPersistence 中的子目录。
所删除的是早于此计划程序 DaysToArchive 属性值的子目录。您可以从 ThingWorx Composer 中设置此属性的值。其默认值为 180 天。
除使用计划程序外,您还可以手动调用 CleanUpOfflineAudit 服务。手动调用时,服务会将日期作为输入,且会移除当前已启用的实现子目录中的数据,即,适用于数据表实现的 AuditArchive,或适用于直接久存实现的 AuditArchiveDirectPersistence
AuditArchiveCleanupNotificationScheduler - 通知用户将运行清理服务。默认情况下,在每月最后一个星期五上午 6 点触发该 Scheduler 事物,并触发事件以通知所有订阅者将在下午 6 点 (将运行 AuditArchiveCleanupScheduler 计划的作业的默认时间) 运行清理服务事件。与清理服务的计划程序相同,您可以更改运行该通知服务的日期和/或频率。您还可以订阅事件,并根据事件在您想要运行的脚本中添加自己的逻辑。有关详细信息,请参阅下面的 订阅事件 部分。
清理服务 CleanUpOfflineAudit 将在输入 olderThanDate 时执行。此自变量的类型为 DateTime,其格式取决于区域设置。服务会从离线存储中删除早于所指定日期的审计条目。
* 
也可以手动运行 CleanUpOfflineAudit 服务。
对于输出,清理服务将提供有关已成功移除目录的信息,以及服务移除失败的目录的信息 (如果适用)。请注意,移除文件或目录失败不会停止清理过程。服务将跳过失败目录,并移动到下一个目录。
下面的示例显示了清理服务的工作原理。
示例 4. 使用 CleanUpOfflineAudit 服务
例如,假设调用服务时使用日期 2020-03-07,而用于直接久存实现的信息库子目录 AuditArchiveDirectPersistence 包含以下子目录:
运行清理服务后,信息库仅包含以下子目录:
名为 2020-03-07 的子目录是指定为 olderThanDate 的日期,而名为 2020-03-08 的子目录则晚于 olderThanDate。清理服务在删除其他三个子目录时保留了这两个项,因为它们早于 olderThanDate
只有管理员有权调用清理服务。要允许非管理员用户调用服务,管理员需要使用“服务覆盖”为用户提供正确权限。有关“服务覆盖”的信息,请参阅此帮助中心安全部分中的服务覆盖主题。
如果清理服务由于某种原因失败,则会返回包含失败原因的错误消息。
用于设置离线保留时间值的最佳做法
如果已启用 Metrics Reporting 功能,则可以通过 ThingWorx Composer 使用有关“审计子系统”及其“审计存档文件信息库”的相关指标。要访问指标,请选择“监控” > “子系统”。您可以查看审计活动指标主题中的整个指标列表。如上所述,下列指标是衡量是否需要清理信息库中已存档审计数据的良好指标:
AuditArchiveDiskSpaceUsed (以 MB 为单位) - AuditArchiveFileRepository 中已存档数据使用的磁盘空间大小。
AuditArchiveFreeDiskSpace (以 MB 为单位) - 磁盘的可用空间大小。
如果磁盘的占用空间较大且剩余空间较小,建议您尽快清理信息库,方法为手动调用清理服务,并为服务指定一个日期作为移除所有早于指定日期的文件和目录的起始点。此外,还要考虑将 DaysToArchive 设置为较低的值,以保持环境需要的可用磁盘空间大小。
订阅事件
AuditArchiveCleanupNotificationScheduler 触发事件 AuditCleanupNotification,并就即将进行的文件清理操作通知订阅者。您可以订阅事件,并根据事件在您想要运行的脚本中添加自己的逻辑。
AuditArchiveCleanupScheduler 相关联的作业具有 DaysToArchive 属性。默认情况下,此属性的值为 180 天 (六个月)。您可以从 ThingWorx Composer 更改此值。计划的作业将会每月运行,以清理超过指定 DaysToArchive 的所有数据。也可以在 Composer 中修改自动服务调用的频率。
这对您有帮助吗?