Бөлісу құралы:


Схема расширения диагностики Windows

Расширение "Диагностика Azure" — это агент в Azure Monitor, собирающий данные мониторинга из гостевой операционной системы виртуальной машине и рабочих нагрузок вычислительных ресурсов Azure. В этой статье подробно описывается схема, используемая для настройки расширения диагностики на виртуальных машинах Windows и других вычислительных ресурсов.

Примечание.

Схема в этой статье действительна для версий 1.3 и более новых (пакет SDK Azure 2.4 и более поздние версии). Новые разделы конфигурации снабжены комментариями, указывающими, в какой версии они были добавлены. Версия 1.0 и 1.2 схемы были заархивированы и больше не доступны.

Схема файла открытой конфигурации

Скачайте общедоступное определение схемы файла конфигурации, выполнив следующую команду PowerShell:

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

Общие типы атрибутов

Атрибут scheduledTransferPeriod присутствует в нескольких элементах. Это интервал между запланированными передачами в службу хранилища, округленный с точностью до ближайшей минуты. Значение относится к типу данных XML "Duration".

Элемент DiagnosticsConfiguration

Дерево: корневой элемент — DiagnosticsConfiguration

Добавлен в версии 1.3.

Элемент верхнего уровня в файле конфигурации диагностики.

Атрибут: xmlns. Пространство имен XML для файла конфигурации диагностики:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration

Дочерние элементы Description
PublicConfig Обязательный. Ознакомьтесь с описанием в другом разделе на этой странице.
PrivateConfig Необязательно. Ознакомьтесь с описанием в другом разделе на этой странице.
IsEnabled Логическое значение. Ознакомьтесь с описанием в другом разделе на этой странице.

Элемент PublicConfig

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig

Описывает общедоступную конфигурацию диагностики.

Дочерние элементы Description
WadCfg Обязательный. Ознакомьтесь с описанием в другом разделе на этой странице.
StorageAccount Имя учетной записи хранения Azure для хранения данных. Может также быть указан как параметр при выполнении командлета Set-AzureServiceDiagnosticsExtension.
StorageType Может быть таблицей, большим двоичным объектом или TableAndBlob. Таблица — это значение по умолчанию. При выборе TableAndBlob диагностические данные записываются дважды (по одному разу на каждый тип).
LocalResourceDirectory Каталог на виртуальной машине, в котором Monitoring Agent хранит данные событий. Если этот параметр не задан, используется каталог по умолчанию:

для рабочей роли или веб-роли: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\

для виртуальной машины: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion>

Ниже перечислены обязательные атрибуты.

- path: каталог в системе для использования системой диагностики Azure.

- expandEnvironment: позволяет раскрыть переменные среды в пути.

Элемент WadCFG

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig, WadCFG

Позволяет определить и настроить сбор данных телеметрии.

Элемент DiagnosticMonitorConfiguration

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig, WadCFG, DiagnosticMonitorConfiguration

Обязательное поле

Атрибуты Description
overallQuotaInMB Максимальный объем пространства на локальном жестком диске, доступный для диагностических данных различного типа, собранных системой диагностики Azure. Значение по умолчанию составляет 4096 МБ.
useProxyServer Настройте Диагностика Azure для использования параметров прокси-сервера, заданных в параметрах Internet Explorer.
Приемники Добавлено в версии 1.5. Необязательно. Указывает расположение приемника для отправки диагностических данных для всех дочерних элементов с соответствующей поддержкой. Пример приемника — Application Insights или Центры событий Azure. Обратите внимание, что необходимо добавить свойство resourceId в элемент Метрика, если требуется, чтобы события, отправляемые в Центры событий, имели идентификатор ресурса.



Дочерние элементы Description
CrashDumps Ознакомьтесь с описанием в другом разделе на этой странице.
DiagnosticInfrastructureLogs Включает сбор журналов, создаваемых системой диагностикой Azure. Журналы инфраструктуры диагностики удобны для устранения неполадок в самой системе диагностики. Необязательные атрибуты:

- scheduledTransferLogLevelFilter: задает минимальный уровень серьезности собираемых журналов.

- scheduledTransferPeriod: интервал между запланированными передачами в службу хранилища, округленный с точностью до ближайшей минуты. Значение относится к типу данных XML "Duration".
Каталоги Ознакомьтесь с описанием в другом разделе на этой странице.
EtwProviders Ознакомьтесь с описанием в другом разделе на этой странице.
Метрики Ознакомьтесь с описанием в другом разделе на этой странице.
PerformanceCounters Ознакомьтесь с описанием в другом разделе на этой странице.
WindowsEventLog Ознакомьтесь с описанием в другом разделе на этой странице.
DockerSources Ознакомьтесь с описанием в другом разделе на этой странице.

Элемент CrashDumps

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — CrashDumps

Включает сбор аварийных дампов.

Атрибуты Description
containerName Необязательно. Имя контейнера больших двоичных объектов в вашей учетной записи хранения Azure, используемого для хранения аварийных дампов.
crashDumpType Необязательно. Позволяет настроить систему диагностики Azure для сбора мини-дампов или полных дампов.
directoryQuotaPercentage Необязательно. Позволяет настроить процент от значения overallQuotaInMB, резервируемый для аварийных дампов на виртуальной машине.
Дочерние элементы Description
CrashDumpConfiguration Обязательный. Определяет значения конфигурации для каждого процесса.

Следующий атрибут также является обязательным:

processName: имя процесса, для которого системе диагностики Azure нужно собирать аварийные дампы.

Элемент Directories

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Directories

Включает сбор содержимого каталога, журналов невыполненных запросов на вход IIS и (или) журналов IIS.

Необязательный атрибут scheduledTransferPeriod. Ознакомьтесь с описанием выше.

Дочерние элементы Description
IISLogs Если добавить этот элемент в конфигурацию, то будет включен сбор журналов IIS.

containerName: имя контейнера больших двоичных объектов в вашей учетной записи хранения Azure, используемого для хранения журналов IIS.
FailedRequestLogs Если добавить этот элемент в конфигурацию, то будет включен сбор журналов о невыполненных запросах к сайту или приложению IIS. Вам также необходимо включить параметры трассировки в разделе system.WebServer файла Web.config.
Коллекция DataSources Задает список отслеживаемых каталогов.

DataSources, элемент

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Directories — DataSources

Задает список отслеживаемых каталогов.

Дочерние элементы Description
DirectoryConfiguration Обязательный. Обязательный атрибут:

containerName: имя контейнера больших двоичных объектов в вашей учетной записи хранения Azure, используемого для хранения файлов журнала.

Элемент DirectoryConfiguration

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Directories — DataSources — DirectoryConfiguration

Может содержать только один из элементов Absolute и LocalResource, но не оба.

Дочерние элементы Description
Absolute Абсолютный путь к отслеживаемому каталогу. Ниже приведены обязательные атрибуты.

- Path: абсолютный путь к отслеживаемому каталогу.

- expandEnvironment: позволяет раскрыть переменные среды, указанные в пути.
LocalResource Путь относительно отслеживаемого локального ресурса. Ниже перечислены обязательные атрибуты.

- Name: локальный ресурс, который содержит каталог для отслеживания.

- relativePath: путь относительно значения Name, содержащего отслеживаемый каталог.

Элемент EtwProviders

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders

Настраивает сбор событий ETW (трассировка событий Windows) из поставщиков на основе EventSource и (или) манифеста ETW.

Дочерние элементы Description
EtwEventSourceProviderConfiguration Позволяет настроить сбор событий, создаваемых из класса EventSource. Обязательный атрибут:

provider: имя класса события EventSource.

Необязательные атрибуты:

- scheduledTransferLogLevelFilter: минимальный уровень серьезности события для переноса в вашу учетную запись хранения.

- scheduledTransferPeriod: интервал между запланированными передачами в службу хранилища, округленный с точностью до ближайшей минуты. Значение относится к типу данных XML "Duration".
EtwManifestProviderConfiguration Обязательный атрибут:

provider: GUID поставщика событий.

Необязательные атрибуты:

- scheduledTransferLogLevelFilter: минимальный уровень серьезности события для переноса в вашу учетную запись хранения.

- scheduledTransferPeriod: интервал между запланированными передачами в службу хранилища, округленный с точностью до ближайшей минуты. Значение относится к типу данных XML "Duration".

Элемент EtwEventSourceProviderConfiguration

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders — EtwEventSourceProviderConfiguration

Позволяет настроить сбор событий, создаваемых из класса EventSource.

Дочерние элементы Description
DefaultEvents Необязательный атрибут:

eventDestination: имя таблицы для хранения событий.
Событие Обязательный атрибут:

id: идентификатор события.

Необязательный атрибут:

eventDestination: имя таблицы для хранения событий.

Элемент EtwManifestProviderConfiguration

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — EtwProviders — EtwManifestProviderConfiguration

Дочерние элементы Description
DefaultEvents Необязательный атрибут:

eventDestination: имя таблицы для хранения событий.
Событие Обязательный атрибут:

id: идентификатор события.

Необязательный атрибут:

eventDestination: имя таблицы для хранения событий.

Элемент Metrics

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Metrics

Позволяет создать таблицу счетчиков производительности, которая оптимизирована для быстрых запросов. Каждый счетчик производительности, который определен в элементе PerformanceCounters, помимо таблицы счетчиков производительности хранится в таблице метрик.

Атрибут ResourceId является обязательным. Это идентификатор ресурса виртуальной машины или масштабируемого набора виртуальных машин, в котором развертывается система диагностики Azure. Значение resourceID можно получить на портале Azure. Выберите Обзор —>Группы ресурсов —><Имя>. Щелкните элемент Свойства и скопируйте значение поля Идентификатор. Это свойство "resourceID" используется для отправки пользовательских метрик и для добавления свойства "resourceID" в данные, отправляемые в Центры событий. Обратите внимание, что необходимо добавить свойство resourceId в элемент Метрика, если требуется, чтобы события, отправляемые в Центры событий, имели идентификатор ресурса.

Дочерние элементы Description
MetricAggregation Обязательный атрибут:

scheduledTransferPeriod: интервал между запланированными передачами в службу хранилища, округленный с точностью до ближайшей минуты. Значение относится к типу данных XML "Duration".

Элемент PerformanceCounters

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — PerformanceCounters

Включает сбор данных счетчиков производительности.

Необязательный атрибут:

Необязательный атрибут scheduledTransferPeriod. Ознакомьтесь с описанием выше.

Дочерний элемент Description
PerformanceCounterConfiguration Ниже приведены обязательные атрибуты.

- counterSpecifier — имя счетчика производительности. Например, \Processor(_Total)\% Processor Time. Чтобы получить список счетчиков производительности на узле, выполните команду typeperf.

- sampleRate: частота выборки для счетчика.

Необязательный атрибут:

unit: единица измерения счетчика. Значения доступны в классе UnitType
Приемники Добавлено в версии 1.5. Необязательно. Указывает расположение приемника для отправки диагностических данных. Например, Azure Monitor или Центры событий. Обратите внимание, что необходимо добавить свойство resourceId в элемент Метрика, если требуется, чтобы события, отправляемые в Центры событий, имели идентификатор ресурса.

Элемент WindowsEventLog

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — WindowsEventLog

Включает сбор журналов событий Windows.

Необязательный атрибут scheduledTransferPeriod. Ознакомьтесь с описанием выше.

Дочерний элемент Description
DataSource Собираемые журналы событий Windows. Обязательный атрибут:

name — запрос XPath, описывающий собираемые события Windows. Например:

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

Для сбора всех событий укажите "*".
Приемники Добавлено в версии 1.5. Необязательно. Указывает расположение приемника для отправки диагностических данных для всех дочерних элементов с соответствующей поддержкой. Пример приемника — Application Insights или Центры событий Azure.

Элемент Logs

Дерево:корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — Logs

Используется в версиях 1.0 и 1.1. Отсутствует в версии 1.2. Снова добавлен в версии 1.3.

Определяет конфигурацию буфера для базовых журналов Azure.

Атрибут Тип Описание
bufferQuotaInMB unsignedInt Необязательно. Указывает максимальный объем хранилища файловой системы, который доступен для указанных данных.

По умолчанию установлено значение 0.
scheduledTransferLogLevelFilter string Необязательно. Указывает минимальный уровень серьезности для передаваемых записей журнала. Значение по умолчанию — Undefined, при котором передаются все журналы. Другие возможные значения (в порядке убывания информативности): Verbose, Information, Warning, Error и Critical.
scheduledTransferPeriod duration Необязательно. Указывает интервал между запланированными передачами данных, округленный с точностью до ближайшей минуты.

По умолчанию используется значение PT0S.
Приемники string Добавлено в версии 1.5. Необязательно. Указывает расположение приемника для отправки диагностических данных. Например, Application Insights или Центры событий Azure. Обратите внимание, что необходимо добавить свойство resourceId в элемент Метрика, если требуется, чтобы события, отправляемые в Центры событий, имели идентификатор ресурса.

DockerSources

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — DiagnosticMonitorConfiguration — DockerSources

Добавлен в версии 1.9.

Имя элемента Description
Stats Указывает системе, что нужно собрать статистику для контейнеров Docker.

Элемент SinksConfig

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig

Содержит список расположений для отправки диагностических данных и конфигурацию, связанную с этими расположениями.

Имя элемента Description
Приемник Ознакомьтесь с описанием в другом разделе на этой странице.

Элемент Sink

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sink

Добавлен в версии 1.5.

Определяет расположение для отправки диагностических данных. Например, это может быть служба Application Insights.

Атрибут Тип Description
name строка Строка, определяющая имя приемника.
Элемент Тип Описание
Application Insights строка Используется только при отправке данных в Application Insights. Содержит ключ инструментирования для активной учетной записи Application Insights, к которой у вас есть доступ.
Каналы строка Указывается для каждой дополнительной фильтрации, используемой при потоковой передаче.

Элемент Channels

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sink — Channels

Добавлен в версии 1.5.

Определяет фильтры для потоков данных журнала, проходящих через приемник.

Элемент Тип Описание
Канал строка Ознакомьтесь с описанием в другом разделе на этой странице.

Элемент Channel

Дерево: корневой элемент — DiagnosticsConfiguration — PublicConfig — WadCFG — SinksConfig — Sink — Channels — Channel

Добавлен в версии 1.5.

Определяет расположение для отправки диагностических данных. Например, это может быть служба Application Insights.

Атрибуты Тип Описание
logLevel string Указывает минимальный уровень серьезности для передаваемых записей журнала. Значение по умолчанию — Undefined, при котором передаются все журналы. Другие возможные значения (в порядке убывания информативности): Verbose, Information, Warning, Error и Critical.
name string Уникальное имя для использования ссылки на канал.

Элемент PrivateConfig

Дерево: корневой элемент — DiagnosticsConfiguration — PrivateConfig

Добавлен в версии 1.3.

Необязательно

Хранит частные сведения об учетной записи хранения (имя, ключ и конечную точку). Эта информация отправляется на виртуальную машину, но извлечь ее из виртуальной машины невозможно.

Дочерние элементы Description
StorageAccount Используемая учетная запись хранения. Ниже приведены обязательные атрибуты.

- name: имя учетной записи хранения.

- key: ключ учетной записи хранения.

- endpoint: конечная точка для доступа к учетной записи хранения.

-sasToken (added 1.8.1): вы можете указать маркер SAS вместо ключа учетной записи хранения в закрытой конфигурации. Если предоставляется маркер SAS, ключ учетной записи хранения игнорируется.
Требования к маркеру SAS:
— поддерживает только маркер SAS учетной записи
Требуемые типы служб: - b, t.
Требуемые разрешения: - a, c, u, w.
Требуемые типы ресурсов: - c, o.
— поддерживает только протокол HTTPS
Время начала и окончания срока действия должно быть допустимым.

Элемент IsEnabled

Дерево: корневой элемент — DiagnosticsConfiguration — IsEnabled

Логическое значение. Используйте true, чтобы включить диагностику, или false, чтобы отключить ее.

Пример конфигурации

Ниже приведен полный пример конфигурации для расширения диагностики Windows, показанного как в JSON, так и в XML.

JSON

Элементы PublicConfig и PrivateConfig разделяются, так как в большинстве случаев использования JSON они передаются как различные переменные. К таким случаям относятся шаблоны Resource Manager, PowerShell и Visual Studio.

Примечание.

Определение открытой конфигурации субъекта Azure Monitor включает два свойства: resourceId и region. Для работы классических Виртуальных машин и классических облачных служб требуются только они. Свойство region не должно использоваться для других ресурсов, свойство resourceId используется на виртуальных машинах ARM для заполнения поля resourceID в журналах, передаваемых в Центры событий.

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

Примечание.

Определение закрытой конфигурации субъекта Azure Monitor включает два свойства: PrincipalId и Secret. Для работы классических Виртуальных машин и классических облачных служб требуются только они. Эти свойства не следует использовать для других ресурсов.

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

XML

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

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

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

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

        </Directories>  

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

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

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

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

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

      </DiagnosticMonitorConfiguration>  

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

  </WadCfg>  

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

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

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

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

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

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

Примечание.

Определение открытой конфигурации субъекта Azure Monitor включает два свойства: resourceId и region. Для работы классических Виртуальных машин и классических облачных служб требуются только они. Эти свойства не следует использовать для Виртуальных машин Resource Manager или масштабируемых наборов виртуальных машин. Также доступен дополнительный элемент закрытой конфигурации приемника Azure Monitor, который передает секрет и идентификатор субъекта. Для работы классических виртуальных машин и классических облачных служб требуются только они. Для работы виртуальных машин Resource Manager и масштабируемого набора виртуальных машин определение Azure Monitor в элементе закрытой конфигурации можно исключить.