스토리지 분석 로그 형식
스토리지 분석 로깅은 스토리지 계정에 대한 성공 및 실패 요청 모두에 대한 세부 정보를 기록합니다. 스토리지 분석 로그를 사용하면 Azure 테이블, 큐 및 Blob에 대한 읽기, 쓰기 및 삭제 작업의 세부 정보를 검토할 수 있습니다. 또한 시간 제한, 제한 및 권한 부여 오류와 같은 실패한 요청의 이유를 조사할 수 있습니다.
각 로그 항목은 사용 중인 스토리지 분석 로깅 버전에 의해 제어되는 표준 로그 형식을 준수합니다. 버전 1.0에는 로그 항목 형식 1.0에 설명된 모든 필드가 포함되어 있습니다. 버전 2.0은 요청에 대한 정보를 로깅하기 위한 필드를 OAuth 2.0 토큰으로 권한이 부여된 Blob 및 큐 서비스에 추가합니다. 이러한 추가 필드는 로그 항목 형식 2.0에 설명되어 있습니다.
로그 항목의 첫 번째 필드는 항상 버전 번호를 지정합니다. 사용자는 로깅 데이터에 대해 이 필드 및 로그 항목의 다음과 같은 특성을 참조할 수 있습니다.
채워지거나 비어 있는 모든 필드는 세미콜론 ";"으로 구분됩니다.
각 로그 항목은 줄 바꿈 문자 "\n"로 구분됩니다.
항목의 마지막 필드는 세미콜론 ";"으로 끝나지 않습니다.
로그 항목을 처리하기 전에 항상 버전을 확인합니다.
참고
따옴표("), 세미콜론(;) 또는 줄 바꿈(\n)을 포함할 수 있는 모든 필드는 HTML로 인코딩되고 따옴표로 묶입니다.
로깅 버전 설정
로깅 버전을 설정하려면 서비스에 대한 적절한 작업을 호출합니다.
- Blob service:BlobService 속성 설정(버전 1.0 및 2.0 모두 지원)
- 큐 서비스:큐 서비스 속성 설정 (버전 1.0 및 2.0 모두 지원)
- Table service:Table Service 속성 설정 (버전 1.0만 지원)
로그 항목 형식 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, CopyBlobSource 및 CopyBlobDestination의 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&comp=list&prefix=&delimiter=/&marker=&maxresults=30&include=metadata&_=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&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"}]"