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

存储分析日志格式

存储分析记录存储帐户成功请求和失败请求的详细信息。 通过存储分析日志,可以查看针对 Azure 表、队列和 Blob 的读取、写入和删除操作的详细信息。 它们还使你能够调查失败请求的原因,例如超时、限制和授权错误。

每个日志条目都符合受所用存储分析日志记录版本控制的标准日志格式。 版本 1.0 包括 日志条目格式 1.0 中所述的所有字段。 版本 2.0 添加了字段,用于记录有关使用 OAuth 2.0 令牌授权的 Blob 和队列服务的请求的信息。 这些附加字段以 日志条目格式 2.0 进行描述。 Blob 和队列服务的 Azure AD 身份验证目前为预览版。

日志条目中的第一个字段始终指定版本号。 日志记录数据的使用者可依赖于此字段以及日志条目的以下几方面:

  • 所有字段(填充或为空)都将用分号“;”分隔

  • 每个日志条目都用换行符“\n”分隔

  • 条目中的最后一个字段不会以分号“;”结尾

在处理日志条目之前,应始终检查版本。

注意

任何可能包含引号 (“) 、分号 (;) ;或换行符 (\n) 为 HTML 编码和带引号的字段。

设置日志记录版本

若要设置日志记录版本,请调用服务的适当操作:

日志条目格式 1.0

每个 1.0 版日志条目都遵循以下格式:

<version-number>;<request-start-time>;<operation-type>;<request-status>;<http-status-code>;<end-to-end-latency-in-ms>;<server-latency-in-ms>;<authentication-type>;<requester-account-name>;<owner-account-name>;<service-type>;<request-url>;<requested-object-key>;<request-id-header>;<operation-count>;<requester-ip-address>;<request-version-header>;<request-header-size>;<request-packet-size>;<response-header-size>;<response-packet-size>;<request-content-length>;<request-md5>;<server-md5>;<etag-identifier>;<last-modified-time>;<conditions-used>;<user-agent-header>;<referrer-header>;<client-request-id>

版本 1.0 的日志条目字段

下表列出了并定义版本 1.0 日志条目中的字段。

字段名称 字段类型 定义 示例
<version-number> string 用于记录条目的存储分析日志记录版本。 1.0
<request-start-time> timestamp 存储分析接收请求的 UTC 时间。 2011-08-09T21:44:36.2481552Z
<operation-type> string 所执行的 REST 操作的类型。 有关可能的操作列表,请参阅存储分析记录的操作和状态消息主题。 GetBlob
<request-status> string 所请求的操作的状态。 有关可能的状态消息列表,请参阅存储分析记录的操作和状态消息主题。 在版本 2017-04-17 及更高版本中, ClientOtherError 不使用。 相反,此字段包含 错误代码 Success
<http-status-code> string 请求的 HTTP 状态代码。 擶夏请―详い断,昳麲摨设竚为 Unknown 200
<end-to-end-latency-in-ms> duration 执行所请求操作的总时间(毫秒),包括读取传入请求和向请求者发送响应的时间。 39
<server-latency-in-ms> duration 执行所请求操作的总时间(毫秒)。 此值不包括网络滞后时间(读取传入请求和向请求者发送响应的时间)。 22
<authentication-type> string 指示请求是授权、匿名还是使用共享访问签名 (SAS) 。 authenticated
<requester-account-name> string 与存储帐户名称相同,如果请求已获授权。 对于匿名和 SAS 请求,此字段将为空。 myaccount
<owner-account-name> string 服务所有者的帐户名称。 myaccount
<service-type> string 所请求的存储服务:BLOB、表或队列。 blob
<request-url> string 请求的完整 URL(用引号引起)。 "https://myaccount.blob.core.windows.net/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034?timeout=30000"
<requested-object-key> string 所请求对象的键(用引号引起)。 此字段将始终使用帐户名称,即使已配置自定义域名也是如此。 "/myaccount/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034"
<request-id-header> guid 由存储服务分配的请求 ID。 它等效于 x-ms-request-id 标头的值。 668a4744-7eb3-4e8f-b8d3-fbfd3829715b
<operation-count> int 请求的每个记录操作数(使用零索引)。 有些请求需要多个操作(如 Copy Blob),但多数请求仅需要一个操作。 0
<requester-ip-address> string 请求者的 IP 地址,包括端口号。 192.100.0.102:4362
<request-version-header> string 发出请求时指定的存储服务版本。 它等效于 x-ms-version 标头的值。 2009-09-19
<request-header-size> long 请求标头的大小(字节)。 如果请求失败,此值可能为空。 280
<request-packet-size> long 由存储服务读取的请求数据包的大小(字节)。 如果请求失败,此值可能为空。 0
<response-header-size> long 响应标头的大小(字节)。 如果请求失败,此值可能为空。 216
<response-packet-size> long 存储服务写入的响应数据包的大小(以字节为单位)。 如果请求失败,此值可能为空。 0
<request-content-length> long 发送到存储服务的请求的 Content-Length 标头的值。 如果请求成功,则此值等于 <request-packet-size>。 如果请求失败,则此值可能不等于 <request-packet-size>,也可能为空。 0
<request-md5> string 请求中的 Content-MD5 标头或 x-ms-content-md5 标头的值(用引号引起)。 此字段中指定的 MD5 哈希值表示请求中的内容。 此字段可以为空。 "788815fd0198be0d275ad329cafd1830"
<server-md5> string 由存储服务计算的 MD5 哈希值(用引号引起)。 此字段可以为空。 "3228b3cf1069a5489b298446321f8521"
<etag-identifier> string 返回的对象的 ETag 标识符,带引号。 "0x8D101F7E4B662C4"
<last-modified-time> datetime 所返回对象的上次修改时间 (LMT)(用引号引起)。 对于可以返回多个对象的操作,此字段为空。 Tuesday, 09-Aug-11 21:13:26 GMT
<conditions-used> string 以引号形式 ConditionName=value分隔的分号分隔列表。 ConditionName 可以是以下条件之一:

- If-Modified-Since
- If-Unmodified-Since
- If-Match
- If-None-Match
"If-Modified-Since=Friday, 05-Aug-11 19:11:54 GMT"
<user-agent-header> string User-Agent 标头麲(ノま号ま舿)愢 "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
<referrer-header> string Referer 标头麲(ノま号ま舿)愢 "http://contoso.com/about.html"
<client-request-id> string 请―い摚斴鶼 x-ms-client-request-id 标头麲(ノま号ま舿)愢 "8/9/2011 9:44:36 PM 45ef1c0f-8c71-4153-bc88-38589f63fbfc"

版本 1.0 的示例日志条目

获取 Blob

以下示例日志条目适用于匿名 GetBlob 请求:

1.0;2014-06-19T22:59:23.1967767Z;GetBlob;AnonymousSuccess;200;17;16;anonymous;;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container1/00001.txt";"/storagesample/sample-container1/00001.txt";61d2e3f6-bcb7-4cd1-a81e-4f8f497f0da2;0;192.100.0.102:4362;2014-02-14;283;0;354;23;0;;;""0x8D15A2913C934DE"";Thursday, 19-Jun-14 22:58:10 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"44dfd78e-7288-4898-8f70-c3478983d3b6"

放置 Blob

以下示例日志条目适用于授权 的 PutBlob 请求:

1.0;2014-06-19T01:33:54.0926521Z;PutBlob;Success;201;197;54;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container1/00001.txt";"/storagesample/sample-container1/00001.txt";a200be85-1c98-4dd9-918e-f13d8c0538e0;0;192.100.0.102:4362;2014-02-14;460;23;225;0;23;"DrPO6z1f00SCsomhaf+J/A==";"DrPO6z1f00SCsomhaf+J/A==";""0x8D15975AA456EA4"";Thursday, 19-Jun-14 01:33:53 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"1fe6814a-e4cb-4195-a3cf-837dc7120f68"

复制 Blob

以下示例日志条目适用于授权 的 CopyBlob 请求。 复制 Blob 操作将记录 3 个操作:CopyBlobCopyBlobSource 和 CopyBlobDestination 请注意,所有三个操作的请求 ID 属性均相同,但每个操作的操作 ID 都是递增的。

服务版本 2012-02-12 及更新版本

在版本 2012-02-12 及更新版本中, <requested-object-key> 它是一个 URL,用于替换 /accountname/containername/blobname 版本 2012-02-12 之前使用的格式。

以下每个日志条目的请求 ID 和操作 ID 均采用加粗形式:

1.0;2014-06-19T23:31:36.5780954Z;CopyBlob;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"/storagesample/sample-container/Copy-sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;0;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;""0x8D15A2DBF11553E"";Thursday, 19-Jun-14 23:31:36 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

1.0;2014-06-19T23:31:36.5780954Z;CopyBlobSource;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"https://storagesample.blob.core.windows.net/sample-container/sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;1;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;;;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

1.0;2014-06-19T23:31:36.5780954Z;CopyBlobDestination;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"/storagesample/sample-container/Copy-sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;2;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;;;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

2012-02-12 之前的服务版本

以下每个日志条目的请求 ID 和操作 ID 均采用加粗形式:

1.0;2011-08-09T18:02:40.6526789Z;CopyBlob;Success;201;28;28;authenticated;account8ce1b67a9e80b35;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;0;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;"0x8CE1B67AD473BC5";Friday, 09-Aug-11 18:02:40 GMT;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

1.0;2011-08-09T18:02:40.6526789Z;CopyBlobSource;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lake.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;1;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

1.0;2011-08-09T18:02:40.6526789Z;CopyBlobDestination;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;2;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

日志条目格式 2.0

存储分析日志格式版本 2.0 添加了字段,以支持有关通过 Azure Active Directory (Azure AD) 提供的 OAuth 2.0 令牌授权的请求的日志记录信息。 Azure AD 对 Blob 和队列服务的身份验证和授权目前为预览版。 有关详细信息,请参阅通过 Azure Active Directory 进行身份验证

每个版本 2.0 日志条目都遵循以下格式:

<version-number>;<request-start-time>;<operation-type>;<request-status>;<http-status-code>;<end-to-end-latency-in-ms>;<server-latency-in-ms>;<authentication-type>;<requester-account-name>;<owner-account-name>;<service-type>;<request-url>;<requested-object-key>;<request-id-header>;<operation-count>;<requester-ip-address>;<request-version-header>;<request-header-size>;<request-packet-size>;<response-header-size>;<response-packet-size>;<request-content-length>;<request-md5>;<server-md5>;<etag-identifier>;<last-modified-time>;<conditions-used>;<user-agent-header>;<referrer-header>;<client-request-id>;<user-object-id>;<tenant-id>;<application-id>;<audience>;<issuer>;<user-principal-name>;<reserved-field>;<authorization-detail>

版本 2.0 的日志条目字段

下表列出了并定义写入版本 2.0 日志条目的其他字段。 所有版本 1.0 字段都包含在版本 2.0 日志条目中。

字段名称 字段类型 定义 示例
UserObjectId string 用于身份验证的对象 ID。 可以是任何安全主体,包括用户、托管标识或服务主体。 03124200-da00-4aa6-aa09-be77923d7870
TenantId 字符串 持有者授权中使用的租户 ID。 72f988bf-86f1-41af-91ab-2d7cd011db47
ApplicationId string 持有者授权中使用的应用程序 ID。 2cd20493-fe97-42ef-9ace-ab95b63d82c4
资源 ID string 持有者授权中使用的资源 ID。 https://storage.azure.com

https://storagesamples.blob.core.windows.net
颁发者 string 持有者授权中使用的颁发者。 https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/
UserPrincipalName string 持有者授权中使用的用户主体名称。 testuser@azure.onmicrosoft.com
保留 string 保留供将来使用。 值为空字符串。 不适用
AuthorizationDetail string 用于授权请求的详细策略信息。 [{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/read", "roleAssignmentId":"/subscriptions/5451a164-d870-4626-a64c-c38d62da20da/providers/Microsoft.Authorization/roleAssignments/6632a082-9b6a-486c-b296-f9d785d32800", "roleDefinitionId":"/subscriptions/5451a164-d870-4626-a64c-c38d62da20da/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"03124200-da00-4aa6-aa09-be77923d7870", "principalType":"ServicePrincipal"}]

版本 2.0 的示例日志条目

列出 Blob

2.0;2019-02-25T20:06:55.9794046Z;ListBlobs;OAuthSuccess;200;250;46;bearer;storagesamples;storagesamples;blob;"https://storagesamples.blob.core.windows.net/sample-container?restype=container&amp;comp=list&amp;prefix=&amp;delimiter=/&amp;marker=&amp;maxresults=30&amp;include=metadata&amp;_=1551125215793";"/storagesamples/sample-container";470b9e55-201e-0137-5c45-cdd293000000;0;200.59.21.176:52659;2018-03-28;2682;0;295;5184;0;;;;;;"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763";"blob:https://ms.portal.azure.com/cf576432-66ab-4ae6-9cb3-4852b1137a21";;"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7";"72f988bf-86f1-41af-91ab-2d7cd011db47";"691458b9-1327-4635-9f55-ed83a7f1b41c";"https://storage.azure.com/";"https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/";;;"[{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read", "roleAssignmentId":"ca8af92a-6708-4cdf-a678-bb55d0ff7b80", "roleDefinitionId":"ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7", "principalType":"User"}]"

放置块

2.0;2019-02-25T20:06:55.9089848Z;PutBlock;OAuthSuccess;201;95;95;bearer;storagesamples;storagesamples;blob;"https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?comp=block&amp;blockid=YmxvY2stMDAwMDAwMDA=";"/storagesamples/sample-container/blob1.txt";5569fa10-e01e-00c0-2745-cdb22d000000;0;200.59.21.176:52665;2017-11-09;2581;9;365;0;9;;"tdzGO9AaJte/e2HJZLtXig==";;;;"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763";"https://ms.portal.azure.com/";"c808142e-0393-4942-9001-af4833061026";"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7";"72f988bf-86f1-41af-91ab-2d7cd011db47";"691458b9-1327-4635-9f55-ed83a7f1b41c";"https://storage.azure.com/";"https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/";;;"[{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write", "roleAssignmentId":"ca8af92a-6708-4cdf-a678-bb55d0ff7b80", "roleDefinitionId":"ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7", "principalType":"User"}]"

请参阅

关于存储分析日志记录
存储分析记录的操作和状态消息