스토리지 리소스 로그 문제 해결
Azure Storage 리소스 로그는 스토리지 계정에서 수행되는 각 작업과 이러한 작업의 결과를 캡처합니다. 이러한 로그는 메트릭이 표시하는 작업의 분별 요약을 제공하는 대신 수행된 각 요청에 대한 세부 정보를 제공합니다. 로깅 정보를 사용하여 스토리지 계정에 대한 요청의 특성을 검사하고 이러한 요청이 성공했는지 여부를 확인할 수 있습니다.
이 단원에서는 Azure Monitor의 Azure Storage 리소스 로그에 대해 알아봅니다. 로그에 캡처된 다양한 유형의 정보를 확인하고 이 정보를 사용하여 애플리케이션에서 Azure Storage를 사용할 때 발생할 수 있는 문제를 검색하는 방법을 알아봅니다.
Azure Monitor의 리소스 로그
경우에 따라 성능 관련 메트릭보다 스토리지 트랜잭션에 대한 자세한 정보를 확인하려고 합니다. 메트릭은 성능 또는 수요의 전반적인 추세를 추적하는 데 유용하지만 트랜잭션 메트릭을 모니터링해도 요청된 URL을 표시할 수 없습니다. 또한 사용 가능한 스토리지 메트릭 중 어느 것도 특정 요청과 관련된 오류 메시지를 보고할 수 없습니다.
Azure Monitor의 리소스 로그는 이러한 종류의 자세한 정보를 캡처하며 특정 요청 뒤에 있는 세부 정보를 검사하는 데 유용합니다. 예를 들어 특정 리소스에 대한 요청이 인증되거나 익명이거나 성공하거나 실패한 요청 수를 알고 싶다면 이러한 로그를 사용할 수 있습니다.
리소스 로그를 수집하려면 진단 설정을 만들어야 합니다. 리소스 로그는 스토리지 계정에 대한 성공 및 실패한 요청을 나열합니다. 요청은 특정 스토리지 서비스(Azure Blob Storage, Table Storage 또는 Queue Storage)에 대한 읽기, 쓰기 또는 삭제 작업으로 기록됩니다. 진단 설정을 사용하여 로그를 Log Analytics, 스토리지 계정으로 라우팅하거나 이벤트 허브 또는 파트너 솔루션으로 스트리밍할 수 있습니다.
리소스 로그를 사용하여 요청의 다양한 유형과 빈도를 검토하거나 실패한 요청 문제를 해결할 수 있습니다. 로그는 트랜잭션이 발생할 때만 생성되며 특정 서비스 엔드포인트에 대해서만 생성됩니다. 따라서 Blob Storage 및 Queue Storage 엔드포인트에서 스토리지를 사용하지만 Blob Storage 엔드포인트에만 요청 또는 트랜잭션이 있는 경우 시스템은 Blob Storage에 대한 로그만 만듭니다.
로깅을 사용하도록 설정하면 다음과 같은 유형의 요청이 기록됩니다.
- 인증된 요청입니다.
- 익명 요청.
- 성공한 요청
- 실패한 요청입니다. 시간 제한, 속도 제한, 네트워크 오류 및 인증 오류와 같은
- 서버 오류입니다.
- 공유 액세스 서명을 사용하는 요청이 실패하고 성공했습니다.
- 클라이언트 및 서버의 시간 제한 오류
- 분석 데이터에 대한 요청
- 오류 코드 304("수정되지 않음")가 있는 GET 요청이 실패했습니다.
Azure Monitor의 리소스 로그 스토리지
리소스 로그는 스토리지 계정에 대해 자동으로 생성되지만 대상에 보내지 않는 한 해당 로그를 볼 수 없습니다. 진단 설정을 사용하여 보낼 위치를 지정할 수 있습니다.
진단 설정을 만들 때 라우팅 로그에 관심이 있는 스토리지 유형을 선택합니다. 예를 들어 Blob Storage 또는 파일 스토리지입니다. 그런 다음 로그에 표시할 작업 유형을 선택합니다. 예를 들어 읽기, 쓰기 또는 삭제 작업입니다. 마지막으로 로그를 보낼 위치를 선택합니다. 다음 위치에 로그를 보낼 수 있습니다.
- 로그 분석
- 스토리지 계정
- 이벤트 허브
- 파트너 솔루션
Azure Monitor 로그 쿼리를 사용하여 Log Analytics 작업 영역으로 전송된 로그에 액세스할 수 있습니다.
스토리지 계정으로 로그를 라우팅하는 경우 해당 로그는 컨테이너에 저장된 Blob으로 표시됩니다. 데이터는 단일 Blob 내에 줄로 구분된 JSON 페이로드로 수집되고 저장됩니다. Blob의 이름은 다음 명명 규칙을 따릅니다.
https://<destination-storage-account>.blob.core.windows.net/insights-logs-<storage-operation>/resourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<source-storage-account>/blobServices/default/y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/PT1H.json
이벤트 허브로 전송된 로그는 파일로 저장되지 않지만 이벤트 허브가 로그 정보를 받았는지 확인할 수 있습니다. Azure Portal에서 이벤트 허브를 열고 들어오는 메시지 수를 검사하기만 하면 됩니다.
특정 Azure Monitor 파트너에게 플랫폼 메트릭 및 로그를 보낼 수도 있습니다. 먼저 구독에 파트너 통합을 설치해야 합니다. 구성 옵션은 파트너에 따라 다릅니다.
로그 데이터에 대한 보존 정책을 설정할 수 없습니다. Log Analytics에 로그를 보내는 경우 작업 영역 수준에서 데이터 보존 기간을 관리하거나 데이터 형식별로 다른 보존 설정을 지정할 수도 있습니다. 스토리지 계정에 로그를 보관하는 경우 수명 주기 관리 정책을 정의하여 로그 컨테이너의 보존 정책을 관리할 수 있습니다.