다음을 통해 공유


Azure Data Lake Storage Gen1에 대한 진단 로그 액세스

Azure Data Lake Storage Gen1 계정에 진단 로깅을 사용하도록 설정하고 계정에 대해 수집된 로그를 보는 방법을 알아봅니다.

조직은 Azure Data Lake Storage Gen1 계정에 대한 진단 로깅을 사용하도록 설정하여 데이터에 액세스하는 사용자 목록, 데이터에 액세스하는 빈도, 계정에 저장된 데이터 양 등과 같은 정보를 제공하는 데이터 액세스 감사 내역을 수집할 수 있습니다. 사용하도록 설정하면 진단 및/또는 요청이 최상의 노력으로 기록됩니다. 요청 및 진단 로그 항목은 서비스 엔드포인트에 대한 요청이 있는 경우에만 생성됩니다.

필수 조건

Data Lake Storage Gen1 계정에 대한 진단 로깅 사용

  1. 새로운 Azure 포털에 로그인하세요.

  2. Data Lake Storage Gen1 계정을 열고 Data Lake Storage Gen1 계정 블레이드에서 진단 설정클릭합니다.

  3. 진단 설정 블레이드에서 진단 켜기를 클릭합니다.

    진단 설정 옵션과 진단 켜기 옵션이 표시된 Data Lake Storage Gen 1 계정의 스크린샷

  4. 진단 설정 블레이드에서 다음을 변경하여 진단 로깅을 구성합니다.

    이름 텍스트 상자와 저장 옵션이 표시된 진단 설정 섹션의 스크린샷

    • 이름진단 로그 구성에 대한 값을 입력합니다.

    • 다양한 방법으로 데이터를 저장/처리하도록 선택할 수 있습니다.

      • Azure Storage 계정에 로그를 저장하기 위해 스토리지 계정에 보관 옵션을 선택합니다. 나중에 일괄 처리될 데이터를 보관하려는 경우 이 옵션을 사용합니다. 이 옵션을 선택하는 경우 로그를 저장할 Azure Storage 계정을 제공해야 합니다.

      • Azure Event Hub에 로그 데이터를 스트리밍하려면, 이벤트 허브로 스트림 옵션을 선택합니다. 들어오는 로그를 실시간으로 분석하는 다운스트림 처리 파이프라인이 있는 경우 이 옵션을 사용할 가능성이 높습니다. 이 옵션을 선택하는 경우 사용하려는 Azure Event Hub에 대한 세부 정보를 제공해야 합니다.

      • Log Analytics로 보내기를 선택하여 생성된 로그 데이터를 분석하려면 Azure Monitor 서비스를 사용합니다. 이 옵션을 선택하는 경우 로그 분석 수행을 사용할 Log Analytics 작업 영역에 대한 세부 정보를 제공해야 합니다. Azure Monitor 로그 검색을 통해 수집된 데이터를 보는 방법이나 분석하는 방법에 대한 자세한 내용은 을 참조하여 Azure Monitor 로그 사용을 확인하세요.

    • 감사 로그 또는 요청 로그를 가져올지 또는 둘 다를 가져올지 지정합니다.

    • 데이터를 보존해야 하는 일 수를 지정합니다. 보존은 Azure Storage 계정을 사용하여 로그 데이터를 보관하는 경우에만 적용됩니다.

    • 저장을 클릭합니다.

진단 설정을 사용하도록 설정하면 진단 로그 탭에서 로그를 볼 수 있습니다.

Data Lake Storage Gen1 계정에 대한 진단 로그 보기

Data Lake Storage Gen1 계정에 대한 로그 데이터를 보는 방법에는 두 가지가 있습니다.

  • Data Lake Storage Gen1 계정 설정 보기에서
  • 데이터가 저장된 Azure Storage 계정에서

Data Lake Storage Gen1 설정 보기 사용

  1. Data Lake Storage Gen1 계정 설정 블레이드에서 진단 로그을 클릭합니다.

    진단 로그 보기

  2. 진단 로그 블레이드에서는 로그가 감사 로그요청 로그로 분류되어 표시됩니다.

    • 요청 로그는 Data Lake Storage Gen1 계정에서 수행한 모든 API 요청을 캡처합니다.
    • 감사 로그는 요청 로그와 유사하지만 Data Lake Storage Gen1 계정에서 수행되는 작업에 대한 훨씬 더 자세한 분석을 제공합니다. 예를 들어 요청 로그의 단일 업로드 API 호출로 인해 감사 로그에서 여러 "추가" 작업이 발생할 수 있습니다.
  3. 로그를 다운로드하려면 각 로그 항목에 대해 다운로드 링크를 클릭합니다.

로그 데이터가 포함된 Azure Storage 계정에서

  1. 로깅을 위해 Data Lake Storage Gen1과 연결된 Azure Storage 계정 블레이드를 열고 Blob을 클릭합니다. Blob 서비스 블레이드에는 두 개의 컨테이너가 나열됩니다.

    Data Lake Storage Gen 1 블레이드에서 Blob 옵션이 선택되고 두 Blob 서비스의 이름이 표시된 Blob 서비스 블레이드의 스크린샷

    • insights-logs-audit 컨테이너에는 감사 로그가 포함됩니다.
    • 컨테이너 insights-logs-requests 요청 로그를 포함합니다.
  2. 이러한 컨테이너 내에서 로그는 다음 구조 아래에 저장됩니다.

    컨테이너에 저장된 로그 구조의 스크린샷 보기

    예를 들어 감사 로그의 전체 경로는 https://adllogs.blob.core.windows.net/insights-logs-audit/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=04/m=00/PT1H.json 수 있습니다.

    마찬가지로 요청 로그의 전체 경로는 https://adllogs.blob.core.windows.net/insights-logs-requests/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=14/m=00/PT1H.json 수 있습니다.

로그 데이터의 구조 이해

감사 및 요청 로그는 JSON 형식입니다. 이 섹션에서는 요청 및 감사 로그에 대한 JSON의 구조를 살펴봅니다.

요청 로그

다음은 JSON 형식 요청 로그의 샘플 항목입니다. 각 Blob에는 로그 개체 배열을 포함하는 레코드 하나의 루트 개체가 있습니다.

{
"records": 
  [        
    . . . .
    ,
    {
        "time": "2016-07-07T21:02:53.456Z",
        "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
        "category": "Requests",
        "operationName": "GETCustomerIngressEgress",
        "resultType": "200",
        "callerIpAddress": "::ffff:1.1.1.1",
        "correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
        "identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
        "properties": {"HttpMethod":"GET","Path":"/webhdfs/v1/Samples/Outputs/Drivers.csv","RequestContentLength":0,"StoreIngressSize":0 ,"StoreEgressSize":4096,"ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8","StartTime":"2016-07-07T21:02:52.472Z","EndTime":"2016-07-07T21:02:53.456Z","QueryParameters":"api-version=<version>&op=<operationName>"}
    }
    ,
    . . . .
  ]
}

요청 로그 스키마

이름 유형 설명
시간 문자열 로그의 타임스탬프(UTC)입니다.
리소스 ID 문자열 작업이 수행된 리소스의 ID입니다.
카테고리 문자열 로그 범주. 예: Requests
작업이름 문자열 기록된 작업의 이름 예를 들어 getfilestatus입니다.
결과 유형 문자열 작업의 상태(예: 200)입니다.
호출자 IP 주소 문자열 요청을 만드는 클라이언트의 IP 주소
correlationId 문자열 관련된 로그 항목 집합을 그룹화하는 데 사용할 수 있는 로그의 ID입니다.
신원 객체 로그를 생성한 ID
속성 JSON (자바스크립트 객체 표기법) 자세한 내용은 아래를 참조하세요.

요청 로그 속성 스키마

이름 유형 설명
HttpMethod 문자열 작업에 사용되는 HTTP 메서드입니다. 예를 들어 GET입니다.
경로 문자열 작업이 수행된 경로
요청 콘텐츠 길이 정수 (int) HTTP 요청의 콘텐츠 길이
ClientRequestId 문자열 이 요청을 고유하게 식별하는 ID
시작 시간 문자열 서버가 요청을 받은 시간입니다.
종료 시간 문자열 서버가 응답을 보낸 시간
저장유입크기 길다 Data Lake Store에 수신된 바이트 크기
저장출구크기 길다 Data Lake Store에서 송신된 바이트 크기
쿼리 매개변수 문자열 설명: http 쿼리 매개 변수입니다. 예제 1: api-version=2014-01-01&op=getfilestatus 예제 2: op=APPEND&append=true&syncFlag=DATA&filesessionid=bee3355a-4925-4435-bb4d-ceea52811aeb&leaseid=bee3355a-4925-4435-bb4d-ceea52811aeb&offset=28313319&api-version=2017-08-01

감사 로그

다음은 JSON 형식 감사 로그의 샘플 항목입니다. 각 Blob에는 로그 개체 배열을 포함하는 레코드 하나의 루트 개체가 있습니다.

{
"records": 
  [        
    . . . .
    ,
    {
        "time": "2016-07-08T19:08:59.359Z",
        "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
        "category": "Audit",
        "operationName": "SeOpenStream",
        "resultType": "0",
        "resultSignature": "0",
        "correlationId": "381110fc03534e1cb99ec52376ceebdf;Append_BrEKAmg;25.66.9.145",
        "identity": "A9DAFFAF-FFEE-4BB5-A4A0-1B6CBBF24355",
        "properties": {"StreamName":"adl://<data_lake_storage_gen1_account_name>.azuredatalakestore.net/logs.csv"}
    }
    ,
    . . . .
  ]
}

감사 로그 스키마

이름 유형 설명
시간 문자열 로그의 타임스탬프(UTC)입니다.
리소스 ID 문자열 작업이 수행된 리소스의 ID입니다.
카테고리 문자열 로그 범주입니다. 예를 들어 감사.
작업이름 문자열 기록된 작업의 이름 예를 들어 getfilestatus입니다.
결과 유형 문자열 작업의 상태(예: 200)입니다.
결과 서명 문자열 작업에 대한 추가 세부 정보입니다.
correlationId 문자열 관련된 로그 항목 집합을 그룹화하는 데 사용할 수 있는 로그의 ID입니다.
신원 객체 로그를 생성한 ID
속성 JSON (자바스크립트 객체 표기법) 자세한 내용은 아래를 참조하세요.

감사 로그 속성 스키마

이름 유형 설명
StreamName 문자열 작업이 수행된 경로

로그 데이터를 처리하는 샘플

Azure Data Lake Storage Gen1에서 Azure Monitor 로그로 로그를 보낼 때(Azure Monitor 로그를 사용하여 수집된 데이터 보기 또는 분석 참조) Azure Monitor 로그 사용에 대한 자세한 내용은 검색합니다. 다음 쿼리는 사용자 표시 이름 목록, 이벤트 시간 및 이벤트 시간 및 이벤트 수가 포함된 테이블을 시각적 차트와 함께 반환합니다. 사용자 GUID 또는 기타 특성을 표시하도록 쉽게 수정할 수 있습니다.

search *
| where ( Type == "AzureDiagnostics" )
| summarize count(TimeGenerated) by identity_s, TimeGenerated

Azure Data Lake Storage Gen1은 로그 데이터를 처리하고 분석하는 방법에 대한 샘플을 제공합니다. https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample샘플을 찾을 수 있습니다.

참고하십시오