내보내기(0) 인쇄
모두 확장

Azure 진단 구성

업데이트 날짜: 2014년 8월

클라우드 서비스의 문제를 해결할 때 Visual Studio를 사용하여 Azure 진단을 보다 쉽게 구성할 수 있습니다. Azure 진단은 클라우드 서비스를 실행하는 가상 컴퓨터 인스턴스에서 시스템 데이터 및 로깅 데이터를 캡처하여 저장소 계정에 전달합니다. 프로그래밍 방식으로 또는 구성 파일을 직접 편집하여 Azure 진단에 액세스할 수도 있습니다. 자세한 내용은 Azure 진단을 사용하여 로깅 데이터 수집을 참조하십시오.

다음과 같은 방법으로 Azure 진단을 구성할 수 있습니다.

  • 코드 또는 역할에서 프로그래밍 방식으로, 또는 별도의 구성 응용 프로그램에서 실행되는 코드에서 구성합니다.

  • Visual Studio의 역할 디자이너에서 구성하거나 구성 파일을 직접 수정합니다. 구성 파일 diagnostics.wadcfg는 프로젝트에 추가됩니다.

    이 방법 중 하나를 사용할 경우 변경 내용은 다음에 Azure에 클라우드 서비스를 배포하거나 에뮬레이터에서 서비스를 실행할 때 적용됩니다.

  • 서버 탐색기를 사용하여 실행 중인 클라우드 서비스에 대한 진단 설정을 변경합니다.

Visual Studio를 사용하여 Azure에서 실행되는 역할에 대해 수집할 진단 데이터를 사용자 지정할 수 있습니다. Visual Studio에서 진단 설정을 변경할 경우 다음에 클라우드 서비스를 배포할 때 새 설정이 반영되도록 구성 파일(diagnostics.wadcfg)을 변경해야 합니다.

  1. 원하는 역할에 대한 바로 가기 메뉴에서 속성을 선택하고 구성 탭을 선택합니다.

  2. 진단 섹션에서 진단 사용 확인란이 선택되어 있는지 확인합니다.

    사용 가능한 옵션(오류만, 모든 정보사용자 지정 계획) 중에서 오류만은 기본 옵션이며 경고 또는 추적 메시지를 전송하지 않으므로 필요한 저장소 크기가 가장 작습니다. 모든 정보는 대부분의 정보를 전달하므로 비용이 가장 많이 드는 옵션입니다.

  3. 설정을 사용자 지정하려면 사용자 지정 계획 옵션 단추를 선택하고 편집 단추를 선택합니다.

    사용자 지정 계획을 선택한 다음 편집 단추 선택

    수집할 수 있는 진단 데이터의 각 소스에 대한 탭이 포함된 진단 구성 대화 상자가 나타납니다.

  4. 응용 프로그램 로그의 버퍼 크기와 전송 기간을 지정합니다.

    각 탭에서 버퍼 크기를 설정하면 각 가상 컴퓨터의 각 데이터 유형에 대한 파일 시스템 저장소 크기가 예약됩니다. 모든 데이터 버퍼의 총 크기는 전체 진단 할당량을 초과할 수 없습니다. 대화 상자의 왼쪽 아래에서는 선택한 옵션에 따라 버퍼 크기의 누계가 조정됩니다.

    응용 프로그램 로그
    Warning경고
    버전 1.8 이하의 Azure SDK를 사용하여 만들어진 클라우드 서비스를 조사하려는 경우에는 가비지 수집기를 위해 500MB의 사용 가능한 로컬 저장소를 예약해야 합니다. 로컬 저장소 값은 프로젝트의 서비스 정의 파일(.csdef)에 포함된 LocalStorage 요소에 저장됩니다. 이후 버전의 SDK에는 이러한 제한이 없습니다.

    응용 프로그램에서는 System.Diagnostics API를 사용하여 응용 프로그램 로그를 생성합니다. 응용 프로그램 코드에서 이러한 로그에 데이터를 생성하려면 System.Diagnostics.dll에 대한 참조를 추가하고, Trace 클래스의 정적 메서드(TraceErrorTraceInformation 등)를 사용하여 데이터를 기록합니다.

  5. 로그 수준을 중요, 오류, 경고, 정보 또는 세부 정보 표시(최소 정보에서 최대 정보의 순서) 중 하나로 설정합니다.

  6. 이벤트 로그 탭에서 추적하려는 이벤트 유형에 대한 확인란을 선택합니다.

    이벤트 로그

    범주는 Windows 이벤트 뷰어의 필터에 해당합니다.

  7. 성능 카운터 탭에서 추적하려는 성능 카운터에 대한 확인란을 선택합니다.

    성능 카운터

    나열되지 않은 성능 카운터를 추적하려면 제안된 구문을 사용하여 성능 카운터를 입력합니다. 추적할 수 있는 성능 카운터는 가상 컴퓨터의 운영 체제에 따라 결정됩니다. 구문에 대한 자세한 내용은 카운터 경로 지정을 참조하십시오.

  8. 인프라 로그 탭에서 원하는 설정을 지정합니다.

    진단 인프라 로그

    이러한 로그는 Azure 진단의 인프라와 관련이 있습니다.

  9. 로그 디렉터리 탭에서 IIS(인터넷 정보 서비스) 요청 및 크래시 덤프에 대한 로그 디렉터리에서 수집되는 데이터를 구성합니다.

    로그 디렉터리
  10. 클라우드 서비스를 일반적인 방법대로 배포하고 실행합니다.

  11. Visual Studio에서 생성된 보고서나 저장소 계정의 테이블로 진단 데이터를 볼 수 있습니다. 보고서로 데이터를 보려면 서버 탐색기를 열고 원하는 역할에 대한 노드의 바로 가기 메뉴를 연 다음 진단 데이터 보기를 선택합니다.

    진단 데이터 보기

    사용 가능한 데이터를 보여 주는 보고서가 나타납니다.

    Visual Studio의 Windows Azure 진단 보고서

    최근 데이터가 표시되지 않는 경우 전송 기간이 경과할 때까지 기다려야 할 수 있습니다.

    데이터를 실시간으로 업데이트하려면 새로 고침 단추를 선택합니다.

    서버 탐색기에서 배포와 연결된 저장소 계정을 엽니다.

  12. 테이블 뷰어에서 진단 테이블을 열고 수집된 데이터를 검토합니다. IIS 로그와 사용자 지정 로그의 경우 Blob 컨테이너를 열 수 있습니다. 다음 표를 참조하여 원하는 데이터가 들어 있는 테이블 또는 Blob 컨테이너를 찾을 수 있습니다. 테이블 항목에는 해당 로그 파일에 대한 데이터 외에도 데이터를 생성한 가상 컴퓨터 및 역할과 데이터 생성 시기를 쉽게 알 수 있도록 EventTickCount, DeploymentId, Role 및 RoleInstance도 포함되어 있습니다.

     

    진단 데이터 설명 위치

    응용 프로그램 로그

    코드에서 System.Diagnostics.Trace 클래스의 메서드를 호출하여 생성하는 로그입니다.

    WADLogsTable

    이벤트 로그

    이 데이터는 가상 컴퓨터의 Windows 이벤트 로그에서 가져옵니다. 이 로그의 정보는 Windows가 저장하지만 응용 프로그램과 서비스에서도 오류 또는 로그 정보를 보고할 때 이 정보를 사용합니다.

    WADWindowsEventLogsTable

    성능 카운터

    가상 컴퓨터에서 사용할 수 있는 성능 카운터의 데이터를 수집할 수 있습니다. 운영 체제에서는 메모리 사용량 및 프로세서 시간 등의 다양한 통계를 포함한 성능 카운터를 제공합니다.

    WADPerformanceCountersTable

    인프라 로그

    이 로그는 진단 인프라 자체에서 생성됩니다.

    WADDiagnosticInfrastructureLogsTable

    IIS 로그

    이 로그는 웹 요청을 기록합니다. 클라우드 서비스가 상당한 양의 트래픽을 받는 경우에는 이 로그의 길이가 매우 길어질 수 있으므로 이 데이터는 필요할 때만 수집 및 저장해야 합니다.

    실패한 요청 로그는 해당 배포, 역할 및 인스턴스에 대한 경로 아래의 wad-iis-failedreqlogs에 있는 Blob 컨테이너에서 찾을 수 있습니다. 전체 로그는 wad-iis-logfiles에서 찾을 수 있습니다. 각 파일에 대한 항목은 WADDirectories 테이블에서 만들어집니다.

    크래시 덤프

    이 정보는 클라우드 서비스 프로세스(일반적으로 작업자 역할)의 이진 이미지를 제공합니다.

    wad-crush-dumps Blob 컨테이너

    사용자 지정 로그 파일

     

    코드에서 저장소 계정의 사용자 지정 로그 파일 위치를 지정할 수 있습니다. 예를 들어 사용자 지정 Blob 컨테이너를 지정할 수 있습니다.

  13. 어떤 형식이든지 데이터가 잘릴 경우에는 해당 데이터 형식의 버퍼를 늘리거나 가상 컴퓨터에서 저장소 계정으로의 데이터 전송 간격을 줄일 수 있습니다.

  14. (선택 사항) 필요할 경우 저장소 계정의 데이터를 제거하여 전체 저장소 비용을 줄입니다.

전체 배포를 수행할 경우 Azure에서 .wadcfg 파일이 업데이트되고 클라우드 서비스는 진단 구성에 대한 모든 변경 내용을 적용합니다. 그렇지 않고 기존 배포를 업데이트할 경우에는 Azure에서 .wadcfg 파일이 업데이트되지 않습니다. 그러나 다음 섹션의 단계를 따라 진단 설정을 변경할 수 있습니다. 전체 배포 수행 및 기존 배포 업데이트에 대한 자세한 내용은 Windows Azure 응용 프로그램 게시 마법사를 참조하십시오.

실행 중인 클라우드 서비스의 문제를 조사하려는 경우 역할을 처음 배포하기 전에 지정하지 않은 데이터를 수집해야 할 수 있습니다. 이 경우 서버 탐색기의 설정을 사용하여 해당 데이터를 수집하기 시작할 수 있습니다. 진단 구성 대화 상자를 인스턴스에 대한 바로 가기 메뉴에서 열었는지 역할에 대한 바로 가기 메뉴에서 열었는지에 따라 역할의 단일 인스턴스 또는 모든 인스턴스에 대한 진단을 구성할 수 있습니다. 역할 노드를 구성할 경우에는 변경 내용이 모든 인스턴스에 적용되고, 인스턴스 노드를 구성할 경우에는 변경 내용이 해당 인스턴스에만 적용됩니다.

  1. 서버 탐색기에서 클라우드 서비스 노드를 확장하고 하위 노드를 확장하여 조사하려는 역할이나 인스턴스 또는 둘 다 찾습니다.

    진단 구성
  2. 인스턴스 노드나 역할 노드에 대한 바로 가기 메뉴에서 진단 설정 업데이트를 선택하고 수집하려는 진단 설정을 선택합니다.

    다양한 설정에 대한 자세한 내용은 이 항목의 이전 절차를 참조하십시오.

  3. 역할 또는 인스턴스에 대한 바로 가기 메뉴에서 진단 데이터 보기를 선택합니다.

    보고서에 사용 가능한 데이터가 표시됩니다.

    Visual Studio의 Windows Azure 진단 보고서

    최근 데이터가 표시되지 않는 경우 전송 기간이 경과할 때까지 기다려야 할 수 있습니다.

    데이터를 실시간으로 업데이트하려면 새로 고침 단추를 선택합니다. 클라우드 서비스에서 사용하는 저장소 계정을 열고 테이블 또는 Blob 컨테이너에 나타나는 수집된 데이터를 볼 수도 있습니다. 최근 데이터를 보려면 테이블을 새로 고쳐야 할 수 있습니다.

서버 탐색기에서 데이터 컬렉션을 변경할 경우 클라우드 서비스를 전체적으로 다시 배포할 때까지 변경 내용이 유지됩니다. 기본 게시 설정은 전체적으로 다시 배포하는 것이 아니라 기존 배포를 업데이트하기 위한 것이므로 기본 게시 설정을 사용할 경우 변경 내용을 덮어쓰지 않습니다. 배포 시 이 설정을 취소하기 위해 게시 마법사의 고급 설정 탭으로 가서 배포 업데이트 확인란을 취소합니다. 확인란을 취소하고 다시 배포하면 역할에 대한 속성 편집기를 통해 설정된 .wadcfg 파일의 설정으로 돌아갑니다. 배포를 업데이트하면 Azure가 이전 설정을 유지합니다.

코드, 조직 외부의 응용 프로그램 또는 diagnostics.wadcfg 파일의 진단 구성이 충돌할 경우 어떻게 됩니까? 어떤 정보가 사용됩니까?

배포 전에 역할 디자이너에서 설정한 진단 데이터는 diagnostics.wadcfg 파일을 변경합니다. 이 파일을 직접 편집하여 데이터 컬렉션을 세부적으로 사용자 지정할 수 있습니다. Azure에서는 이 구성 파일을 Azure Blob 리소스(deploymentID, 역할 이름 및 역할 인스턴스 아래의 wad-control-container)에 복사합니다. 클라우드 서비스가 진단 모니터를 시작하면 Azure는 Blob 컨테이너에서 이 구성 파일을 로드합니다. Azure 진단용 API를 사용하여 코드에서 진단을 제어할 수도 있습니다. 이 경우 diagnostics.wadcfg의 구성 설정을 덮어쓰게 됩니다. 하지만 이러한 런타임 변경 내용은 역할이 다시 시작될 때마다 손실됩니다. 런타임에 서버 탐색기를 사용하거나, 진단 관리 API를 직접 사용하여 진단 구성을 관리하는 고유한 유틸리티를 작성하여 진단 구성에 영향을 줄 수도 있습니다. 이러한 변경 내용은 Blob 컨테이너의 구성 파일에 영향을 주므로 역할이 다시 시작되어도 변경 내용이 유지됩니다. 각 구성 유형의 사용 방법과 해당 우선 순위에 대한 자세한 내용은 Azure 진단을 사용하여 로깅 데이터 수집을 참조하십시오.

버퍼 크기란 무엇이고 얼마나 커야 합니까?

각 가상 컴퓨터 인스턴스에서는 할당량에 따라 로컬 파일 시스템에 저장할 수 있는 진단 데이터의 양이 제한됩니다. 또한 사용 가능한 각 진단 데이터 유형에 대해 버퍼 크기를 지정해야 합니다. 이 버퍼 크기는 해당 유형의 데이터에 대해 개별 할당량과 같은 역할을 합니다. 대화 상자의 아래쪽에서는 전체 할당량과 남은 메모리 양을 확인할 수 있습니다. 더 큰 버퍼나 더 많은 데이터 유형을 지정할 경우 전체 할당량에 도달하게 됩니다. diagnostics.wadcfg 구성 파일을 수정하면 전체 할당량을 변경할 수 있습니다. 진단 데이터는 응용 프로그램의 데이터와 동일한 파일 시스템에 저장되므로 응용 프로그램에서 디스크 공간을 많이 사용하는 경우에는 전체 진단 할당량을 늘리지 말아야 합니다.

전송 기간이란 무엇이고 얼마나 길어야 합니까?

전송 기간은 데이터를 캡처한 후 다음 캡처까지의 경과 시간입니다. 각 전송 기간 후에는 가상 컴퓨터의 로컬 파일 시스템에서 저장소 계정의 테이블로 데이터가 이동됩니다. 전송 기간이 끝나기 전에 수집된 데이터의 양이 할당량을 초과할 경우에는 오래된 데이터가 삭제됩니다. 데이터가 버퍼 크기 또는 전체 할당량을 초과하여 데이터가 손실될 경우에는 전송 기간을 줄일 수 있습니다.

타임스탬프에는 어떤 시간대가 사용됩니까?

타임스탬프에는 클라우드 서비스를 호스팅하는 데이터 센터의 현지 표준 시간대가 사용됩니다.

진단 정보를 수집할 때 비용을 관리하려면 어떻게 합니까?

기본 설정(로그 수준오류로 설정되고 전송 기간이 1분으로 설정됨)은 비용을 최소화하기 위한 것입니다. 보다 많은 진단 데이터를 수집하거나 전송 기간을 줄이면 계산 비용이 늘어납니다. 따라서 필요 이상으로 많은 데이터를 수집하지 말고, 더 이상 필요하지 않을 때는 반드시 데이터를 수집하지 않도록 설정하십시오. 런타임을 포함하여 필요할 때는 언제든지 이전 섹션에서 설명한 것과 같이 데이터를 다시 수집하도록 설정할 수 있습니다.

IIS에서 실패한 요청 로그를 수집하려면 어떻게 합니까?

기본적으로 IIS는 실패한 요청 로그를 수집하지 않습니다. 웹 역할의 web.config 파일을 편집하면 IIS에서 이 로그를 수집하도록 구성할 수 있습니다.

OnStart 같은 RoleEntryPoint 메서드에서 추적 정보를 얻을 수 없습니다. 무엇이 잘못되었습니까?

RoleEntryPoint의 메서드는 IIS가 아니라 WAIISHost.exe의 컨텍스트에서 호출됩니다. 따라서 일반적으로 추적을 활성화하는 web.config의 구성 정보가 적용되지 않습니다. 이 문제를 해결하려면 웹 역할 프로젝트에 .config 파일을 추가하고 파일 이름을 RoleEntryPoint 코드가 포함된 출력 어셈블리와 일치하게 지정하십시오. 기본 웹 역할 프로젝트에서 .config 파일 이름은 WAIISHost.exe.config가 됩니다. 그러면 이 파일에 다음 줄을 추가합니다.

<system.diagnostics>     <trace>         <listeners>             <add name “AzureDiagnostics” type=”Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener”>                 <filter type=”” />             </add>         </listeners>     </trace> </system.diagnostics>

이제 속성 창에서 출력 디렉터리에 복사항상 복사로 설정합니다.

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft