Отправка данных из расширения диагностики Windows Azure в концентраторы событий Azure

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

Поддерживаемые данные

Данные, собранные из гостевой операционной системы, которые можно отправить в концентраторы событий, включают следующее. Другие источники данных, собираемые WAD, включая журналы IIS и аварийные дампы, нельзя отправлять в концентраторы событий.

  • Трассировка событий Windows (ETW)
  • Счетчики производительности
  • Журналы событий Windows, включая журналы приложений в журнале событий Windows
  • Журналы инфраструктуры системы диагностики Azure

Предварительные требования

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

См. статью Установка и настройка расширения диагностики Windows Azure (WAD) для получения информации о различных вариантах включения и настройки расширения диагностики и Схемы конфигурации Диагностики Azure для получения справки по схеме конфигурации. В оставшейся части этой статьи будет описано, как использовать эту конфигурацию для отправки данных в концентратор событий.

Служба Диагностики Azure всегда отправляет журналы и метрики в учетную запись хранилища Azure. Можно настроить один или несколько приемников данных, которые отправляют данные в дополнительные расположения. Каждый приемник определяется элементом SinksConfig общедоступной конфигурации с конфиденциальной информацией в частной конфигурации. В этой конфигурации концентраторов событий используются значения из следующей таблицы.

Свойство Описание
Имя Описательное имя для приемника. Используется в конфигурации, чтобы указать, какие источники данных следует отправлять в приемник.
Url URL-адрес концентратора событий в формате <event-hubs-namespace>.servicebus.windows.net/<event-hub-name>.
SharedAccessKeyName Имя политики общего доступа для концентратора событий, в котором доступна, как минимум, возможность отправки.
SharedAccessKey Первичный или вторичный ключ из политики общего доступа для концентратора событий.

Ниже приведены примеры общедоступных и частных конфигураций. Это минимальная конфигурация с одним счетчиком производительности и журналом событий, иллюстрирующими настройку и использование приемника данных концентратора событий. Более сложный пример см. в статье Схема конфигурации системы Диагностики Azure.

Открытая конфигурация

{
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 5120,
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT3M"
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                    "DataSource": [
                    {
                        "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "myEventHub",
                    "EventHub": {
                        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule"
                    }
                }
            ]
        }
    },
    "StorageAccount": "mystorageaccount",
}

Закрытая конфигурация

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "EventHub": {
        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    }
}

Варианты настройки

Чтобы отправить данные в приемник данных, нужно задать атрибут sinks на узле источника данных. Место расположения атрибута sinks определяется областью назначения. В следующем примере атрибут sinks определен для узла PerformanceCounters, что приведет к отправке всех дочерних счетчиков производительности в концентратор событий.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "MyEventHub",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        }
    ]
}

В следующем примере атрибут sinks применяется непосредственно к трем счетчикам, что приводит к отправке в концентратор событий только этих счетчиков производительности.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Rejected",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Queued",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        }
    ]
}

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

Можно использовать различные методы проверки отправки данных в концентратор событий. Простой способ — использовать захват через концентраторы событий, как описано в статье Захват событий через концентраторы событий Azure в хранилище BLOB-объектов Azure или в Azure Data Lake Storage.

Устранение неполадок приемников Центров событий

  • Взгляните на таблицу хранилища Azure WADDiagnosticInfrastructureLogsTable, которая содержит журналы и ошибки для самой службы Диагностики Azure. Для этого можно использовать, например, обозреватель хранилищ Azure. Подключитесь к соответствующей учетной записи хранения, просмотрите эту таблицу и выполните запрос по метке времени за последние 24 часа. С помощью этого инструмента можно экспортировать информацию в CSV-файл и открыть его в таком приложении, как Microsoft Excel. Excel упрощает поиск строк телефонных карточек, таких как EventHubs, чтобы узнать, какая обнаружена ошибка.

  • Убедитесь в том, что концентратор событий успешно подготовлен. Все сведения о подключении в разделе конфигурации PrivateConfig должны соответствовать значениям вашего ресурса, отображаемым на портале. Убедитесь, что на портале определена политика SAS (в примере SendRule) и предоставлено разрешение Отправка.

Следующие шаги