导出在线审计数据
当已启用直接久存实现时,可使用 ExportOnlineAuditData 服务从在线数据存储中导出审计消息的本地化版本。由于 ExportOnlineAuditData 服务仅适用于直接久存实现,因此,数据存储是配置为 ThingWorx Platform 持久化方案提供工具的数据库,PostgreSQL 或 MS SQL。
ExportOnlineAuditData 服务可构建在线数据的本地化审计消息。此服务将使用区域设置、信息库名称、目标路径、目标文件名称、开始日期和结束日期。区域设置用于翻译审计消息。调用时,服务会从在线存储中将符合给定条件的审计条目以压缩文件形式、使用给定目标文件名称导出到给定目标路径。导出按审计日期进行排序。服务及其输入如下:

ExportOnlineAuditData(locale[STRING],
targetRepositoryName[THINGNAME],
targetPath[STRING],
targetFileName[STRING],
startDate[DATETIME],
endDate[DATETIME],
query[QUERY])
下表列出了输入参数、对其进行了简要介绍并显示了其 ThingWorx 基本类型:
参数
说明
基本类型
locale
要使用该语言返回结果的语言名称的缩写。(STRING)。例如,适用于法语的 fr 或适用于中文 (中国) 的 zh_CN。有关 ThingWorx 支持的区域设置的列表,请参阅支持的区域设置
STRING
targetRepositoryName
“文件信息库”事物的名称,其中输出文件包含应存储的本地化审计条目。
THINGNAME
targetPath
输出文件应写入到的位置。
STRING
targetFileName
应在其中存储本地化审计数据的输出文件的名称。
STRING
startDate
要导出的第一个审计条目的日期和时间。将导出时间戳在第一次导出审计条目的日期和时间之后且在 endDate 之前的所有审计条目。
DATETIME
endDate
要导出的最后一个审计条目的日期和时间。将导出时间戳在最后一次导出审计条目的日期和时间之前且在 startDate 之后的所有审计条目。
DATETIME
query
用于筛选和排序审计数据的 JSON 格式的查询。此参数没有默认值。有关示例,请参阅下面的导出在线审计数据的示例部分。
导出在线审计数据的示例
以下是调用该服务的示例:

AuditSubsystem.ExportOnlineAuditData("en", myExportRepository, "/auditExport/",
"export_02-03_one_hour", 2020-02-03 18:50:03.000, 2020-02-03 19:50:03.000,
{
"filters": {
"type": "OR",
"filters": [{
"type": "EQ",
"fieldName": "user",
"value": "Administrator",
"isCaseSensitive": false
},
{
"type": "Between",
"fieldName": "timestamp",
"from": 1570195753953,
"to": 1570195753961
},
{
"type": "IN",
"fieldName": "source",
"values": ["test_tt", "test"],
"isCaseSensitive": false
},}
]
},
"sorts": [
{
"fieldName": "source",
"isAscending": true,
"isCaseSensitive": true
},
{
"fieldName": "timestamp",
"isAscending": true,
"isCaseSensitive": true
}
]
})
本示例将在 /auditExport/export_02-03_one_hour.zip 处的 myExportRepository 中以英语创建导出。内容将是基于指定开始和结束日期的所有在线审计消息。导出的 zip 文件大小取决于开始和结束日期之间收集的数据量。下表显示了基于开始和结束日期的导出内容:
开始日期
结束日期
导出的内容
2020-02-03 18:50:03.000 (特定的日期和时间)
2020-02-03 19:50:03.000 (特定的日期和时间)
从开始日期到结束日期的所有在线数据,在本例中指定为同一日期 (2020–02–03)、一小时的数据 (从 18:50:03.00019:50:03.000)。
null
2020-02-03 19:50:03.000 (特定的日期和时间)
早于结束日期和时间 (2020-02-03 19:50:03.000) 的所有在线数据。当开始日期设置为 null 时,导出可能会包含大量的审计数据,具体取决于数据库存储中的审计消息数量和在线数据保留策略。
2020-02-03 18:50:03.000 (特定的日期和时间)
null
开始日期和时间以及当前日期和时间之间的所有在线数据,通过将结束日期设置为 null 指定。
null
null
所有在线审计数据。不建议,因为这可能需要花费很长时间。
继续该示例,export_02-03_one_hour.zip 文件会创建一个名为 AuditArchiveDirectPersistence/export/export_02-03_one_hour.json 的存档文件。
以下是导出文件中 JSON 的示例,AuditArchiveDirectPersistence/export/export_02-03_one_hour.json

{
"rows":[
{
"auditCategory":"Modeling",
"application":"ThingWorxCore",
"sourceType":"Thing",
"id":"4164",
"source":"ExampleThing",
"message":"Created Thing \"ExampleThing\"",
"user":"ExampleUser",
"timestamp":1580773803
},
...
...
]
}
此直接久存示例所返回的信息包括以下详细信息:
属性
说明
auditCategory
审计消息类别的名称。在以上示例中,消息属于 Modeling 类别。有关审计类别的详细信息,请参阅审计类别
application
生成审计消息的应用程序的名称。对于通过核心 ThingWorx Platform 生成的审计消息,该值将被设置为 ThingworxCore
sourceType
与生成此审计消息 (Thing) 的应用程序相关联的类型。
source
生成此审计消息的 ThingWorx 应用程序或可执行程序。在示例中,源是 ExampleThing
id
这是针对审计条目自动生成的唯一标识符。在本示例中,id4164
message
审计消息的文本。
user
生成审计消息时,运行应用程序的用户的登录名。
timestamp
在时间段内,生成审计消息的日期和时间。
导出后在线数据会发生什么情况?
导出后,在线数据将保留在在线存储中。可通过运行 ArchiveAuditHistory 服务将数据从在线存储中手动删除,也可通过设置 AuditArchiveScheduler 来自动将其移除。
这对您有帮助吗?