다음을 통해 공유


Windows 진단 확장 스키마

Azure Diagnostics 확장은 게스트 운영 체제에서 모니터링 데이터를 수집하고 Azure 컴퓨팅 리소스의 워크로드를 수집하는 Azure Monitor의 에이전트입니다. 이 문서에서는 Windows 가상 머신 및 기타 컴퓨팅 리소스에서 진단 확장을 구성하는 데 사용되는 스키마에 대해 자세히 설명합니다.

참고 항목

이 문서의 스키마는 버전 1.3 이상(Azure SDK 2.4 이상)에 유효합니다. 최신 구성 섹션은 추가된 버전에 주석으로 표시됩니다. 스키마 버전 1.0 및 1.2가 보관되었으며 더 이상 사용할 수 없습니다.

공용 구성 파일 스키마

다음 PowerShell 명령을 실행하여 공용 구성 파일 스키마 정의를 다운로드합니다.

(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File –Encoding utf8 -FilePath 'C:\temp\WadConfig.xsd'  

일반적인 특성 형식

scheduledTransferPeriod 특성은 여러 요소에 나타납니다. 예약된 스토리지 전송 사이의 간격은 가장 가까운 분으로 반올림됩니다. 값은 XML "Duration 데이터 형식"입니다 .

DiagnosticsConfiguration 요소

트리: 루트 - DiagnosticsConfiguration

버전 1.3에 추가되었습니다.

진단 구성 파일의 최상위 요소입니다.

특성 xmlns - 진단 구성 파일에 대한 XML 네임스페이스는 다음과 같습니다.
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration

자식 요소 설명
PublicConfig 필수입니다. 이 페이지의 다른 위치에서 설명을 참조하세요.
PrivateConfig 선택 사항. 이 페이지의 다른 위치에서 설명을 참조하세요.
IsEnabled 부울. 이 페이지의 다른 위치에서 설명을 참조하세요.

PublicConfig 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig

공용 진단 구성을 설명합니다.

자식 요소 설명
WadCfg 필수입니다. 이 페이지의 다른 위치에서 설명을 참조하세요.
StorageAccount 데이터를 저장할 Azure Storage 계정의 이름입니다. Set-AzureServiceDiagnosticsExtension cmdlet을 실행할 때 매개 변수로 지정할 수도 있습니다.
StorageType Table, Blob 또는 TableAndBlob일 수 있습니다. 테이블은 기본값입니다. TableAndBlob을 선택하면 진단 데이터가 각 형식에 한 번씩 두 번 기록됩니다.
LocalResourceDirectory 모니터링 에이전트가 이벤트 데이터를 저장하는 가상 컴퓨터의 디렉터리입니다. 그렇지 않은 경우 기본 디렉터리가 사용됩니다.

작업자/웹 역할의 경우: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\

Virtual Machine의 경우: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion>

필수 특성은 다음과 같습니다.

- path - Azure Diagnostics에서 사용할 시스템의 디렉터리입니다.

- expandEnvironment - 환경 변수가 경로 이름에서 확장되는지 여부를 제어합니다.

WadCFG 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG

수집할 원격 분석 데이터를 식별 및 구성합니다.

DiagnosticMonitorConfiguration 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration

Required

특성 설명
overallQuotaInMB Azure Diagnostics에서 수집한 다양한 유형의 진단 데이터에서 사용할 수 있는 로컬 디스크 공간의 최대 크기입니다. 기본 설정은 4096MB입니다.
useProxyServer Internet Explorer 설정에 설정된 대로 프록시 서버 설정을 사용하도록 Azure Diagnostics를 구성합니다.
싱크 1.5에 추가되었습니다. 선택 사항. 또한 싱크를 지원하는 모든 자식 요소에 대한 진단 데이터를 보낼 싱크 위치도 가리킵니다. 싱크 예제는 Application Insights 또는 Event Hubs입니다. Event Hubs에 업로드된 이벤트가 리소스 ID를 갖도록 하려면 Metrics 요소 아래에 resourceId 속성을 추가해야 합니다.



자식 요소 설명
CrashDumps 이 페이지의 다른 위치에서 설명을 참조하세요.
DiagnosticInfrastructureLogs Azure Diagnostics에서 생성된 로그의 컬렉션을 사용하도록 설정합니다. 진단 인프라 로그는 진단 시스템 자체의 문제를 해결하는 데 유용합니다. 선택적 특성은 다음과 같습니다.

- scheduledTransferLogLevelFilter - 수집된 로그의 최소 심각도 수준을 구성합니다.

- scheduledTransferPeriod - 스토리지에 예약된 전송 사이의 간격으로 가장 가까운 시간(분)으로 반올림됩니다. 값은 XML "Duration 데이터 형식"입니다 .
디렉터리 이 페이지의 다른 위치에서 설명을 참조하세요.
EtwProviders 이 페이지의 다른 위치에서 설명을 참조하세요.
메트릭 이 페이지의 다른 위치에서 설명을 참조하세요.
PerformanceCounters 이 페이지의 다른 위치에서 설명을 참조하세요.
WindowsEventLog 이 페이지의 다른 위치에서 설명을 참조하세요.
DockerSources 이 페이지의 다른 위치에서 설명을 참조하세요.

CrashDumps 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - CrashDumps

크래시 덤프 컬렉션을 사용하도록 설정합니다.

특성 설명
containerName 선택 사항. 크래시 덤프를 저장하는 데 사용할 Azure Storage 계정의 blob 컨테이너의 이름입니다.
crashDumpType 선택 사항. 최소 또는 전체 크래시 덤프를 수집하도록 Azure Diagnostics를 구성합니다.
directoryQuotaPercentage 선택 사항. VM의 크래시 덤프에 예약되도록 overallQuotaInMB 의 비율을 구성합니다.
자식 요소 설명
CrashDumpConfiguration 필수입니다. 각 프로세스에 대한 구성 값을 정의합니다.

다음 특성도 필요합니다.

processName - Azure Diagnostics에서 크래시 덤프를 수집하려는 프로세스의 이름입니다.

Directories 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories

디렉터리, IIS 실패한 액세스 요청 로그 및/또는 IIS 로그의 콘텐츠 컬렉션을 사용하도록 설정합니다.

선택적 scheduledTransferPeriod 특성입니다. 앞에서 설명을 참조하세요.

자식 요소 설명
IISLogs 이 요소를 구성에 포함하면 IIS 로그를 수집할 수 있습니다.

containerName - IIS를 저장하는 데 사용할 Azure Storage 계정의 blob 컨테이너의 이름입니다.
FailedRequestLogs 이 요소를 구성에 포함하면 IIS 사이트 또는 애플리케이션에 대한 실패한 요청에 대한 로그를 수집할 수 있습니다. 또한 Web.configsystem.WebServer에 있는 추적 옵션도 사용하도록 설정해야 합니다.
DataSources 모니터링할 디렉터리 목록입니다.

DataSources 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 디렉터리 - DataSources

모니터링할 디렉터리 목록입니다.

자식 요소 설명
DirectoryConfiguration 필수입니다. 필수 특성:

containerName - 로그 파일을 저장하는 데 사용할 Azure Storage 계정의 Blob 컨테이너 이름입니다.

DirectoryConfiguration 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories - DataSources - DirectoryConfiguration

Absolute 또는 LocalResource 요소 중 하나를 포함하되, 모두 포함할 수는 없습니다.

자식 요소 설명
Absolute 모니터링할 디렉터리의 절대 경로입니다. 다음과 같은 특성이 필요합니다.

- 경로 - 모니터링할 디렉터리의 절대 경로입니다.

- expandEnvironment - 경로의 환경 변수가 확장되는지 여부를 구성합니다.
LocalResource 모니터링할 로컬 리소스에 상대적인 경로입니다. 필수 특성은 다음과 같습니다.

- 이름 - 모니터링할 디렉터리가 포함된 로컬 리소스

- relativePath -모니터링할 디렉터리를 포함하는 이름의 상대 경로

EtwProviders 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders

EventSource 및/또는 ETW 매니페스트 기반 공급자에서 ETW 이벤트의 컬렉션을 구성합니다.

자식 요소 설명
EtwEventSourceProviderConfiguration EventSource 클래스에서 생성된 이벤트 컬렉션을 구성합니다. 필수 특성:

provider - EventSource 이벤트의 클래스 이름입니다.

선택적 특성은 다음과 같습니다.

- scheduledTransferLogLevelFilter - 스토리지 계정으로 전송할 최소 심각도 수준입니다.

- scheduledTransferPeriod - 스토리지에 예약된 전송 사이의 간격으로 가장 가까운 시간(분)으로 반올림됩니다. 값은 XML "Duration 데이터 형식"입니다 .
EtwManifestProviderConfiguration 필수 특성:

provider - 이벤트 공급자의 GUID

선택적 특성은 다음과 같습니다.

- scheduledTransferLogLevelFilter - 스토리지 계정으로 전송할 최소 심각도 수준입니다.

- scheduledTransferPeriod - 스토리지에 예약된 전송 사이의 간격으로 가장 가까운 시간(분)으로 반올림됩니다. 값은 XML "Duration 데이터 형식"입니다 .

EtwEventSourceProviderConfiguration 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders- EtwEventSourceProviderConfiguration

EventSource 클래스에서 생성된 이벤트 컬렉션을 구성합니다.

자식 요소 설명
DefaultEvents 선택적 특성:

eventDestination - 이벤트를 저장할 테이블의 이름
이벤트 필수 특성:

id - 이벤트의 ID입니다.

선택적 특성:

eventDestination - 이벤트를 저장할 테이블의 이름

EtwManifestProviderConfiguration 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration

자식 요소 설명
DefaultEvents 선택적 특성:

eventDestination - 이벤트를 저장할 테이블의 이름
이벤트 필수 특성:

id - 이벤트의 ID입니다.

선택적 특성:

eventDestination - 이벤트를 저장할 테이블의 이름

Metrics 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 메트릭

빠른 쿼리에 최적화된 성능 카운터 테이블을 생성할 수 있습니다. PerformanceCounters 요소에 정의된 각 성능 카운터는 성능 카운터 테이블 외에도 메트릭 테이블에 저장됩니다.

resourceId 특성이 필요합니다. Azure Diagnostics를 배포하는 Virtual Machine 또는 Virtual Machine Scale Set의 리소스 ID입니다. Azure Portal에서 resourceID를 가져옵니다. 찾아보기 ->리소스 그룹 -><이름>을 선택합니다. 속성 타일을 클릭하고 ID 필드에서 값을 복사합니다. 이 resourceID 속성은 사용자 지정 메트릭을 보내고 Event Hubs로 전송된 데이터에 resourceID 속성을 추가하는 데 사용됩니다. Event Hubs에 업로드된 이벤트가 리소스 ID를 갖도록 하려면 Metrics 요소 아래에 resourceId 속성을 추가해야 합니다.

자식 요소 설명
MetricAggregation 필수 특성:

scheduledTransferPeriod - 스토리지에 예약된 전송 사이의 간격으로 가장 가까운 시간(분)으로 반올림됩니다. 값은 XML "Duration 데이터 형식"입니다 .

PerformanceCounters 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - PerformanceCounters

성능 카운터의 컬렉션을 활성화합니다.

선택적 특성:

선택적 scheduledTransferPeriod 특성입니다. 앞에서 설명을 참조하세요.

자식 요소 설명
PerformanceCounterConfiguration 다음과 같은 특성이 필요합니다.

- counterSpecifier - 성능 카운터의 이름입니다. 예들 들어 \Processor(_Total)\% Processor Time입니다. 호스트에서 성능 카운터 목록을 얻으려면 명령을 typeperf실행합니다.

- sampleRate - 카운터를 샘플링해야 하는 빈도입니다.

선택적 특성:

unit - 카운터의 측정 단위입니다. 값은 UnitType 클래스에서 사용할 수 있습니다.
싱크 1.5에 추가되었습니다. 선택 사항. 진단 데이터도 보내도록 싱크 위치를 가리킵니다. 예를 들어 Azure Monitor 또는 Event Hubs입니다. Event Hubs에 업로드된 이벤트가 리소스 ID를 갖도록 하려면 Metrics 요소 아래에 resourceId 속성을 추가해야 합니다.

WindowsEventLog 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - WindowsEventLog

Windows 이벤트 로그의 컬렉션을 사용하도록 설정합니다.

선택적 scheduledTransferPeriod 특성입니다. 앞에서 설명을 참조하세요.

자식 요소 설명
DataSource 수집할 Windows 이벤트 로그입니다. 필수 특성:

name - 수집할 Windows 이벤트를 설명하는 XPath 쿼리입니다. 예시:

Application!*[System[(Level <=3)]], System!*[System[(Level <=3)]], System!*[System[Provider[@Name='Microsoft Antimalware']]], Security!*[System[(Level <= 3)]

모든 이벤트를 수집하려면 "*"를 지정합니다.
싱크 1.5에 추가되었습니다. 선택 사항. 또한 싱크를 지원하는 모든 자식 요소에 대한 진단 데이터를 보낼 싱크 위치도 가리킵니다. 싱크 예제는 Application Insights 또는 Event Hubs입니다.

Logs 요소

Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Logs

버전 1.0 및 1.1에 있습니다. 1.2에서 누락되었습니다. 1.3에서 다시 추가되었습니다.

기본 Azure 로그의 버퍼 구성을 정의합니다.

특성 Type 설명
bufferQuotaInMB unsignedInt 선택 사항. 지정된 데이터에 사용할 수 있는 파일 시스템 스토리지의 최대 크기를 지정합니다.

기본값은 0입니다.
scheduledTransferLogLevelFilter string 선택 사항. 전송되는 로그 항목의 최소 심각도 수준을 지정합니다. 기본값은 모든 로그를 전송하는 Undefined입니다. 기타 가능한 값(대부분의 정보 순서에서 최소 정보 순)은 자세한 정보, 정보, 경고, 오류위험입니다.
scheduledTransferPeriod duration 선택 사항. 예약된 데이터 전송 사이의 간격(가장 가까운 시간(분)으로 반올림)을 지정합니다.

기본값은 PT0S입니다.
싱크 string 1.5에 추가되었습니다. 선택 사항. 진단 데이터도 보내도록 싱크 위치를 가리킵니다. 예를 들어 Application Insights 또는 Event Hubs입니다. Event Hubs에 업로드된 이벤트가 리소스 ID를 갖도록 하려면 Metrics 요소 아래에 resourceId 속성을 추가해야 합니다.

DockerSources

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - DockerSources

1.9에 추가되었습니다.

요소 이름 설명
통계 Docker 컨테이너에 대한 통계를 수집하도록 시스템에 지시

SinksConfig 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig

진단 데이터를 보낼 위치 목록 및 해당 위치와 연결된 구성입니다.

요소 이름 설명
싱크 이 페이지의 다른 위치에서 설명을 참조하세요.

Sink 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink

버전 1.5에 추가되었습니다.

진단 데이터를 보낼 위치를 정의합니다. 예를 들어 Application Insights 서비스입니다.

특성 Type Description
이름 string 싱크 이름을 식별하는 문자열입니다.
요소 Type 설명
Application Insights string Application Insights에 데이터를 보낼 때만 사용됩니다. 액세스 권한이 있는 활성 Application Insights 계정에 대한 계측 키를 포함합니다.
채널 string 스트림하는 각 추가 필터링에 대한

Channels 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - 싱크 - 채널

버전 1.5에 추가되었습니다.

싱크를 통해 전달되는 로그 데이터의 스트림에 대한 필터를 정의합니다.

요소 Type 설명
채널 string 이 페이지의 다른 위치에서 설명을 참조하세요.

Channel 요소

트리: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - 싱크 - 채널 - 채널

버전 1.5에 추가되었습니다.

진단 데이터를 보낼 위치를 정의합니다. 예를 들어 Application Insights 서비스입니다.

특성 Type 설명
logLevel string 전송되는 로그 항목의 최소 심각도 수준을 지정합니다. 기본값은 모든 로그를 전송하는 Undefined입니다. 기타 가능한 값(대부분의 정보 순서에서 최소 정보 순)은 자세한 정보, 정보, 경고, 오류위험입니다.
이름 string 참조할 채널의 고유한 이름

PrivateConfig 요소

트리: Root - DiagnosticsConfiguration - PrivateConfig

버전 1.3에 추가되었습니다.

선택 사항

스토리지 계정의 프라이빗 세부 정보(이름, 키 및 엔드포인트)를 저장합니다. 이 정보는 가상 머신으로 전송되지만 가상 머신에서 검색할 수 없습니다.

자식 요소 설명
StorageAccount 사용할 스토리지 계정입니다. 다음 특성이 필요합니다.

- name - 스토리지 계정의 이름입니다.

- key - 스토리지 계정의 키입니다.

- 엔드포인트 - 스토리지 계정에 액세스하는 엔드포인트입니다.

-sasToken(1.8.1에 추가됨)- 프라이빗 구성에서 스토리지 계정 키 대신 SAS 토큰을 지정할 수 있습니다. 제공하는 경우 스토리지 계정 키는 무시됩니다.
SAS 토큰에 대한 요구 사항:
- 계정 SAS 토큰만 지원합니다.
- b, t 서비스 유형이 필요합니다.
- a, c, u, w 권한이 필요합니다.
- c, o 리소스 종류가 필요합니다.
- HTTPS 프로토콜만 지원합니다.
- 시작 및 만료 시간이 유효해야 합니다.

IsEnabled 요소

트리: Root - DiagnosticsConfiguration - IsEnabled

부울. 진단을 사용하도록 설정하거나 false 진단을 사용하지 않도록 설정하는 데 사용합니다true.

구성 예

다음은 JSON 및 XML에 표시된 Windows 진단 확장에 대한 전체 샘플 구성입니다.

JSON

PublicConfigPrivateConfig는 대부분의 JSON 사용 사례에서 다른 변수로 전달되기 때문에 구분됩니다. 이러한 경우에는 Resource Manager 템플릿, PowerShell 및 Visual Studio가 있습니다.

참고 항목

공용 구성 Azure Monitor 싱크 정의에는 resourceIdregion이라는 두 가지 속성이 있습니다. 두 속성은 클래식 VM 및 클래식 클라우드 서비스에만 필요합니다. 지역 속성은 다른 리소스에 사용할 수 없습니다. resourceId 속성은 ARM VM에서 Event Hubs에 업로드된 로그의 resourceID 필드를 채우는 데 사용됩니다.

"PublicConfig" {
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 10000,
            "DiagnosticInfrastructureLogs": {
                "scheduledTransferLogLevelFilter": "Error"
            },
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "AzureMonitorSink",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT1M",
                        "unit": "percent"
                    }
                ]
            },
            "Directories": {
                "scheduledTransferPeriod": "PT5M",
                "IISLogs": {
                    "containerName": "iislogs"
                },
                "FailedRequestLogs": {
                    "containerName": "iisfailed"
                },
                "DataSources": [
                    {
                        "containerName": "mynewprocess",
                        "Absolute": {
                            "path": "C:\\MyNewProcess",
                            "expandEnvironment": false
                        }
                    },
                    {
                        "containerName": "badapp",
                        "Absolute": {
                            "path": "%SYSTEMDRIVE%\\BadApp",
                            "expandEnvironment": true
                        }
                    },
                    {
                        "containerName": "goodapp",
                        "LocalResource": {
                            "relativePath": "..\\PeanutButter",
                            "name": "Skippy"
                        }
                    }
                ]
            },
            "EtwProviders": {
                "sinks": "",
                "EtwEventSourceProviderConfiguration": [
                    {
                        "scheduledTransferPeriod": "PT5M",
                        "provider": "MyProviderClass",
                        "Event": [
                            {
                                "id": 0
                            },
                            {
                                "id": 1,
                                "eventDestination": "errorTable"
                            }
                        ],
                        "DefaultEvents": {
                        }
                    }
                ],
                "EtwManifestProviderConfiguration": [
                    {
                        "scheduledTransferPeriod": "PT2M",
                        "scheduledTransferLogLevelFilter": "Information",
                        "provider": "5974b00b-84c2-44bc-9e58-3a2451b4e3ad",
                        "Event": [
                            {
                                "id": 0
                            }
                        ],
                        "DefaultEvents": {
                        }
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT5M",
                "DataSource": [
                    {
                        "name": "System!*[System[Provider[@Name='Microsoft Antimalware']]]"
                    },
                    {
                        "name": "System!*[System[Provider[@Name='NTFS'] and (EventID=55)]]"
                    },
                    {
                        "name": "System!*[System[Provider[@Name='disk'] and (EventID=7 or EventID=52 or EventID=55)]]"
                    }
                ]
            },
            "Logs": {
                "scheduledTransferPeriod": "PT1M",
                "scheduledTransferLogLevelFilter": "Verbose",
                "sinks": "ApplicationInsights.AppLogs"
            },
            "CrashDumps": {
                "directoryQuotaPercentage": 30,
                "dumpType": "Mini",
                "containerName": "wad-crashdumps",
                "CrashDumpConfiguration": [
                    {
                        "processName": "mynewprocess.exe"
                    },
                    {
                        "processName": "badapp.exe"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "AzureMonitorSink",
                    "AzureMonitor":
                    {
                        "ResourceId": "{insert resourceId if a classic VM or cloud service, else property not needed}",
                        "Region": "{insert Azure region of resource if a classic VM or cloud service, else property not needed}"
                    }
                },
                {
                    "name": "ApplicationInsights",
                    "ApplicationInsights": "{Insert InstrumentationKey}",
                    "Channels": {
                        "Channel": [
                            {
                                "logLevel": "Error",
                                "name": "Errors"
                            },
                            {
                                "logLevel": "Verbose",
                                "name": "AppLogs"
                            }
                        ]
                    }
                },
                {
                    "name": "EventHub",
                    "EventHub": {
                        "Url": "https://myeventhub-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule",
                        "usePublisherId": false
                    }
                },
                {
                    "name": "secondaryEventHub",
                    "EventHub": {
                        "Url": "https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub",
                        "SharedAccessKeyName": "SendRule",
                        "usePublisherId": false
                    }
                },
                {
                    "name": "secondaryStorageAccount",
                    "StorageAccount": {
                        "name": "secondarydiagstorageaccount",
                        "endpoint": "https://core.windows.net"
                    }
                }
            ]
        }
    },
    "StorageAccount": "diagstorageaccount",
    "StorageType": "TableAndBlob"
}

참고 항목

프라이빗 구성 Azure Monitor 싱크 정의에는 PrincipalIdSecret의 두 가지 속성이 있습니다. 두 속성은 클래식 VM 및 클래식 클라우드 서비스에만 필요합니다. 이러한 속성은 다른 리소스에 사용하면 안 됩니다.

"PrivateConfig" {
    "storageAccountName": "diagstorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "storageAccountSasToken": "{sas token}",
    "EventHub": {
        "Url": "https://myeventhub-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    },
    "AzureMonitorAccount": {
        "ServicePrincipalMeta": {
            "PrincipalId": "{Insert service principal client Id}",
            "Secret": "{Insert service principal client secret}"
        }
    },
    "SecondaryStorageAccounts": {
        "StorageAccount": [
            {
                "name": "secondarydiagstorageaccount",
                "key": "{base64 encoded key}",
                "endpoint": "https://core.windows.net",
                "sasToken": "{sas token}"
            }
        ]
    },
    "SecondaryEventHubs": {
        "EventHub": [
            {
                "Url": "https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub",
                "SharedAccessKeyName": "SendRule",
                "SharedAccessKey": "{base64 encoded key}"
            }
        ]
    }
}

XML

<?xml version="1.0" encoding="utf-8"?>  
<DiagnosticsConfiguration  xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">   
  <PublicConfig>  
    <WadCfg>  
      <DiagnosticMonitorConfiguration overallQuotaInMB="10000">  

        <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzureMonitorSink">  
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />  
        </PerformanceCounters>  

        <Directories scheduledTransferPeriod="PT5M">  
          <IISLogs containerName="iislogs" />  
          <FailedRequestLogs containerName="iisfailed" />  

          <DataSources>  
            <DirectoryConfiguration containerName="mynewprocess">  
              <Absolute path="C:\MyNewProcess" expandEnvironment="false" />  
            </DirectoryConfiguration>  
            <DirectoryConfiguration containerName="badapp">  
              <Absolute path="%SYSTEMDRIVE%\BadApp" expandEnvironment="true" />  
            </DirectoryConfiguration>  
            <DirectoryConfiguration containerName="goodapp">  
              <LocalResource name="Skippy" relativePath="..\PeanutButter"/>  
            </DirectoryConfiguration>  
          </DataSources>  

        </Directories>  

        <EtwProviders>  
          <EtwEventSourceProviderConfiguration   
                       provider="MyProviderClass"   
                       scheduledTransferPeriod="PT5M">  
            <Event id="0"/>  
            <Event id="1" eventDestination="errorTable"/>  
            <DefaultEvents />  
          </EtwEventSourceProviderConfiguration>  
          <EtwManifestProviderConfiguration provider="5974b00b-84c2-44bc-9e58-3a2451b4e3ad" scheduledTransferLogLevelFilter="Information" scheduledTransferPeriod="PT2M">  
            <Event id="0"/>  
            <DefaultEvents eventDestination="defaultTable"/>  
          </EtwManifestProviderConfiguration>  
        </EtwProviders>  

        <WindowsEventLog scheduledTransferPeriod="PT5M">  
          <DataSource name="System!*[System[Provider[@Name='Microsoft Antimalware']]]"/>  
          <DataSource name="System!*[System[Provider[@Name='NTFS'] and (EventID=55)]]" />  
          <DataSource name="System!*[System[Provider[@Name='disk'] and (EventID=7 or EventID=52 or EventID=55)]]" />  
        </WindowsEventLog>  

        <Logs  bufferQuotaInMB="1024"   
             scheduledTransferPeriod="PT1M"   
             scheduledTransferLogLevelFilter="Verbose"   
             sinks="ApplicationInsights.AppLogs"/>  <!-- sinks attribute added in 1.5 -->  

        <CrashDumps containerName="wad-crashdumps" directoryQuotaPercentage="30" dumpType="Mini">  
          <CrashDumpConfiguration processName="mynewprocess.exe" />  
          <CrashDumpConfiguration processName="badapp.exe"/>  
        </CrashDumps>  

        <DockerSources> <!-- Added in 1.9 -->
          <Stats enabled="true" sampleRate="PT1M" scheduledTransferPeriod="PT1M" />
        </DockerSources>

      </DiagnosticMonitorConfiguration>  

      <SinksConfig>   <!-- Added in 1.5 -->  
        <Sink name="AzureMonitorSink">
            <AzureMonitor> <!-- Added in 1.11 -->
                <resourceId>{insert resourceId}</ResourceId> <!-- Parameter only needed for classic VMs and Classic Cloud Services, exclude VMSS and Resource Manager VMs-->
                <Region>{insert Azure region of resource}</Region> <!-- Parameter only needed for classic VMs and Classic Cloud Services, exclude VMSS and Resource Manager VMs -->
            </AzureMonitor>
        </Sink>
        <Sink name="ApplicationInsights">   
          <ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>   
          <Channels>   
            <Channel logLevel="Error" name="Errors"  />   
            <Channel logLevel="Verbose" name="AppLogs"  />   
          </Channels>   
        </Sink>   
        <Sink name="EventHub"> <!-- Added in 1.7 -->
          <EventHub Url="https://myeventhub-ns.servicebus.windows.net/diageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
        </Sink>
        <Sink name="secondaryEventHub"> <!-- Added in 1.7 -->
          <EventHub Url="https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
        </Sink>
        <Sink name="secondaryStorageAccount"> <!-- Added in 1.7 -->
          <StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.windows.net" />
        </Sink>
   </SinksConfig>

  </WadCfg>  

  <StorageAccount>diagstorageaccount</StorageAccount>
  <StorageType>TableAndBlob</StorageType> <!-- Added in 1.8 -->  
  </PublicConfig>  

  <PrivateConfig>  <!-- Added in 1.3 -->  
    <StorageAccount name="" key="" endpoint="" sasToken="{sas token}"  />  <!-- sasToken in Private config added in 1.8.1 -->  
    <EventHub Url="https://myeventhub-ns.servicebus.windows.net/diageventhub" SharedAccessKeyName="SendRule" SharedAccessKey="{base64 encoded key}" />

    <AzureMonitorAccount>
        <ServicePrincipalMeta> <!-- Added in 1.11; only needed for classic VMs and Classic cloud services -->
            <PrincipalId>{Insert service principal clientId}</PrincipalId>
            <Secret>{Insert service principal client secret}</Secret>
        </ServicePrincipalMeta>
    </AzureMonitorAccount>

    <SecondaryStorageAccounts>
       <StorageAccount name="secondarydiagstorageaccount" key="{base64 encoded key}" endpoint="https://core.windows.net" sasToken="{sas token}" />
    </SecondaryStorageAccounts>

    <SecondaryEventHubs>
       <EventHub Url="https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub" SharedAccessKeyName="SendRule" SharedAccessKey="{base64 encoded key}" />
    </SecondaryEventHubs>

  </PrivateConfig>  
  <IsEnabled>true</IsEnabled>  
</DiagnosticsConfiguration>  

참고 항목

공용 구성 Azure Monitor 싱크 정의에는 resourceId 및 region이라는 두 가지 속성이 있습니다. 두 속성은 클래식 VM 및 클래식 클라우드 서비스에만 필요합니다. 이러한 속성은 Resource Manager Virtual Machines 또는 Virtual Machine Scale Sets에 사용하면 안 됩니다. 보안 주체 ID 및 암호를 전달하는, Azure Monitor 싱크에 대한 추가 프라이빗 구성 요소도 있습니다. 이 요소는 클래식 VM 및 클래식 클라우드 서비스에만 필요합니다. Resource Manager VM 및 VMSS의 경우 프라이빗 구성 요소의 Azure Monitor 정의를 제외할 수 있습니다.