Udostępnij za pośrednictwem


Schemat rozszerzenia diagnostyki systemu Windows

Diagnostyka Azure rozszerzenie to agent w usłudze Azure Monitor, który zbiera dane monitorowania z systemu operacyjnego gościa i obciążeń zasobów obliczeniowych platformy Azure. Ten artykuł zawiera szczegółowe informacje o schemacie używanym do konfiguracji rozszerzenia diagnostycznego na maszynach wirtualnych z systemem Windows i innych zasobach obliczeniowych.

Uwaga

Schemat w tym artykule jest prawidłowy dla wersji 1.3 i nowszych (zestaw Azure SDK 2.4 i nowsze). Nowsze sekcje konfiguracji są komentowane, aby pokazać, w jakiej wersji zostały dodane. Wersje 1.0 i 1.2 schematu zostały zarchiwizowane i nie są już dostępne.

Schemat pliku konfiguracji publicznej

Pobierz definicję schematu pliku konfiguracji publicznej, wykonując następujące polecenie programu PowerShell:

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

Typowe typy atrybutów

scheduledTransferPeriod atrybut pojawia się w kilku elementach. Jest to interwał między zaplanowanym transferem do magazynu zaokrąglonym do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania).

DiagnosticsConfiguration, element

Drzewo: root — DiagnosticsConfiguration

Dodano element w wersji 1.3.

Element najwyższego poziomu pliku konfiguracji diagnostyki.

Xmlns atrybutów — przestrzeń nazw XML pliku konfiguracji diagnostyki to:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration

Elementy podrzędne opis
Konfiguracja publiczna Wymagany. Zobacz opis gdzie indziej na tej stronie.
Konfiguracja prywatna Opcjonalny. Zobacz opis gdzie indziej na tej stronie.
IsEnabled Wartość logiczna. Zobacz opis gdzie indziej na tej stronie.

PublicConfig, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig

Opisuje konfigurację diagnostyki publicznej.

Elementy podrzędne opis
WadCfg Wymagany. Zobacz opis gdzie indziej na tej stronie.
StorageAccount Nazwa konta usługi Azure Storage do przechowywania danych. Można również określić jako parametr podczas wykonywania polecenia cmdlet Set-AzureServiceDiagnosticsExtension.
Typ magazynu Może to być tabela, obiekt blob lub tableAndBlob. Tabela jest domyślna. Po wybraniu tabeli TableAndBlob dane diagnostyczne są zapisywane dwa razy — raz do każdego typu.
LocalResourceDirectory Katalog na maszynie wirtualnej, w której agent monitorowania przechowuje dane zdarzeń. Jeśli nie, ustaw, zostanie użyty katalog domyślny:

W przypadku roli Procesu roboczego/sieci Web: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\

Dla maszyny wirtualnej: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion>

Wymagane atrybuty to:

- path — katalog w systemie, który ma być używany przez Diagnostyka Azure.

- expandEnvironment — określa, czy zmienne środowiskowe są rozwinięte w nazwie ścieżki.

WadCFG, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG

Identyfikuje i konfiguruje dane telemetryczne do zebrania.

DiagnosticMonitorConfiguration, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration

Wymagania

Atrybuty opis
overallQuotaInMB Maksymalna ilość miejsca na dysku lokalnym, który może być używany przez różne typy danych diagnostycznych zebranych przez Diagnostyka Azure. Ustawieniem domyślnym jest 4096 MB.
useProxyServer Skonfiguruj Diagnostyka Azure, aby używać ustawień serwera proxy zgodnie z ustawieniami programu Internet Explorer.
Zlewozmywaki Dodano w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne dla wszystkich elementów podrzędnych obsługujących ujścia. Przykład ujścia to Application Insights lub Event Hubs. Należy pamiętać, że należy dodać właściwość resourceId w elemecie Metrics , jeśli zdarzenia przekazane do usługi Event Hubs mają identyfikator zasobu.



Elementy podrzędne opis
CrashDumps Zobacz opis gdzie indziej na tej stronie.
DiagnosticInfrastructureLogs Włącz zbieranie dzienników generowanych przez Diagnostyka Azure. Dzienniki infrastruktury diagnostycznej są przydatne do rozwiązywania problemów z samym systemem diagnostycznym. Atrybuty opcjonalne to:

- scheduledTransferLogLevelFilter — konfiguruje minimalny poziom ważności zebranych dzienników.

- scheduledTransferPeriod — interwał między zaplanowanym transferem do magazynu zaokrąglonym do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania).
Katalogi Zobacz opis gdzie indziej na tej stronie.
EtwProviders Zobacz opis gdzie indziej na tej stronie.
Metryki Zobacz opis gdzie indziej na tej stronie.
Liczniki wydajności Zobacz opis gdzie indziej na tej stronie.
WindowsEventLog Zobacz opis gdzie indziej na tej stronie.
DockerSources Zobacz opis gdzie indziej na tej stronie.

CrashDumps, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — CrashDumps

Włącz zbieranie zrzutów awaryjnych.

Atrybuty opis
containerName Opcjonalny. Nazwa kontenera obiektów blob na koncie usługi Azure Storage do przechowywania zrzutów awaryjnych.
crashDumpType Opcjonalny. Konfiguruje Diagnostyka Azure do zbierania mini lub pełnych zrzutów awaryjnych.
directoryQuotaPercentage Opcjonalny. Konfiguruje wartość procentową ogólnej wartościQuotaInMB, która ma być zarezerwowana dla zrzutów awaryjnych na maszynie wirtualnej.
Elementy podrzędne opis
CrashDumpConfiguration Wymagany. Definiuje wartości konfiguracji dla każdego procesu.

Wymagany jest również następujący atrybut:

processName — nazwa procesu, dla którego chcesz Diagnostyka Azure zebrać zrzut awaryjny.

Katalogi, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Katalogi

Włącza kolekcję zawartości katalogu, dzienniki żądań dostępu nieudanych usług IIS i/lub dzienniki usług IIS.

Opcjonalny atrybut scheduledTransferPeriod . Zobacz wyjaśnienie wcześniej.

Elementy podrzędne opis
Dzienniki usług IIS Dołączenie tego elementu w konfiguracji umożliwia zbieranie dzienników usług IIS:

containerName — nazwa kontenera obiektów blob na koncie usługi Azure Storage do przechowywania dzienników usług IIS.
FailedRequestLogs Dołączenie tego elementu w konfiguracji umożliwia zbieranie dzienników dotyczących żądań, które zakończyły się niepowodzeniem w witrynie lub aplikacji usług IIS. Należy również włączyć opcje śledzenia w systemie . Serwer sieci Web w pliku Web.config.
Źródła danych Lista katalogów do monitorowania.

DataSources, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Katalogi — Źródła danych

Lista katalogów do monitorowania.

Elementy podrzędne opis
DirectoryConfiguration Wymagany. Wymagany atrybut:

containerName — nazwa kontenera obiektów blob na koncie usługi Azure Storage, który ma być używany do przechowywania plików dziennika.

DirectoryConfiguration, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Katalogi — DataSources — DirectoryConfiguration

Może zawierać element Absolute lub LocalResource , ale nie oba te elementy.

Elementy podrzędne opis
Absolutny Ścieżka bezwzględna do katalogu do monitorowania. Wymagane są następujące atrybuty:

- Ścieżka — ścieżka bezwzględna do katalogu do monitorowania.

- expandEnvironment — określa, czy zmienne środowiskowe w ścieżce są rozwinięte.
LocalResource Ścieżka względem zasobu lokalnego do monitorowania. Wymagane atrybuty to:

- Nazwa — zasób lokalny zawierający katalog do monitorowania

- relativePath — ścieżka względna względem nazwy zawierającej katalog do monitorowania

EtwProviders, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders

Konfiguruje zbieranie zdarzeń ETW od dostawców opartych na manifeście EventSource i/lub ETW.

Elementy podrzędne opis
EtwEventSourceProviderConfiguration Konfiguruje zbieranie zdarzeń generowanych na podstawie klasy EventSource. Wymagany atrybut:

provider — nazwa klasy zdarzenia EventSource.

Atrybuty opcjonalne to:

- scheduledTransferLogLevelFilter — minimalny poziom ważności do przeniesienia na konto magazynu.

- scheduledTransferPeriod — interwał między zaplanowanym transferem do magazynu zaokrąglonym do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania).
EtwManifestProviderConfiguration Wymagany atrybut:

provider — identyfikator GUID dostawcy zdarzeń

Atrybuty opcjonalne to:

- scheduledTransferLogLevelFilter — minimalny poziom ważności do przeniesienia na konto magazynu.

- scheduledTransferPeriod — interwał między zaplanowanym transferem do magazynu zaokrąglonym do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania).

EtwEventSourceProviderConfiguration, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders — EtwEventSourceProviderConfiguration

Konfiguruje zbieranie zdarzeń generowanych na podstawie klasy EventSource.

Elementy podrzędne opis
DefaultEvents Opcjonalny atrybut:

eventDestination — nazwa tabeli do przechowywania zdarzeń w
Zdarzenie Wymagany atrybut:

id — identyfikator zdarzenia.

Opcjonalny atrybut:

eventDestination — nazwa tabeli do przechowywania zdarzeń w

EtwManifestProviderConfiguration, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders — EtwManifestProviderConfiguration

Elementy podrzędne opis
DefaultEvents Opcjonalny atrybut:

eventDestination — nazwa tabeli do przechowywania zdarzeń w
Zdarzenie Wymagany atrybut:

id — identyfikator zdarzenia.

Opcjonalny atrybut:

eventDestination — nazwa tabeli do przechowywania zdarzeń w

Metrics, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Metryki

Umożliwia wygenerowanie tabeli liczników wydajności zoptymalizowanej pod kątem szybkich zapytań. Każdy licznik wydajności zdefiniowany w elemecie PerformanceCounters jest przechowywany w tabeli Metrics (Metryki) oprócz tabeli Licznik wydajności.

Atrybut resourceId jest wymagany. Identyfikator zasobu maszyny wirtualnej lub zestawu skalowania maszyn wirtualnych wdrażanych Diagnostyka Azure. Pobierz identyfikator resourceID z witryny Azure Portal. Wybierz pozycję Przeglądaj -Grupy zasobów -><Name.>> Kliknij kafelek Właściwości i skopiuj wartość z pola IDENTYFIKATOR. Ta właściwość resourceID służy zarówno do wysyłania metryk niestandardowych, jak i dodawania właściwości resourceID do danych wysyłanych do usługi Event Hubs. Należy pamiętać, że należy dodać właściwość resourceId w elemecie Metrics , jeśli zdarzenia przekazane do usługi Event Hubs mają identyfikator zasobu.

Elementy podrzędne opis
Metryka Agregacja Wymagany atrybut:

scheduledTransferPeriod — interwał między zaplanowanym transferem do magazynu zaokrąglonym do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania).

PerformanceCounters, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — PerformanceCounters

Włącza zbieranie liczników wydajności.

Opcjonalny atrybut:

Opcjonalny atrybut scheduledTransferPeriod . Zobacz wyjaśnienie wcześniej.

Element podrzędny opis
PerformanceCounterConfiguration Wymagane są następujące atrybuty:

- counterSpecifier — nazwa licznika wydajności. Na przykład \Processor(_Total)\% Processor Time. Aby uzyskać listę liczników wydajności na hoście, uruchom polecenie typeperf.

- sampleRate — częstotliwość próbkowania licznika.

Opcjonalny atrybut:

unit — jednostka miary licznika. Wartości są dostępne w klasie UnitType
Zlewozmywaki Dodano w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne. Na przykład usługa Azure Monitor lub Event Hubs. Należy pamiętać, że należy dodać właściwość resourceId w elemecie Metrics , jeśli zdarzenia przekazane do usługi Event Hubs mają identyfikator zasobu.

WindowsEventLog, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — WindowsEventLog

Włącza kolekcję dzienników zdarzeń systemu Windows.

Opcjonalny atrybut scheduledTransferPeriod . Zobacz wyjaśnienie wcześniej.

Element podrzędny opis
DataSource Dzienniki zdarzeń systemu Windows do zbierania. Wymagany atrybut:

name — zapytanie XPath opisujące zdarzenia systemu Windows do zebrania. Na przykład:

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

Aby zebrać wszystkie zdarzenia, określ wartość "*"
Zlewozmywaki Dodano w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne dla wszystkich elementów podrzędnych obsługujących ujścia. Przykład ujścia to Application Insights lub Event Hubs.

Logs, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Dzienniki

Wersja 1.0 i 1.1. Brak w wersji 1.2. Dodano ponownie w wersji 1.3.

Definiuje konfigurację buforu dla podstawowych dzienników platformy Azure.

Atrybut Type Opis
bufferQuotaInMB unsignedInt Opcjonalny. Określa maksymalną ilość magazynu systemu plików, która jest dostępna dla określonych danych.

Wartość domyślna to 0.
scheduledTransferLogLevelFilter string Opcjonalny. Określa minimalny poziom ważności dla wpisów dziennika, które są przenoszone. Wartość domyślna to Niezdefiniowana, która przesyła wszystkie dzienniki. Inne możliwe wartości (w kolejności od większości do najmniejszych informacji) to Pełne, Informacje, Ostrzeżenie, Błąd i Krytyczne.
scheduledTransferPeriod czas trwania Opcjonalny. Określa interwał między zaplanowanymi transferami danych zaokrąglony do najbliższej minuty.

Wartość domyślna to PT0S.
Zlewozmywaki string Dodano w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne. Na przykład usługa Application Insights lub usługa Event Hubs. Należy pamiętać, że należy dodać właściwość resourceId w elemecie Metrics , jeśli zdarzenia przekazane do usługi Event Hubs mają identyfikator zasobu.

DockerSources

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — DockerSources

Dodano w wersji 1.9.

Nazwa elementu opis
Statystyki Informuje system o zbieraniu statystyk dla kontenerów platformy Docker

SinksConfig, element

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig

Lista lokalizacji do wysyłania danych diagnostycznych i konfiguracja skojarzona z tymi lokalizacjami.

Nazwa elementu opis
Zlew Zobacz opis gdzie indziej na tej stronie.

Element ujścia

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — SinksConfig

Dodano element w wersji 1.5.

Definiuje lokalizacje do wysyłania danych diagnostycznych do. Na przykład usługa Application Insights.

Atrybut Type opis
name string Ciąg identyfikujący nazwę ujścia.
Element Type Opis
Application Insights string Używane tylko podczas wysyłania danych do usługi Application Insights. Zawiera klucz instrumentacji dla aktywnego konta usługi Application Insights, do którego masz dostęp.
Kanały string Jeden dla każdego dodatkowego filtrowania strumienia

Channel, element

Drzewo: Root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sinks — Kanały

Dodano element w wersji 1.5.

Definiuje filtry strumieni danych dziennika przechodzących przez ujście.

Element Type Opis
Kanał string Zobacz opis gdzie indziej na tej stronie.

Element kanału

Drzewo: root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sinks — Kanały — Kanał

Dodano element w wersji 1.5.

Definiuje lokalizacje do wysyłania danych diagnostycznych do. Na przykład usługa Application Insights.

Atrybuty Type Opis
logLevel string Określa minimalny poziom ważności dla wpisów dziennika, które są przenoszone. Wartość domyślna to Niezdefiniowana, która przesyła wszystkie dzienniki. Inne możliwe wartości (w kolejności od większości do najmniejszych informacji) to Pełne, Informacje, Ostrzeżenie, Błąd i Krytyczne.
name string Unikatowa nazwa kanału do odwoływania się do

PrivateConfig, element

Drzewo: root — DiagnosticsConfiguration — PrivateConfig

Dodano element w wersji 1.3.

Opcjonalnie

Przechowuje prywatne szczegóły konta magazynu (nazwę, klucz i punkt końcowy). Te informacje są wysyłane do maszyny wirtualnej, ale nie można ich pobrać.

Elementy podrzędne opis
StorageAccount Konto magazynu do użycia. Wymagane są następujące atrybuty

- name — nazwa konta magazynu.

- key — klucz do konta magazynu.

- endpoint — punkt końcowy umożliwiający uzyskanie dostępu do konta magazynu.

-sasToken (dodano 1.8.1) — można określić token SAS zamiast klucza konta magazynu w prywatnej konfiguracji. Jeśli zostanie podany, klucz konta magazynu zostanie zignorowany.
Wymagania dotyczące tokenu SAS:
— Obsługuje tylko token SAS konta
- b, typy usług t są wymagane.
- a, c, u, w uprawnienia są wymagane.
- C, typy zasobów o są wymagane.
— Obsługuje tylko protokół HTTPS
- Czas rozpoczęcia i wygaśnięcia musi być prawidłowy.

IsEnabled, element

Drzewo: root — DiagnosticsConfiguration — IsEnabled

Wartość logiczna. Użyj true polecenia , aby włączyć diagnostykę lub false wyłączyć diagnostykę.

Przykładowa konfiguracja

Poniżej przedstawiono pełną przykładową konfigurację rozszerzenia diagnostyki systemu Windows pokazaną zarówno w formacie JSON, jak i XML.

JSON

Elementy PublicConfig i PrivateConfig są oddzielone, ponieważ w większości przypadków użycia JSON są przekazywane jako różne zmienne. Te przypadki obejmują szablony usługi Resource Manager, program PowerShell i program Visual Studio.

Uwaga

Definicja ujścia publicznej konfiguracji usługi Azure Monitor ma dwie właściwości, resourceId i region. Są one wymagane tylko w przypadku klasycznych maszyn wirtualnych i klasycznych usług w chmurze. Właściwość regionu nie powinna być używana dla innych zasobów. Właściwość resourceId jest używana na maszynach wirtualnych usługi ARM do wypełniania pola resourceID w dziennikach przekazanych do usługi Event Hubs.

"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"
}

Uwaga

Definicja ujścia prywatnej konfiguracji usługi Azure Monitor ma dwie właściwości: PrincipalId i Secret. Są one wymagane tylko w przypadku klasycznych maszyn wirtualnych i klasycznych usług w chmurze. Te właściwości nie powinny być używane dla innych zasobów.

"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>  

Uwaga

Definicja ujścia publicznej konfiguracji usługi Azure Monitor ma dwie właściwości, resourceId i region. Są one wymagane tylko w przypadku klasycznych maszyn wirtualnych i klasycznych usług w chmurze. Te właściwości nie powinny być używane w przypadku maszyn wirtualnych usługi Resource Manager ani zestawów skalowania maszyn wirtualnych. Istnieje również dodatkowy element prywatnej konfiguracji dla ujścia usługi Azure Monitor, który przekazuje identyfikator podmiotu zabezpieczeń i wpis tajny. Jest to wymagane tylko w przypadku klasycznych maszyn wirtualnych i klasycznych usług w chmurze. W przypadku maszyn wirtualnych i zestawów skalowania maszyn wirtualnych usługi Resource Manager można wykluczyć definicję usługi Azure Monitor w ramach prywatnego elementu konfiguracji.