Azure Monitor 메트릭 저장소의 클래식 Cloud Services에 게스트 OS 메트릭 보내기

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

Azure Monitor 진단 확장을 사용하여 가상 머신, 클라우드 서비스 또는 Service Fabric 클러스터의 일부로 실행되는 게스트 OS(게스트 운영 체제)에서 메트릭과 로그를 수집할 수 있습니다. 이 확장은 여러 다른 위치에 원격 분석을 보낼 수 있습니다.

이 문서에서는 Azure 클래식 Cloud Services에 대한 게스트 OS 성능 메트릭을 Azure Monitor 메트릭 저장소에 보내는 프로세스에 대해 설명합니다. 진단 버전 1.11부터 표준 플랫폼 메트릭이 이미 수집된 Azure Monitor 메트릭 저장소에 메트릭을 직접 기록할 수 있습니다.

이 위치에 메트릭을 저장하면 플랫폼 메트릭의 경우와 동일한 작업에 액세스할 수 있습니다. 작업에는 실시간에 가까운 경고, 차트 작성, 라우팅, REST API에서 액세스 등이 포함됩니다. 과거에는 진단 확장을 Azure Monitor 데이터 저장소가 아니라 Azure Storage에 기록했습니다.

이 문서에서 설명하는 프로세스는 Azure Cloud Services의 성능 카운터에서만 작동합니다. 다른 사용자 지정 메트릭에서는 작동하지 않습니다.

필수 조건

클라우드 서비스 및 스토리지 계정 프로비전

  1. 클래식 클라우드 서비스를 만들고 배포합니다. 샘플 클래식 Cloud Services 애플리케이션 및 배포는 Azure Cloud Services 및 ASP.NET 시작에서 확인할 수 있습니다.

  2. 기존 스토리지 계정을 사용하거나 새 스토리지 계정을 배포할 수 있습니다. 직접 만든 클래식 클라우드 서비스와 동일한 지역에 스토리지 계정이 있는 것이 가장 좋습니다. Azure Portal에서 스토리지 계정 리소스 창으로 이동한 다음, 를 선택합니다. 스토리지 계정 이름과 스토리지 계정 키를 적어 둡니다. 이 정보는 이후 단계에서 필요합니다.

    Storage account keys

서비스 주체 만들기

포털을 사용하여 리소스에 액세스할 수 있는 Microsoft Entra 애플리케이션 및 서비스 주체 만들기 지침을 사용하여 Microsoft Entra 테넌트에 서비스 주체를 만듭니다. 이 프로세스를 진행하는 동안 다음 사항에 유의하세요.

  • 로그인 URL에 대해 임의 URL을 입력할 수 있습니다.
  • 이 앱에 대한 새 클라이언트 암호를 만듭니다.
  • 이후 단계에서 사용하기 위해 키와 클라이언트 ID를 저장합니다.

메트릭을 내보내려는 리소스에 대한 모니터링 메트릭 게시자 권한을 이전 단계에서 만든 앱에 부여합니다. 앱을 사용하여 여러 리소스에 대한 사용자 지정 메트릭을 내보내려는 경우 리소스 그룹 또는 구독 수준에서 이러한 권한을 부여할 수 있습니다.

참고 항목

진단 확장에서는 서비스 주체를 사용하여 Azure Monitor에 대해 인증하고 클라우드 서비스에 대한 메트릭을 내보냅니다.

진단 확장 구성 작성

진단 확장 구성 파일을 준비합니다. 이 파일은 진단 확장에서 클라우드 서비스에 대해 수집해야 하는 로그와 성능 카운터를 지정합니다. 다음은 샘플 진단 구성 파일입니다.

<?xml version="1.0" encoding="utf-8"?> 
<DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
  <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <WadCfg> 
      <DiagnosticMonitorConfiguration overallQuotaInMB="4096"> 
        <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" /> 
        <Directories scheduledTransferPeriod="PT1M"> 
          <IISLogs containerName="wad-iis-logfiles" /> 
          <FailedRequestLogs containerName="wad-failedrequestlogs" /> 
        </Directories> 
        <PerformanceCounters scheduledTransferPeriod="PT1M"> 
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" /> 
          <PerformanceCounterConfiguration counterSpecifier="\Memory\Page Faults/sec" sampleRate="PT15S" /> 
        </PerformanceCounters> 
        <WindowsEventLog scheduledTransferPeriod="PT1M"> 
          <DataSource name="Application!*[System[(Level=1 or Level=2 or Level=3)]]" /> 
          <DataSource name="Windows Azure!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]" /> 
        </WindowsEventLog> 
        <CrashDumps> 
          <CrashDumpConfiguration processName="WaIISHost.exe" /> 
          <CrashDumpConfiguration processName="WaWorkerHost.exe" /> 
          <CrashDumpConfiguration processName="w3wp.exe" /> 
        </CrashDumps> 
        <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error" /> 
      </DiagnosticMonitorConfiguration> 
      <SinksConfig> 
      </SinksConfig> 
    </WadCfg> 
    <StorageAccount /> 
  </PublicConfig> 
  <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <StorageAccount name="" endpoint="" /> 
</PrivateConfig> 
  <IsEnabled>true</IsEnabled> 
</DiagnosticsConfiguration> 

진단 파일의 “SinksConfig” 섹션에서 새 Azure Monitor 싱크를 정의합니다.

  <SinksConfig> 
    <Sink name="AzMonSink"> 
    <AzureMonitor> 
      <ResourceId>-Provide ClassicCloudService’s Resource ID-</ResourceId> 
      <Region>-Azure Region your Cloud Service is deployed in-</Region> 
    </AzureMonitor> 
    </Sink> 
  </SinksConfig> 

수집할 성능 카운터 목록이 있는 구성 파일 섹션에 Azure Monitor 싱크를 추가합니다. 이 항목은 지정한 모든 성능 카운터가 Azure Monitor에 메트릭으로 라우팅되도록 합니다. 필요에 따라 성능 카운터를 추가하거나 제거할 수 있습니다.

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>

마지막으로, 프라이빗 구성에서 Azure Monitor 계정 섹션을 추가합니다. 앞에서 만든 서비스 주체 클라이언트 ID와 비밀을 입력합니다.

<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
  <StorageAccount name="" endpoint="" /> 
    <AzureMonitorAccount> 
      <ServicePrincipalMeta> 
        <PrincipalId>clientId from step 3</PrincipalId> 
        <Secret>client secret from step 3</Secret> 
      </ServicePrincipalMeta> 
    </AzureMonitorAccount> 
</PrivateConfig> 

이 진단 파일을 로컬로 저장합니다.

클라우드 서비스에 진단 확장 배포

PowerShell을 시작하고 Azure에 로그인합니다.

Login-AzAccount 

다음 명령을 사용하여 앞에서 만든 스토리지 계정의 세부 정보를 저장합니다.

$storage_account = <name of your storage account from step 3> 
$storage_keys = <storage account key from step 3> 

마찬가지로, 다음 명령을 사용하여 진단 파일 경로를 변수에 설정합니다.

$diagconfig = “<path of the Diagnostics configuration file with the Azure Monitor sink configured>” 

다음 명령을 사용하여 Azure Monitor 싱크가 구성되어 있는 진단 파일을 통해 진단 확장을 클라우드 서비스에 배포합니다.

Set-AzureServiceDiagnosticsExtension -ServiceName <classicCloudServiceName> -StorageAccountName $storage_account -StorageAccountKey $storage_keys -DiagnosticsConfigurationPath $diagconfig 

참고 항목

여전히 진단 확장 설치 중에 스토리지 계정을 제공해야 합니다. 진단 구성 파일에 지정된 모든 로그 또는 성능 카운터는 지정한 스토리지 계정에 기록됩니다.

Azure Portal에서 메트릭 구성

  1. Azure Portal로 이동합니다.

    Screenshot shows the Azure portal with Monitor, then Metrics selected.

  2. 왼쪽 메뉴에서 모니터를 선택합니다.

  3. 모니터 창에서 메트릭 미리 보기 탭을 선택합니다.

  4. 리소스 드롭다운 메뉴에서 클래식 클라우드 서비스를 선택합니다.

  5. 네임스페이스 드롭다운 메뉴에서 azure.vm.windows.guest를 선택합니다.

  6. 메트릭 드롭다운 메뉴에서 Memory\Committed Bytes in Use를 선택합니다.

차원 필터링 및 분할 기능을 사용하여 특정 역할 또는 역할 인스턴스에서 사용하는 총 메모리를 볼 수 있습니다.

Screenshot shows Metrics data.

다음 단계