Schema der Diagnoseerweiterung für Windows

Die Azure-Diagnoseerweiterung ist ein Agent in Azure Monitor, der Überwachungsdaten vom Gastbetriebssystem und den Workloads von Azure-Computeressourcen sammelt. In diesem Artikel wird das Schema erläutert, das zur Konfiguration der Diagnoseerweiterung auf virtuellen Windows-Computern und anderen Computeressourcen verwendet wird.

Hinweis

Das Schema in diesem Artikel gilt für Version 1.3 und höher (Azure SDK 2.4 und höher). Neuere Konfigurationsabschnitte enthalten einen Kommentar mit der Version, in der sie hinzugefügt wurden. Version 1.0 und 1.2 des Schemas wurden archiviert und sind nicht mehr verfügbar.

Schema der öffentlichen Konfigurationsdatei

Laden Sie die Schemadefinition für die öffentliche Konfigurationsdatei mit dem folgenden PowerShell-Befehl herunter:

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

Allgemeine Attributtypen

Das scheduledTransferPeriod-Attribut wird in mehreren Elementen angezeigt. Es handelt sich um das Intervall zwischen geplanten Datenübertragungen an den Speicher (minutengenau gerundet). Der Wert ist ein Dauer-Datentyp im XML-Format.

DiagnosticsConfiguration-Element

Tree: Root – DiagnosticsConfiguration

Hinzugefügt in Version 1.3.

Das Element der obersten Ebene der Diagnosekonfigurationsdatei

Attribute xmlns: Der XML-Namespace für die Diagnosekonfigurationsdatei ist:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration

Untergeordnete Elemente BESCHREIBUNG
PublicConfig Erforderlich. Siehe Beschreibung an anderer Stelle auf dieser Seite.
PrivateConfig Optional. Siehe Beschreibung an anderer Stelle auf dieser Seite.
IsEnabled Boolesch. Siehe Beschreibung an anderer Stelle auf dieser Seite.

PublicConfig-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig

Beschreibt die öffentliche Diagnosekonfiguration

Untergeordnete Elemente BESCHREIBUNG
WadCfg Erforderlich. Siehe Beschreibung an anderer Stelle auf dieser Seite.
StorageAccount Der Name des Azure Storage-Kontos zum Speichern der Daten. Kann auch als Parameter angegeben werden, wenn das Cmdlet „Set-AzureServiceDiagnosticsExtension“ ausgeführt wird.
StorageType Kann Table, Blob oder TableAndBlob sein. Table ist der Standardwert. Wenn TableAndBlob gewählt wird, werden die Diagnosedaten zwei Mal geschrieben – ein Mal in jeden Typ.
LocalResourceDirectory Das Verzeichnis auf dem virtuellen Computer, auf dem der Überwachungs-Agent Ereignisdaten speichert. Falls nicht anders festgelegt, wird das Standardverzeichnis verwendet:

Für eine Worker-/Webrolle: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\

Für einen virtuellen Computer: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion>

Erforderliche Attribute:

- path: Das Verzeichnis auf dem System, das von der Azure-Diagnose verwendet wird

- expandEnvironment: Steuert, ob Umgebungsvariablen im Pfadnamen erweitert werden

WadCFG-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG

Identifiziert und konfiguriert die Telemetriedaten, die gesammelt werden sollen.

DiagnosticMonitorConfiguration-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration

Erforderlich

Attributes BESCHREIBUNG
overallQuotaInMB Der maximale lokale Speicherplatz, der von den verschiedenen Typen von Diagnosedaten genutzt werden kann, die von der Azure-Diagnose erfasst werden. Die Standardeinstellung lautet 4.096 MB.
useProxyServer Konfigurieren Sie die Azure-Diagnose, um die Proxyservereinstellungen den IE-Einstellungen entsprechend zu verwenden.
Senken Hinzugefügt in 1.5. Optional. Verweist auf einen Senkenspeicherort, um auch Diagnosedaten für alle untergeordneten Elemente zu senden, die Senken unterstützen. Senkenbeispiele sind Application Insights oder Event Hubs. Beachten Sie, dass Sie die Eigenschaft resourceId unter dem Element Metrics hinzufügen müssen, wenn in Event Hubs hochgeladene Ereignisse über eine Ressourcen-ID verfügen sollen.



Untergeordnete Elemente BESCHREIBUNG
CrashDumps Siehe Beschreibung an anderer Stelle auf dieser Seite.
DiagnosticInfrastructureLogs Aktivieren Sie die Sammlung der Protokolle, die von der Azure-Diagnose generiert wurde. Die Protokolle der Diagnoseinfrastruktur sind hilfreich für die Problembehandlung des Diagnosesystems selbst. Optionale Attribute sind:

- scheduledTransferLogLevelFilter: Konfiguriert den minimalen Schweregrad der erfassten Protokolle.

- scheduledTransferPeriod: Das Intervall zwischen geplanten Datenübertragungen an den Speicher (minutengenau gerundet). Der Wert ist ein Dauer-Datentyp im XML-Format.
Verzeichnisse Siehe Beschreibung an anderer Stelle auf dieser Seite.
EtwProviders Siehe Beschreibung an anderer Stelle auf dieser Seite.
Metriken Siehe Beschreibung an anderer Stelle auf dieser Seite.
PerformanceCounters Siehe Beschreibung an anderer Stelle auf dieser Seite.
WindowsEventLog Siehe Beschreibung an anderer Stelle auf dieser Seite.
DockerSources Siehe Beschreibung an anderer Stelle auf dieser Seite.

CrashDumps-Element

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

Aktivieren Sie die Sammlung der Absturzabbilder.

Attributes BESCHREIBUNG
containerName Optional. Der Name des Blobcontainers in Ihrem Azure Storage-Konto, der zum Speichern der Absturzabbilder verwendet wird
crashDumpType Optional. Konfiguriert die Azure-Diagnose für die Erfassung von kleinen oder vollständigen Absturzabbildern.
directoryQuotaPercentage Optional. Konfiguriert den Prozentsatz der overallQuotaInMB, der für Absturzabbilder auf dem virtuellen Computer reserviert werden soll.
Untergeordnete Elemente BESCHREIBUNG
CrashDumpConfiguration Erforderlich. Definiert die Konfigurationswerte für jeden Prozess.

Das folgende Attribut ist ebenso erforderlich:

processName: Der Name des Prozesses, für den die Azure-Diagnose ein Absturzabbild erfassen soll

Directories-Element

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

Ermöglicht das Sammeln der Inhalte eines Verzeichnisses, der IIS-Zugriffsfehlerprotokolle und/oder der IIS-Protokolle.

Optionales scheduledTransferPeriod-Attribut. Siehe Erklärung weiter oben.

Untergeordnete Elemente BESCHREIBUNG
IISLogs Das Einbeziehen dieses Elements in die Konfiguration ermöglicht die Erfassung von IIS-Protokollen:

containerName: Der Name des Blobcontainers in Ihrem Azure Storage-Konto, der zum Speichern der IIS-Protokolle verwendet wird
FailedRequestLogs Das Einbeziehen dieses Elements in die Konfiguration ermöglicht die Erfassung der Protokolle zu fehlgeschlagenen Anfragen an die IIS-Website oder -Anwendung. Zur Aktivierung müssen Sie auch die Verfolgungsoptionen in Web.config unter system.WebServer festlegen.
DataSources Eine Liste der zu überwachenden Verzeichnisse

DataSources-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Directories – DataSources

Eine Liste der zu überwachenden Verzeichnisse

Untergeordnete Elemente BESCHREIBUNG
DirectoryConfiguration Erforderlich. Erforderliches Attribut:

containerName: Der Name des Blobcontainers in Ihrem Azure Storage-Konto, der zum Speichern der Protokolldateien verwendet wird

DirectoryConfiguration-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Directories – DataSources – DirectoryConfiguration

Kann das Element Absolute oder LocalResource enthalten, aber nicht beide.

Untergeordnete Elemente BESCHREIBUNG
Absolute Der absolute Pfad zum Verzeichnis, das überwacht werden soll Die folgenden Attribute sind erforderlich:

- Path: Der absolute Pfad zum Verzeichnis, das überwacht werden soll

- expandEnvironment: Konfiguriert, ob die Umgebungsvariablen im Pfad erweitert werden.
LocalResource Der Pfad in Relation zu einer lokalen Ressource, die überwacht werden soll. Erforderliche Attribute:

- Name: Die lokale Ressource, die das zu überwachende Verzeichnis enthält

- relativePath: Der Pfad in Relation zum Namen, der das zu überwachende Verzeichnis enthält

EtwProviders-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – EtwProviders

Konfiguriert die Erfassung der ETW-Ereignisse von EventSource und/oder der ETW-Manifest-basierten Anbieter

Untergeordnete Elemente BESCHREIBUNG
EtwEventSourceProviderConfiguration Konfiguriert die Erfassung von Ereignissen, die über die EventSource-Klasse generiert wurden. Erforderliches Attribut:

provider: Der Klassenname des EventSource-Ereignisses

Optionale Attribute sind:

- scheduledTransferLogLevelFilter: Der minimale Schweregrad, der in Ihr Speicherkonto übertragen wird

- scheduledTransferPeriod: Das Intervall zwischen geplanten Datenübertragungen an den Speicher (minutengenau gerundet). Der Wert ist ein Dauer-Datentyp im XML-Format.
EtwManifestProviderConfiguration Erforderliches Attribut:

provider: Die GUID des Ereignisanbieters

Optionale Attribute sind:

- scheduledTransferLogLevelFilter: Der minimale Schweregrad, der in Ihr Speicherkonto übertragen wird

- scheduledTransferPeriod: Das Intervall zwischen geplanten Datenübertragungen an den Speicher (minutengenau gerundet). Der Wert ist ein Dauer-Datentyp im XML-Format.

EtwEventSourceProviderConfiguration-Element

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

Konfiguriert die Erfassung von Ereignissen, die über die EventSource-Klasse generiert wurden.

Untergeordnete Elemente BESCHREIBUNG
DefaultEvents Optionales Attribut:

eventDestination: Der Name der Tabelle zum Speichern der Ereignisse
Event Erforderliches Attribut:

id: Die ID des Ereignisses

Optionales Attribut:

eventDestination: Der Name der Tabelle zum Speichern der Ereignisse

EtwManifestProviderConfiguration-Element

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

Untergeordnete Elemente BESCHREIBUNG
DefaultEvents Optionales Attribut:

eventDestination: Der Name der Tabelle zum Speichern der Ereignisse
Event Erforderliches Attribut:

id: Die ID des Ereignisses

Optionales Attribut:

eventDestination: Der Name der Tabelle zum Speichern der Ereignisse

Metrics-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Metrics

Ermöglicht Ihnen das Generieren einer Leistungsindikatortabelle, die für schnelle Abfragen optimiert ist. Jeder Leistungsindikator, der im PerformanceCounters-Element definiert ist, wird in der Metriktabelle zusätzlich zur Leistungsindikatortabelle gespeichert.

Das resourceId-Attribut muss angegeben werden. Die Ressourcen-ID des virtuellen Computers oder der VM-Skalierungsgruppe, auf dem bzw. in der Sie die Azure-Diagnose bereitstellen. Rufen Sie resourceID im Azure-Portal ab. Wählen Sie Durchsuchen>Ressourcengruppen><Name> aus. Klicken Sie auf die Kachel Eigenschaften, und kopieren Sie den Wert aus dem Feld ID. Die Eigenschaft „resourceID“ wird sowohl zum Senden von benutzerdefinierten Metriken als auch zum Hinzufügen einer resourceID-Eigenschaft zu Daten verwendet, die an Event Hubs gesendet werden. Beachten Sie, dass Sie die Eigenschaft resourceId unter dem Element Metrics hinzufügen müssen, wenn in Event Hubs hochgeladene Ereignisse über eine Ressourcen-ID verfügen sollen.

Untergeordnete Elemente BESCHREIBUNG
MetricAggregation Erforderliches Attribut:

scheduledTransferPeriod: Das Intervall zwischen geplanten Datenübertragungen an den Speicher (minutengenau gerundet). Der Wert ist ein Dauer-Datentyp im XML-Format.

PerformanceCounters-Element

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

Ermöglicht das Sammeln von Leistungsindikatoren.

Optionales Attribut:

Optionales scheduledTransferPeriod-Attribut. Siehe Erklärung weiter oben.

Untergeordnetes Element BESCHREIBUNG
PerformanceCounterConfiguration Die folgenden Attribute sind erforderlich:

- counterSpecifier: Der Name des Leistungsindikators Beispiel: \Processor(_Total)\% Processor Time. Führen Sie zum Abrufen einer Liste der Leistungsindikatoren auf Ihrem Host den Befehl typeperf aus.

- sampleRate: Gibt an, wie oft Stichproben für den Indikator erstellt werden.

Optionales Attribut:

unit: Die Maßeinheit des Indikators Die Werte sind in der UnitType-Klasse verfügbar.
Senken Hinzugefügt in 1.5. Optional. Verweist auf einen Senkenspeicherort, um auch Diagnosedaten zu senden. Beispiel: Azure Monitor oder Event Hubs. Beachten Sie, dass Sie die Eigenschaft resourceId unter dem Element Metrics hinzufügen müssen, wenn in Event Hubs hochgeladene Ereignisse über eine Ressourcen-ID verfügen sollen.

WindowsEventLog-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – WindowsEventLog

Ermöglicht das Sammeln von Windows-Ereignisprotokollen.

Optionales scheduledTransferPeriod-Attribut. Siehe Erklärung weiter oben.

Untergeordnetes Element BESCHREIBUNG
DataSource Die Windows-Ereignisprotokolle, die erfasst werden sollen. Erforderliches Attribut:

name: Die XPath-Abfrage, die die zu erfassenden Windows-Ereignisse beschreibt. Beispiel:

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

Zum Erfassen aller Ereignisse geben Sie „*“ ein.
Senken Hinzugefügt in 1.5. Optional. Verweist auf einen Senkenspeicherort, um auch Diagnosedaten für alle untergeordneten Elemente zu senden, die Senken unterstützen. Senkenbeispiele sind Application Insights oder Event Hubs.

Logs-Element

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

Vorhanden in Version 1.0 und 1.1. Nicht vorhanden in 1.2. Wieder vorhanden in 1.3.

Definiert die Pufferkonfiguration für grundlegende Azure-Protokolle.

attribute type BESCHREIBUNG
bufferQuotaInMB unsignedInt Optional. Gibt die Höchstmenge des Dateisystemspeichers an, der für die angegebenen Daten verfügbar ist.

Die Standardeinstellung ist 0.
scheduledTransferLogLevelFilter string Optional. Gibt den minimalen Schweregrad für Protokolleinträge an, die übertragen werden. Der Standardwert ist Undefined, der alle Protokolle überträgt. Weitere mögliche Werte (meiste Informationen bis wenigste Informationen) sind Verbose, Information, Warning, Error und Critical.
scheduledTransferPeriod duration Optional. Gibt das Intervall zwischen geplanten Datenübertragungen an (minutengenau gerundet).

Die Standardeinstellung lautet „PT0S“.
Senken string Hinzugefügt in 1.5. Optional. Verweist auf einen Senkenspeicherort, um auch Diagnosedaten zu senden. Beispielsweise Application Insights oder Event Hubs. Beachten Sie, dass Sie die Eigenschaft resourceId unter dem Element Metrics hinzufügen müssen, wenn in Event Hubs hochgeladene Ereignisse über eine Ressourcen-ID verfügen sollen.

DockerSources

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – DockerSources

In 1.9 hinzugefügt.

Elementname BESCHREIBUNG
Stats Weist das System an, Statistikinformationen für Docker-Container zu sammeln.

SinksConfig-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – SinksConfig

Eine Liste mit Standorten, an die die Diagnosedaten und die diesen Standorten zugeordnete Konfiguration gesendet werden soll.

Elementname BESCHREIBUNG
Senke Siehe Beschreibung an anderer Stelle auf dieser Seite.

Sink-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – SinksConfig – Sink

Hinzugefügt in Version 1.5.

Definiert die Standorte, an die die Diagnosedaten gesendet werden sollen. Beispiel: der Application Insights-Dienst.

attribute type BESCHREIBUNG
name Zeichenfolge Eine Zeichenfolge für den Senkennamen.
Element type BESCHREIBUNG
Application Insights Zeichenfolge Wird nur beim Senden von Daten an Application Insights verwendet. Enthält den Instrumentationsschlüssel für ein aktives Application Insights-Konto, für das Sie Zugriff besitzen.
Channels Zeichenfolge Einer für jeden zusätzlichen Filter, den Sie streamen

Channels-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – SinksConfig – Sink – Channels

Hinzugefügt in Version 1.5.

Definiert die Filter für Datenströme von Protokolldaten, die durch eine Senke übergeben werden.

Element type BESCHREIBUNG
Channel Zeichenfolge Siehe Beschreibung an anderer Stelle auf dieser Seite.

Channel-Element

Tree: Root – DiagnosticsConfiguration – PublicConfig – WadCFG – SinksConfig – Sink – Channels – Channel

Hinzugefügt in Version 1.5.

Definiert die Standorte, an die die Diagnosedaten gesendet werden sollen. Beispiel: der Application Insights-Dienst.

Attributes type BESCHREIBUNG
logLevel string Gibt den minimalen Schweregrad für Protokolleinträge an, die übertragen werden. Der Standardwert ist Undefined, der alle Protokolle überträgt. Weitere mögliche Werte (meiste Informationen bis wenigste Informationen) sind Verbose, Information, Warning, Error und Critical.
name string Ein eindeutiger Name des Kanals, auf den verwiesen wird

PrivateConfig-Element

Tree: Root – DiagnosticsConfiguration – PrivateConfig

Hinzugefügt in Version 1.3.

Optional

Speichert die privaten Details des Speicherkontos (Name, Schlüssel und Endpunkt). Diese Informationen werden an den virtuellen Computer gesendet, können aber nicht daraus abgerufen werden.

Untergeordnete Elemente BESCHREIBUNG
StorageAccount Das zu verwendende Speicherkonto. Die folgenden Attribute sind erforderlich:

- name: Der Name des Speicherkontos

- key: Der Schlüssel des Speicherkontos

- endpoint: Der Endpunkt für den Zugriff auf das Speicherkonto

-sasToken (in 1.8.1) – Sie können in der privaten Konfiguration ein SAS-Token anstelle eines Speicherkontoschlüssels angeben. Wenn er angegeben wird, wird der Speicherkontoschlüssel ignoriert.
Anforderungen für das SAS-Token:
– Es werden nur SAS-Kontotoken unterstützt
Die Diensttypen - b, t sind erforderlich.
Die Berechtigungen - a, c, u, w sind erforderlich.
Die Ressourcentypen - c, o sind erforderlich.
– Unterstützt nur das HTTPS-Protokoll
– Start und Ablaufzeit müssen gültig sein.

IsEnabled-Element

Tree: Root – DiagnosticsConfiguration – IsEnabled

Boolesch. Verwenden Sie true, um die Diagnose zu aktivieren, oder false, um die Diagnose zu deaktivieren.

Beispielkonfiguration

Im Folgenden finden Sie eine vollständige Beispielkonfiguration für die Diagnoseerweiterung für Windows sowohl in JSON als auch in XML.

JSON

PublicConfig und PrivateConfig sind getrennt, da sie in den meisten JSON-Nutzungsszenarien als unterschiedliche Variablen übergeben werden. Zu diesen Szenarien gehören Resource Manager-Vorlagen, PowerShell und Visual Studio.

Hinweis

Die öffentliche Konfiguration der Azure Monitor-Senkendefinition verfügt über zwei Eigenschaften: resourceId und region. Diese sind nur für klassische virtuelle Computer und klassische Clouddienste erforderlich. Die Eigenschaft region sollte nicht für andere Ressourcen verwendet werden. Die Eigenschaft resourceId wird auf virtuellen ARM-Computern genutzt, um das Feld „resourceID“ in den in Event Hubs hochgeladenen Protokollen aufzufüllen.

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

Hinweis

Die private Konfiguration der Azure Monitor-Senkendefinition verfügt über zwei Eigenschaften: PrincipalId und Secret. Diese sind nur für klassische virtuelle Computer und klassische Clouddienste erforderlich. Diese Eigenschaften sollten für andere Ressourcen nicht verwendet werden.

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

Hinweis

Die öffentliche Konfiguration der Azure Monitor-Senkendefinition verfügt über zwei Eigenschaften, „resourceId“ und „region“. Diese sind nur für klassische virtuelle Computer und klassische Clouddienste erforderlich. Diese Eigenschaften sollten nicht für Resource Manager Virtual Machines oder VM-Skalierungsgruppen verwendet werden. Es gibt auch ein zusätzliches Element der privaten Konfiguration für die Azure Monitor-Senke, das eine Prinzipal-ID und ein Geheimnis übergibt. Dies ist nur für klassische virtuelle Computer und klassische Clouddienste erforderlich. Für Resource Manager Virtual Machines und VMSS kann die Azure Monitor-Definition im privaten Konfigurationselement ausgeschlossen werden.