在哪里可以找到 Azure Cosmos DB 中 masterkey 访问的访问日志

Where to find Access log for mastekey access in Azure Cosmos DB

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

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

谢谢

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

请点击左侧导航中的Diagnostic logs,然后在您的azure cosmos db中点击Turn on diagnostics

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

从进行 Azure Cosmos DB 操作时起,您的帐户 two hours 中的日志可用。您可以在存储帐户中管​​理日志。

单个 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": ""}
        }
    ]
}

更多详情请参考here

更新答案:

根据我的观察,Azure Cosmos DB 中的日志不会使用 Master keyResource Token 来区分请求。

不过,我想为您提供一个解决方法。

你知道,Python Document DB SDK实际上是REST API

因此,您可以通过 reverse proxy 将 HTTP 请求发送到 Azure 服务器,例如 Nginx

可以通过请求URL的格式来判断是哪种访问方式,并记录在reverse proxy

希望对您有所帮助。