스토리지 분석 로그 형식

스토리지 분석 로깅은 스토리지 계정에 대한 성공 및 실패 요청 모두에 대한 세부 정보를 기록합니다. 스토리지 분석 로그를 사용하면 Azure 테이블, 큐 및 Blob에 대한 읽기, 쓰기 및 삭제 작업의 세부 정보를 검토할 수 있습니다. 또한 시간 제한, 제한 및 권한 부여 오류와 같은 실패한 요청의 이유를 조사할 수 있습니다.

각 로그 항목은 사용 중인 스토리지 분석 로깅 버전에 의해 제어되는 표준 로그 형식을 준수합니다. 버전 1.0에는 로그 항목 형식 1.0에 설명된 모든 필드가 포함되어 있습니다. 버전 2.0은 요청에 대한 정보를 로깅하기 위한 필드를 OAuth 2.0 토큰으로 권한이 부여된 Blob 및 큐 서비스에 추가합니다. 이러한 추가 필드는 로그 항목 형식 2.0에 설명되어 있습니다.

로그 항목의 첫 번째 필드는 항상 버전 번호를 지정합니다. 사용자는 로깅 데이터에 대해 이 필드 및 로그 항목의 다음과 같은 특성을 참조할 수 있습니다.

  • 채워지거나 비어 있는 모든 필드는 세미콜론 ";"으로 구분됩니다.

  • 각 로그 항목은 줄 바꿈 문자 "\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> 문자열 항목을 기록하는 데 사용되는 스토리지 분석 로깅의 버전입니다. 1.0
<request-start-time> timestamp 저장소 분석에 요청이 수신된 UTC 시간입니다. 2011-08-09T21:44:36.2481552Z
<operation-type> 문자열 수행된 REST 작업의 유형입니다. 가능한 작업 목록은 스토리지 분석 기록된 작업 및 상태 메시지 항목을 참조하세요. GetBlob
<request-status> 문자열 요청된 작업의 상태입니다. 가능한 상태 메시지 목록은 스토리지 분석 기록된 작업 및 상태 메시지 항목을 참조하세요. 버전 2017-04-17 이상 ClientOtherError 에서는 이 사용되지 않습니다. 대신 이 필드에 는 오류 코드가 포함됩니다. Success
<http-status-code> 문자열 요청의 HTTP 상태 코드입니다. 요청이 중단되면 이 값은 Unknown으로 설정됩니다. 200
<end-to-end-latency-in-ms> duration 수신 요청을 읽어 요청자에게 응답을 보내기까지 요청된 작업을 수행하는 데 걸린 총 시간으로 밀리초 단위입니다. 39
<server-latency-in-ms> duration 요청된 작업을 수행하는 데 걸린 총 시간으로 밀리초 단위입니다. 이 값에 네트워크 대기 시간(수신 요청을 읽고 요청자에게 응답을 보내는 데 걸리는 시간)은 포함되지 않습니다. 22
<authentication-type> 문자열 요청이 승인되었는지, 익명인지 또는 SAS(공유 액세스 서명)를 사용했는지 여부를 나타냅니다. authenticated
<requester-account-name> string 요청이 승인된 경우 스토리지 계정 이름과 동일합니다. 익명 및 SAS 요청의 경우 이 필드는 비어 있습니다. myaccount
<owner-account-name> string 서비스 소유자의 계정 이름입니다. myaccount
<service-type> string 요청된 스토리지 서비스: Blob, 테이블 또는 큐. blob
<request-url> 문자열 따옴표로 묶은 요청의 전체 URL입니다. "https://myaccount.blob.core.windows.net/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034?timeout=30000"
<requested-object-key> 문자열 따옴표로 묶은 요청된 개체의 키입니다. 사용자 지정 도메인 이름이 구성된 경우에도 이 필드는 항상 계정 이름을 사용합니다. "/myaccount/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034"
<request-id-header> guid 저장소 서비스에 의해 할당된 요청 ID입니다. x-ms-request-id 헤더의 값과 같습니다. 668a4744-7eb3-4e8f-b8d3-fbfd3829715b
<operation-count> int 요청에 대해 로깅된 각 작업의 번호로 0부터 시작합니다. Copy Blob와 같이 둘 이상의 작업이 필요한 요청도 있지만 대부분은 하나의 작업만 수행합니다. 0
<requester-ip-address> 문자열 요청자의 IP 주소(포트 번호 포함)입니다. 192.100.0.102:4362
<request-version-header> 문자열 요청 시 지정된 저장소 서비스 버전입니다. 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> 문자열 요청의 Content-MD5 헤더 또는 x-ms-content-md5 헤더의 값으로 따옴표로 묶여 있습니다. 이 필드에 지정된 MD5 해시 값은 요청의 콘텐츠를 나타냅니다. 이 필드는 비어 있을 수 있습니다. "788815fd0198be0d275ad329cafd1830"
<server-md5> 문자열 저장소 서비스에 의해 계산된 MD5 해시 값으로, 따옴표로 묶여 있습니다. 이 필드는 비어 있을 수 있습니다. "3228b3cf1069a5489b298446321f8521"
<etag-identifier> 문자열 반환된 개체의 ETag 식별자로, 따옴표로 묶여 있습니다. "0x8D101F7E4B662C4"
<last-modified-time> Datetime 반환된 개체의 마지막 수정 시간(LMT)으로 따옴표로 묶여 있습니다. 여러 개체를 반환할 수 있는 작업의 경우 이 필드가 비어 있습니다. Tuesday, 09-Aug-11 21:13:26 GMT
<conditions-used> 문자열 따옴표 형식의 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> 문자열 따옴표로 묶여 있는 User-Agent 헤더 값입니다. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
<referrer-header> 문자열 따옴표로 묶여 있는 Referer 헤더 값입니다. "http://contoso.com/about.html"
<client-request-id> 문자열 요청에 포함된 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 복사 작업은 CopyBlob, CopyBlobSourceCopyBlobDestination의 3가지 작업을 기록합니다. 요청 ID 속성은 세 작업 모두 동일하지만, 작업 ID는 각 작업에 대해 하나씩 증가합니다.

서비스 버전 2012-02-12 이상

2012-02-12 버전 이상에서 <requested-object-key>는 URI이며, 2012-02-12 이전 버전에 사용된 /accountname/containername/blobname 형식을 대체합니다.

아래 각 로그 항목에서 요청 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은 Microsoft Entra ID 제공한 OAuth 2.0 토큰으로 승인된 요청에 대한 로깅 정보를 지원하는 필드를 추가합니다. 자세한 내용은 Microsoft Entra ID 인증을 참조하세요.

각 버전 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 문자열 인증에 사용되는 개체 ID입니다. 사용자, 관리 ID 또는 서비스 주체를 포함한 모든 보안 주체일 수 있습니다. 03124200-da00-4aa6-aa09-be77923d7870
TenantId 문자열 전달자 권한 부여에 사용되는 테넌트 ID입니다. 72f988bf-86f1-41af-91ab-2d7cd011db47
ApplicationId 문자열 전달자 권한 부여에 사용되는 애플리케이션 ID 2cd20493-fe97-42ef-9ace-ab95b63d82c4
리소스 ID 문자열 전달자 권한 부여에 사용되는 리소스 ID입니다. https://storage.azure.com

https://storagesamples.blob.core.windows.net
발급자 문자열 전달자 권한 부여에 사용되는 발급자입니다. https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/
UserPrincipalName 문자열 전달자 권한 부여에 사용되는 사용자 계정 이름입니다. testuser@azure.onmicrosoft.com
예약됨 string 다음에 사용하도록 예약됩니다. 값은 빈 문자열입니다. 해당 없음
AuthorizationDetail 문자열 요청에 권한을 부여하는 데 사용되는 자세한 정책 정보입니다. [{"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"}]"

추가 정보

스토리지 분석 로깅 정보
스토리지 분석에서 기록한 작업 및 상태 메시지