你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于农业的 Azure 数据管理器日志记录
创建用于农业的数据管理器资源实例后,可以监视何人在何时以何种方式访问你的资源。 还可以调试出数据平面请求失败的原因。 为此,需要为 Azure 用于农业的数据管理器启用日志记录。 然后,可以将日志信息保存在提供的目标位置,例如存储帐户、事件中心或 Log Analytics 工作区。
本文提供为 Azure 用于农业的数据管理器设置日志记录的步骤。
启用日志收集
创建用于农业的数据管理器服务资源后,导航到诊断设置,然后选择 add diagnostics settings
。 按照以下步骤开始收集和存储日志:
- 为该诊断设置提供一个名称。
- 选择你要开始收集其日志的类别。
- 从存储帐户、事件中心或 Log Analytics 工作区中选择收集目标。
现在可以导航到在诊断设置中指定的目标,以访问日志。 在执行用于农业的数据管理器操作后,最多经过 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 | 在 AgriFoodJobProcessesLogs 、AgriFoodSatelliteLogs 、AgriFoodWeatherLogs 和 AgriFoodModelInferenceLogs 中提供,指示作业的 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
选项卡中访问此查询列表。
后续步骤
了解如何设置专用链接。