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. W tym artykule szczegółowo przedstawiono schemat używany 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: Główny — DiagnostykaKonfiguracja
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 | Wymagane. Zobacz opis gdzie indziej na tej stronie. |
Konfiguracja prywatna | Opcjonalny. Zobacz opis gdzie indziej na tej stronie. |
IsEnabled | Boolean. Zobacz opis gdzie indziej na tej stronie. |
PublicConfig, element
Drzewo: Root — DiagnosticsConfiguration — PublicConfig
Opisuje konfigurację diagnostyki publicznej.
Elementy podrzędne | Opis |
---|---|
WadCfg | Wymagane. 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 obiekt 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, na której agent monitorowania przechowuje dane zdarzeń. Jeśli nie, ustaw, zostanie użyty katalog domyślny: W przypadku roli Proces roboczy/sieć Web: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\ W przypadku 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
Wymagane
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 do używania ustawień serwera proxy zgodnie z ustawieniami programu IE. |
Zlewozmywaki | Dodano element w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne dla wszystkich elementów podrzędnych, które obsługują ujścia. Przykład ujścia to Application Insights lub Event Hubs. Pamiętaj, że musisz 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 w górę do najbliższej minuty. Wartość to XML "Duration Data Type" (Typ danych czasu trwania). |
Katalogów | 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 liczby obiektówQuotaInMB , która ma być zarezerwowana dla zrzutów awaryjnych na maszynie wirtualnej. |
Elementy podrzędne | Opis |
---|---|
CrashDumpConfiguration | Wymagane. 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 zbieranie zawartości katalogu, dzienniki żądań dostępu usług IIS, które nie powiodły się i/lub dzienniki usług IIS.
Opcjonalny atrybut scheduledTransferPeriod . Zobacz wyjaśnienie wcześniej.
Elementy podrzędne | Opis |
---|---|
Dzienniki usług IIS | Uwzględnienie 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 | Uwzględnienie 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 Web.config. |
Datasources | Lista katalogów do monitorowania. |
DataSources, element
Drzewo: Katalog główny — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Katalogi — DataSources
Lista katalogów do monitorowania.
Elementy podrzędne | Opis |
---|---|
DirectoryConfiguration | Wymagane. Wymagany atrybut: containerName — nazwa kontenera obiektów blob na koncie usługi Azure Storage, które mają być używane do przechowywania plików dziennika. |
DirectoryConfiguration, element
Drzewo: Root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Katalogi — DataSources — DirectoryConfiguration
Może zawierać element Bezwzględny lub LocalResource , ale nie oba.
Elementy podrzędne | Opis |
---|---|
Bezwzględna | Ś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 kolekcję zdarzeń ETW od dostawców opartych na źródłach zdarzeń i/lub etW manifestu.
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 | Atrybut opcjonalny: eventDestination — nazwa tabeli do przechowywania zdarzeń w |
Zdarzenie | Wymagany atrybut: id — identyfikator zdarzenia. Atrybut opcjonalny: eventDestination — nazwa tabeli do przechowywania zdarzeń w |
EtwManifestProviderConfiguration, element
Drzewo: Root — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders — EtwManifestProviderConfiguration
Elementy podrzędne | Opis |
---|---|
Defaultevents | Atrybut opcjonalny: eventDestination — nazwa tabeli do przechowywania zdarzeń w |
Zdarzenie | Wymagany atrybut: id — identyfikator zdarzenia. Atrybut opcjonalny: 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 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 jest używana zarówno do wysyłania metryk niestandardowych, jak i dodawania właściwości resourceID do danych wysyłanych do usługi Event Hubs. Pamiętaj, że musisz dodać właściwość resourceId w elemecie Metrics , jeśli zdarzenia przekazane do usługi Event Hubs mają identyfikator zasobu.
Elementy podrzędne | Opis |
---|---|
MetricAggregation | Wymagany atrybut: scheduledTransferPeriod — interwał między zaplanowanym transferem do magazynu zaokrąglonym w górę 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.
Atrybut opcjonalny:
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 — jak często należy próbkować licznik. Atrybut opcjonalny: unit — jednostka miary licznika. Wartości są dostępne w klasie UnitType |
Zlewozmywaki | Dodano element 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. Pamiętaj, że musisz 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 zbieranie dzienników zdarzeń systemu Windows.
Opcjonalny atrybut scheduledTransferPeriod . Zobacz wyjaśnienie wcześniej.
Element podrzędny | Opis |
---|---|
DataSource | Dzienniki zdarzeń systemu Windows do zebrania. Wymagany atrybut: name — zapytanie XPath opisujące zdarzenia systemu Windows do zebrania. 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 element w wersji 1.5. Opcjonalny. Wskazuje lokalizację ujścia, aby również wysyłać dane diagnostyczne dla wszystkich elementów podrzędnych, które obsługują 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 | Typ | 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 | Ciąg | Opcjonalny. Określa minimalny poziom ważności dla wpisów dziennika, które są przenoszone. Wartość domyślna to Niezdefiniowane, 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 | Długość | Opcjonalny. Określa interwał między zaplanowanymi transferami danych zaokrąglonymi w górę do najbliższej minuty. Wartość domyślna to PT0S. |
Zlewozmywaki | ciąg | Dodano element 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. Pamiętaj, że musisz 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 element 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 do i konfiguracja skojarzona z tymi lokalizacjami.
Nazwa elementu | Opis |
---|---|
Ujście | Zobacz opis w innym miejscu na tej stronie. |
Element ujścia
Drzewo: Root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — SinksConfig
Dodano w wersji 1.5.
Definiuje lokalizacje do wysyłania danych diagnostycznych. Na przykład usługa Application Insights.
Atrybut | Typ | Opis |
---|---|---|
Nazwa | ciąg | Ciąg identyfikujący nazwę ujścia. |
Element | Typ | Opis |
---|---|---|
Application Insights | ciąg | 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 | ciąg | Jeden dla każdego dodatkowego filtrowania przesyłanego strumieniowo |
Channel, element
Drzewo: Root — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sinks — Kanały
Dodano w wersji 1.5.
Definiuje filtry strumieni danych dziennika przechodzących przez ujście.
Element | Typ | Opis |
---|---|---|
Kanał | ciąg | Zobacz opis w innym miejscu na tej stronie. |
Channel, element
Drzewo: Katalog główny — DiagnostykaKonfiguracja — PublicConfig — WadCFG — SinksConfig — Sink — Kanały — Kanał
Dodano w wersji 1.5.
Definiuje lokalizacje do wysyłania danych diagnostycznych. Na przykład usługa Application Insights.
Atrybuty | Typ | Opis |
---|---|---|
Loglevel | ciąg | 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. |
Nazwa | ciąg | Unikatowa nazwa kanału do odwoływania się do |
PrivateConfig, element
Drzewo: Katalog główny — DiagnostykaKonfiguracja — PrivateConfig
Dodano w wersji 1.3.
Opcjonalne
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 dostęp do konta magazynu. -sasToken (dodano 1.8.1) — możesz 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: Katalog główny — DiagnostykaKonfiguracja — IsEnabled
Boolean. 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 w formacie XML.
JSON
Funkcja 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 Resource Manager, program PowerShell i program Visual Studio.
Uwaga
Publiczna definicja ujścia 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 w celu wypełnienia 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 w przypadku 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
Publiczna definicja ujścia 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 do Resource Manager Virtual Machines 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 Cloud Services. W przypadku maszyn wirtualnych Resource Manager i vmSS można wykluczyć definicję usługi Azure Monitor w prywatnym elemecie konfiguracji.