你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于农业的 Azure 数据管理器日志记录

创建用于农业的数据管理器资源实例后,可以监视何人在何时以何种方式访问你的资源。 还可以调试出数据平面请求失败的原因。 为此,需要为 Azure 用于农业的数据管理器启用日志记录。 然后,可以将日志信息保存在提供的目标位置,例如存储帐户、事件中心或 Log Analytics 工作区。

本文提供为 Azure 用于农业的数据管理器设置日志记录的步骤。

启用日志收集

创建用于农业的数据管理器服务资源后,导航到诊断设置,然后选择 add diagnostics settings。 按照以下步骤开始收集和存储日志:

  1. 为该诊断设置提供一个名称。
  2. 选择你要开始收集其日志的类别。
  3. 从存储帐户、事件中心或 Log Analytics 工作区中选择收集目标。

显示在 Azure 门户中创建诊断设置的步骤的屏幕截图。

现在可以导航到在诊断设置中指定的目标,以访问日志。 在执行用于农业的数据管理器操作后,最多经过 10 分钟即可访问日志记录信息。 在大多数情况下不需要经过 10 分钟。

解释日志

每个日志遵循表中列出的架构。 该表包含字段名称和说明:

字段名称 说明
time 日期和时间 (UTC)。
resourceId Azure 资源管理器资源 ID。 对于日志,这是用于农业的数据管理器的资源 ID。
operationName 所述的操作名称。
operationVersion 客户端请求的 REST API 版本。
category 结果的类型。
resultType REST API 请求的结果(成功或失败)。
resultSignature HTTP 状态。
resultDescription 有关结果的附加说明(如果有)。
durationMs 为 REST API 请求提供服务所花费的时间,以毫秒为单位。
callerIpAddress 发出请求的客户端的 IP 地址。
level 事件的严重性级别(信息、警告、错误或严重)。
correlationId 可用于关联日志的可选 GUID。
identity 在 REST API 请求中提供的令牌中的标识。 这通常是一个对象 ID 和/或一个应用程序 ID。
location 发出事件的资源所在的区域,例如“美国东部”
properties 对于每个 operationName,它包含:requestUri(API 请求的 URI)、partyId(与请求关联的 partyId,如果适用)、dataPlaneResourceId(用于唯一标识请求中数据平面资源的 ID)和 requestBody(包含与除 ApplicationAuditLogs 之外的所有类别的 operationName 关联的 API 调用的请求正文)。
除了前面提到的常见项之外,jobProcessesLogs 类别还有:
1. 此列表包含跨 operationNames 的字段:
jobRunType(可以是一次性或定期运行)、jobId(作业的 ID)、initiatedBy(表示作业是由用户还是服务触发)。
2. 此列表包含失败的 farmOperation 相关作业的字段:
farmOperationEntityId(farmOperation 作业创建失败的实体的 ID)、farmOperationEntityType(无法创建的实体的类型)、errorCode(作业失败的代码)、errorMessage(失败的说明)、internalErrorCode(提供程序提供的失败代码)、internalErrorMessage(提供程序提供的失败的说明)、providerId(提供程序的 ID)。

用于农业的数据管理器的 categories 字段可以包含下表中列出的值:

类别表

category 说明
FarmManagementLogs 针对参与方、农场、田地、季节性田地、作物、作物品种、季节、附件、处方图、处方、管理区域、区域、植物组织分析和营养分析执行的 CRUD 操作的日志。
FarmOperationsLogs 对 FarmOperations 数据引入作业、ApplicationData、PlantingData、HarvestingData、TillageData 执行的 CRUD 操作的日志
SatelliteLogs 有关创建和获取针对卫星数据引入作业的操作的日志
WeatherLogs 有关创建、删除和获取针对数据引入作业的操作的日志
ProviderAuthLogs 有关创建、更新、删除、级联删除、获取和全部获取针对 Oauth 提供程序的操作的日志。 它还包含有关获取、全部获取、级联删除针对 oauth 令牌的操作的日志。
JobProcessedLogs 用于指示作业成功或失败以及失败原因的日志。 除了资源级联删除作业、数据引入作业的日志外,它还包含场操作和事件处理作业的日志。
ModelInferenceLogs 有关创建和获取针对生物量模型作业的操作的日志。
InsightLogs 有关获取和全部获取针对见解的操作的日志。
ApplicationAuditLogs 特权操作(例如数据平面资源创建、更新、删除和订阅管理操作)的日志。 下面的操作名称表中提供了完整列表。

operationName 字段值采用 Microsoft.AgFoodPlatform/resource-name/read、write、delete 或 action 格式

  • 操作名称中的 /write 后缀对应于创建或更新资源名称的操作
  • 操作名称中的 /read 后缀对应于资源名称的级联删除作业的 GET/LIST/GET ALL API 调用或 GET 状态
  • /delete 后缀对应于删除资源名称的操作
  • /action 后缀对应于对资源名称的 POST 方法调用
  • /processed 后缀对应于作业(PUT 方法调用)完成。 这会指明作业状态(成功或失败)。
  • /failures 后缀对应于场操作作业(PUT 方法调用)失败,并包含有关失败原因的说明。

作业的命名规则如下:

  • 对于数据引入作业:Microsoft.AgFoodPlatform/ingestionJobs/<'resource-name'>DataingestionJobs/write
  • 对于删除作业:Microsoft.AgFoodPlatform/deletionJobs/<'resource-name'>cascadeDeleteJobs/write

下表以选项卡形式列出了类别的 operationName 值和对应的 REST API 命令

FarmManagementLogs

operationName
Microsoft.AgFoodPlatform/farmers/write
Microsoft.AgFoodPlatform/farmers/read
Microsoft.AgFoodPlatform/deletionJobs/farmersCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/farms/write
Microsoft.AgFoodPlatform/farms/read
Microsoft.AgFoodPlatform/farms/delete
Microsoft.AgFoodPlatform/deletionJobs/farmsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/field/write
Microsoft.AgFoodPlatform/field/read
Microsoft.AgFoodPlatform/field/delete
Microsoft.AgFoodPlatform/deletionJobs/fieldsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/seasonalField/write
Microsoft.AgFoodPlatform/seasonalField/read
Microsoft.AgFoodPlatform/seasonalField/delete
Microsoft.AgFoodPlatform/deletionJobs/seasonalFieldsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/boundaries/write
Microsoft.AgFoodPlatform/boundaries/read
Microsoft.AgFoodPlatform/boundaries/delete
Microsoft.AgFoodPlatform/boundaries/action
Microsoft.AgFoodPlatform/deletionJobs/fieldsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/crops/write
Microsoft.AgFoodPlatform/crops/read
Microsoft.AgFoodPlatform/crops/delete
Microsoft.AgFoodPlatform/cropVarieties/write
Microsoft.AgFoodPlatform/cropVarieties/read
Microsoft.AgFoodPlatform/cropVarieties/delete
Microsoft.AgFoodPlatform/seasons/write
Microsoft.AgFoodPlatform/seasons/read
Microsoft.AgFoodPlatform/seasons/delete
Microsoft.AgFoodPlatform/attachments/write
Microsoft.AgFoodPlatform/attachments/read
Microsoft.AgFoodPlatform/attachments/delete
Microsoft.AgFoodPlatform/prescriptions/write
Microsoft.AgFoodPlatform/prescriptions/read
Microsoft.AgFoodPlatform/prescriptions/delete
Microsoft.AgFoodPlatform/deletionJobs/prescriptionsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/prescriptionMaps/write
Microsoft.AgFoodPlatform/prescriptionMaps/read
Microsoft.AgFoodPlatform/prescriptionMaps/delete
Microsoft.AgFoodPlatform/deletionJobs/prescriptionMapsCascadeDeleteJobs/write
Microsoft.AgFoodPlatform/managementZones/write
Microsoft.AgFoodPlatform/managementZones/read
Microsoft.AgFoodPlatform/managementZones/delete
Microsoft.AgFoodPlatform/deletionJobs/managementZonescascadeDeletejobs/write
Microsoft.AgFoodPlatform/zones/write
Microsoft.AgFoodPlatform/zones/read
Microsoft.AgFoodPlatform/zones/delete
Microsoft.AgFoodPlatform/deletionJobs/zonesCascadedeleteJobs/write
Microsoft.AgFoodPlatform/plantTissueanalyses/write
Microsoft.AgFoodPlatform/plantTissueanalyses/read
Microsoft.AgFoodPlatform/plantTissueanalyses/delete
Microsoft.AgFoodPlatform/deletionJobs/plantTissueanalysesCascadedeleteJobs/write
Microsoft.AgFoodPlatform/nutrientAnalyses/write
Microsoft.AgFoodPlatform/nutrientAnalyses/read
Microsoft.AgFoodPlatform/nutrientAnalyses/delete
Microsoft.AgFoodPlatform//deletionJobs/nutrientAnalysescascadeDeletejobs/delete

FarmOperationLogs

operationName
Microsoft.AgFoodPlatform/ingetsionJobs/farmOperationsdataIngestionjobs/write
Microsoft.AgFoodPlatform/applicationData/read
Microsoft.AgFoodPlatform/applicationData/write
Microsoft.AgFoodPlatform/applicationData/delete
Microsoft.AgFoodPlatform/deletionJobs/applicationDatacascadeDeletejob/write
Microsoft.AgFoodPlatform/plantingData/write
Microsoft.AgFoodPlatform/plantingData/read
Microsoft.AgFoodPlatform/plantingData/delete
Microsoft.AgFoodPlatform/deletionJobs/plantingDatacascadeDeletejob/write
Microsoft.AgFoodPlatform/harvestingData/write
Microsoft.AgFoodPlatform/harvestingData/read
Microsoft.AgFoodPlatform/harvestingData/delete
Microsoft.AgFoodPlatform/deletionJobs/harvestingDatacascadeDeletejob/write
Microsoft.AgFoodPlatform/tillageData/Write
Microsoft.AgFoodPlatform/tillageData/Read
Microsoft.AgFoodPlatform/tillageData/Delete
Microsoft.AgFoodPlatform/deletionJobs/tillageDatacascadeDeletejob/write

SatelliteLogs

operationName
Microsoft.AgFoodPlatform/ingestionJobs/satelliteDataingestionJob/write
Microsoft.AgFoodPlatform/scenes/read

WeatherLogs

operationName
Microsoft.AgFoodPlatform/ingestionJobs/weatherDataingestionJob/write
Microsoft.AgFoodPlatform/weather/read
Microsoft.AgFoodPlatform/deletionJobs/weatherDeletejob/delete

ProviderAuthLogs

operationName
Microsoft.AgFoodPlatform/oauthProviders/write
Microsoft.AgFoodPlatform/oauthProviders/read
Microsoft.AgFoodPlatform/oauthProviders/delete
Microsoft.AgFoodPlatform/oauthTokens/read
Microsoft.AgFoodPlatform/oauthTokens/delete

JobProcessesLogs

operationName
Microsoft.AgFoodPlatform/ingestionJobs/satelliteDataIngestionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/satelliteDataDeletionJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/weatherDataIngestionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/weatherDataDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/oauthProvidersCascadeDeleteJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/oauthTokensRemoveJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/biomassModelJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/ImageProcessingRasterizeJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationDataIngestionJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationDataIngestionJobs/processed/failures
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationPeriodicJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationPeriodicJobs/processed/failures
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationEventHandlingJobs/processed
Microsoft.AgFoodPlatform/ingestionJobs/farmOperationEventHandlingJobs/processed/failures
Microsoft.AgFoodPlatform/deletionJobs/applicationDataCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/tillageDataCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/plantingDataCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/harvestDataCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/managementZonesCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/zonesCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/plantTissueAnalysesCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/prescriptionsCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/prescriptionMapsCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/insightsCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/farmersCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/farmsCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/fieldsCascadeDeletionJobs/processed
Microsoft.AgFoodPlatform/deletionJobs/seasonalFieldsCascadeDeletionJobs/processed

ApplicationAuditLogs

其他类别中的写入和删除操作日志也存在于此类别中。 此类别中的日志与针对同一 API 调用的其他类别中的日志的差别在于,ApplicationAuditLogs 不会记录请求正文,而其他类别则会填充请求正文。 可以使用 correlation-id 关联两个不同类别的日志以获取更多详细信息。 下面列出了一些不属于其他类别的控制平面操作。

注意

若要发出控制平面调用,需要拥有 ADMA 资源范围的所有者访问权限。

operationName
创建用于农业的资源数据管理器资源
更新用于农业的资源数据管理器资源
删除用于农业的资源数据管理器资源
创建订阅
更新订阅
数据平面身份验证

在 Log Analytics 工作区中查询资源日志

资源日志的所有 categories 都映射为 Log Analytics 中的表。 若要访问每个类别的日志,需要创建一个诊断设置以将数据发送到 Log Analytics 工作区。 在此工作区中,可以查询列出的任何表以获取相关日志。

Log Analytics 中的表列表及其与资源日志中类别的映射

Log Analytics 中的表名称 资源日志中的类别 说明
AgriFoodFarmManagementLogs FarmManagementLogs 针对参与方、农场、田地、季节性田地、作物、作物品种、季节、附件、处方图、处方、管理区域、区域、植物组织分析和营养分析执行的 CRUD 操作的日志。
AgriFoodFarmOperationsLogs FarmOperationsLogs 对 FarmOperations 数据引入作业、ApplicationData、PlantingData、HarvestingData、TillageData 执行的 CRUD 操作的日志。
AgriFoodSatelliteLogs SatelliteLogs 有关创建和获取针对卫星数据引入作业的操作的日志。
AgriFoodWeatherLogs WeatherLogs 有关创建、删除和获取针对数据引入作业的操作的日志。
AgriFoodProviderAuthLogs ProviderAuthLogs 有关创建、更新、删除、级联删除、获取和全部获取针对 Oauth 提供程序的操作的日志。 它还包含有关获取、全部获取、级联删除针对 oauth 令牌的操作的日志。
AgriFoodInsightLogs InsightLogs 有关获取和全部获取针对见解的操作的日志。
AgriFoodModelInferenceLogs ModelInferenceLogs 有关创建和获取针对生物量模型作业的操作的日志。
AgriFoodJobProcessedLogs JobProcessedLogs 用于指示作业成功或失败以及失败原因的日志。 此外,还包含资源级联删除作业、数据引入作业的日志。 它还包含场操作和事件处理作业的日志。
AgriFoodApplicationAuditLogs ApplicationAuditLogs 特权操作(例如数据平面资源创建、更新、删除和订阅管理操作)的日志。

Log Analytics 表中的列列表

字段名称 说明
时间 日期和时间 (UTC)。
ResourceId 用于农业的数据管理器日志的 Azure 资源管理器资源 ID。
OperationName 上表中所述的操作名称。
OperationVersion 客户端请求的 REST API 版本。
类别 用于农业的数据管理器日志中的类别详细信息,可以是类别表中列出的任何值。
ResultType REST API 请求的结果(成功或失败)。
ResultSignature HTTP 状态。
ResultDescription 有关结果的更多描述(如果有)。
DurationMs 为 REST API 请求提供服务所花费的时间,以毫秒为单位。
CallerIpAddress 发出请求的客户端的 IP 地址。
Level 事件的严重性级别(信息、警告、错误或严重)。
CorrelationId 可用于关联日志的可选 GUID。
ApplicationId 指示调用方标识的应用程序 ID。
ObjectId 指示调用方标识的对象 ID。
ClientTenantId 调用方的租户 ID。
SubscriptionId 调用方使用的订阅的 ID。
位置 发出事件的资源所在的区域,例如“美国东部”
JobRunType 仅在 AgriFoodJobProcessesLogs 表中提供,指示作业运行的类型。 值可以是定期值,也可以是一次性值。
JobId AgriFoodJobProcessesLogsAgriFoodSatelliteLogsAgriFoodWeatherLogsAgriFoodModelInferenceLogs 中提供,指示作业的 ID。
InitiatedBy 仅在 AgriFoodJobProcessesLogs 表中提供。 指示作业是由用户还是服务启动。
partyId 与操作关联的参与方的 ID。
属性 仅在 AgriFoodJobProcessesLogs 表中提供,包含:farmOperationEntityId(farmOperation 作业创建失败的实体的 ID)、farmOperationEntityType(无法创建的实体的类型,可以是 ApplicationData、PeriodicJob 等)、errorCode(用于农业的数据管理器一端发生的作业失败的代码)、errorMessage(用于农业的数据管理器一端发生的失败的说明)、internalErrorCode(提供程序提供的作业失败的代码)、internalErrorMessage(提供程序提供的失败的说明)、providerId(提供程序的 ID,例如 JOHN-DEERE)。

可以通过创建 Log Analytics 工作区来查询每个表。 此处提供了查询语言参考。

Log Analytics 工作区中的示例查询列表

查询名称 说明
参与方场管理操作的状态 提取每个参与方在 FarmManagementLogs 类别中的操作成功和失败计数。
参与方的作业执行统计信息 提供每个参与方在 JobProcessedLogs 类别中的所有操作的成功和失败计数。
授权失败 标识无法访问资源的用户列表以及发生这种失败的原因。
参与方所有操作的状态 聚合参与方在各个类别中的操作失败和成功状态。
根据执行的操作显示的前 100 个参与方的使用趋势 根据在各个类别中收到的点击数检索前 100 个参与方的列表。 可以编辑此查询,以跟踪特定参与方的使用趋势。

可将上面列出的所有查询用作基础查询,以便在 Log Analytics 工作区中构建自定义查询。 还可以在 Azure 门户上用于农业的 Azure 数据管理器资源的 Logs 选项卡中访问此查询列表。

后续步骤

了解如何设置专用链接