1

您能否帮助我了解在哪里可以找到使用主密钥访问 CosmosDB/DocumentDB azure 的所有活动的日志。

背景:我在日志中只能找到访问 azure 上的文档数据库的用户 ID。我们还在 python 中使用 Pydocumentdb 编写了一个脚本,该脚本使用 masterkey 从 Azure Cosmos DB 访问数据。但是在日志中都看不到。

谢谢

4

1 回答 1

1

Diagnostic logging在 Azure Cosmos DB 中,您可以执行此监视访问数据库的方式和时间。

请单击Diagnostic logs左侧导航,然后单击Turn on diagnostics您的 azure cosmos db。

在此处输入图像描述

您可以将日志文件存储在azure account、流式传输到eventhub或发送到azure analytics

在此处输入图像描述

two hours从执行 Azure Cosmos DB 操作开始,您的帐户中就可以使用日志。您可以自行管理存储帐户中的日志。

单个 blob 存储为文本,格式化为JSONblob。

{
    "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层中。

希望它可以帮助你。

于 2017-10-09T08:54:04.520 回答