您能否帮助我了解在哪里可以找到使用主密钥访问 CosmosDB/DocumentDB azure 的所有活动的日志。
背景:我在日志中只能找到访问 azure 上的文档数据库的用户 ID。我们还在 python 中使用 Pydocumentdb 编写了一个脚本,该脚本使用 masterkey 从 Azure Cosmos DB 访问数据。但是在日志中都看不到。
谢谢
您能否帮助我了解在哪里可以找到使用主密钥访问 CosmosDB/DocumentDB azure 的所有活动的日志。
背景:我在日志中只能找到访问 azure 上的文档数据库的用户 ID。我们还在 python 中使用 Pydocumentdb 编写了一个脚本,该脚本使用 masterkey 从 Azure Cosmos DB 访问数据。但是在日志中都看不到。
谢谢
Diagnostic logging
在 Azure Cosmos DB 中,您可以执行此监视访问数据库的方式和时间。
请单击Diagnostic logs
左侧导航,然后单击Turn on diagnostics
您的 azure cosmos db。
您可以将日志文件存储在azure account
、流式传输到eventhub
或发送到azure analytics
two hours
从执行 Azure Cosmos DB 操作开始,您的帐户中就可以使用日志。您可以自行管理存储帐户中的日志。
单个 blob 存储为文本,格式化为JSON
blob。
{
"records":
[
{
"time": "Fri, 23 Jun 2017 19:29:50.266 GMT",
"resourceId": "contosocosmosdb",
"category": "DataPlaneRequests",
"operationName": "Query",
"resourceType": "Database",
"properties": {"activityId": "05fcf607-6f64-48fe-81a5-f13ac13dd1eb",`
"userAgent": "documentdb-dotnet-sdk/1.12.0 Host/64-bit MicrosoftWindowsNT/6.2.9200.0 AzureSearchIndexer/1.0.0",`
"resourceType": "Database","statusCode": "200","documentResourceId": "",`
"clientIpAddress": "13.92.241.0","requestCharge": "2.260","collectionRid": "",`
"duration": "9250","requestLength": "72","responseLength": "209", "resourceTokenUserRid": ""}
}
]
}
请参阅此处的更多详细信息。
更新答案:
Master key
根据我的观察,Azure Cosmos DB 中的日志不使用or来区分请求Resource Token
。
但是,我想为您提供一种解决方法。
你知道,Python Document DB SDK
实际上是REST API。
因此,您可以通过Nginxreverse proxy
等将您的 HTTP 请求发送到 azure 服务器。
您可以通过请求URL的格式来判断是哪种访问方式,并将其记录在reverse proxy
层中。
希望它可以帮助你。