Учебное пособие: Получение и запросы данных мониторинга в Azure Data Explorer

В этом руководстве показано, как загрузить данные из журналов диагностики и активности в кластер Azure Data Explorer без написания кода. С помощью этого простого метода приема можно быстро начать запросы к Azure Data Explorer для анализа данных.

В этом руководстве вы узнаете, как:

Примечание.

Создавайте все ресурсы в одном расположении или регионе Azure.

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

Поставщик данных Azure Monitor — метрики и журналы диагностики, а также журналы активности

Просмотрите и изучите данные, предоставляемые метриками диагностики Azure Monitor и журналами и журналами действий, в следующих разделах. Вы создаете конвейер приема на основе этих схем данных. Каждое событие в журнале содержит массив записей. Вы разделите этот массив записей далее в учебнике.

Примеры диагностических метрик и журналов, а также журналов действий

Служба Azure выдает диагностические метрики и журналы Azure, а также журналы действий. Эти журналы предоставляют данные о работе этой службы.

Пример метрик диагностики

Диагностические метрики агрегируют данные с интервалом времени в одну минуту. В следующем примере показана схема события метрики Azure Data Explorer по длительности запроса:

{
    "records": [
    {
        "count": 14,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-20T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    },
    {
        "count": 12,
        "total": 0,
        "minimum": 0,
        "maximum": 0,
        "average": 0,
        "resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
        "time": "2018-12-21T17:00:00.0000000Z",
        "metricName": "QueryDuration",
        "timeGrain": "PT1M"
    }
    ]
}

Настройка конвейера приема данных в Azure Data Explorer

Настройка конвейера Azure Data Explorer включает несколько этапов, в том числе создание таблиц и прием данных. Вы также можете работать с данными, сопоставлять и обновлять их.

Подключение к пользовательскому веб-интерфейсу Azure Data Explorer

В базе данных TestDatabase для Azure Data Explorer выберите пункт Запрос, чтобы открыть пользовательский веб-интерфейс Azure Data Explorer.

Страница запроса.

Создайте целевые таблицы

Структура журналов Azure Monitor не является табличной. Необходимо управлять данными и расширять каждое событие до одной или нескольких записей. Сохранение необработанных данных в промежуточной таблице с именем ActivityLogsRawRecords для журналов действий и DiagnosticRawRecords для диагностических метрик и журналов. В этот момент вы управляете и расширяете данные. Используя политику обновления, поглощая развернутые данные в таблицу ActivityLogs для журналов действий, DiagnosticMetrics для диагностических метрик и DiagnosticLogs для журналов диагностики. Этот процесс означает, что необходимо создать две отдельные таблицы для инжестирования журналов действий и три отдельные таблицы для инжестирования диагностических метрик и журналов.

С помощью пользовательского веб-интерфейса Azure Data Explorer создайте целевые таблицы в базе данных Azure Data Explorer.

Создание таблиц для метрик диагностики

  1. Создайте в базе данных TestDatabase таблицу с именем DiagnosticMetrics для хранения записей метрик диагностики. Используйте следующую .create table команду управления:

    .create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
    
  2. Выберите Выполнить, чтобы создать таблицу.

    Выполнить запрос.

  3. Создайте промежуточную таблицу данных с именем DiagnosticRawRecords в базе данных TestDatabase для обработки данных с помощью следующего запроса. Выберите Выполнить, чтобы создать таблицу.

    .create table DiagnosticRawRecords (Records:dynamic)
    
  4. Задайте нулевую политику хранения для промежуточной таблицы:

    .alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
    

Создание сопоставлений таблиц

Так как формат данных — json, вам необходимо создать сопоставление данных. Сопоставление json подключает каждый путь JSON к имени столбца таблицы. Если путь JSON имеет специальные символы, экранируйте их как ['Имя свойства']. Дополнительные сведения см. в статье Синтаксис JSONPath.

Сопоставьте метрики и журналы диагностики с таблицей

Используйте следующий запрос, чтобы сопоставить диагностические метрики и данные журнала с таблицей:

.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'

Создание политики обновления для данных журналов и метрик

Создание политики обновления данных для метрик диагностики

  1. Создайте функцию , которая расширяет коллекцию записей диагностических метрик, чтобы каждое значение в коллекции получало отдельную строку. Используйте оператор mv-expand:

    .create function DiagnosticMetricsExpand() {
       DiagnosticRawRecords
       | mv-expand events = Records
       | where isnotempty(events.metricName)
       | project
           Timestamp = todatetime(events['time']),
           ResourceId = tostring(events.resourceId),
           MetricName = tostring(events.metricName),
           Count = toint(events['count']),
           Total = todouble(events.total),
           Minimum = todouble(events.minimum),
           Maximum = todouble(events.maximum),
           Average = todouble(events.average),
           TimeGrain = tostring(events.timeGrain)
    }
    
  2. Добавьте политику обновления для целевой таблицы. Эта политика автоматически запускает запрос на все недавно полученные данные в промежуточной таблице данных DiagnosticRawRecords и возвращает результаты в таблицу "Диагностические метрики".

    .alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
    

Создание пространства имен Центров событий Azure

Параметры диагностики Azure позволяют экспортировать метрики и журналы в учетную запись хранения или в концентратор событий. В этом руководстве вы направляете метрики и логи через концентратор событий. Вы создаете пространство имен концентратора событий и концентратор событий для диагностических метрик и журналов, следуя следующим шагам. Azure Monitor создает концентратор событий insights-operational-logs для журналов действий.

  1. Создайте концентратор событий на портале Azure с помощью шаблона Azure Resource Manager. Чтобы выполнить остальные шаги из этой статьи, щелкните правой кнопкой мыши по кнопке Развернуть в Azure, а затем выберите Открыть в новом окне. Кнопка Развернуть в Azure перенаправляет вас на портал Azure.

    Кнопка развертывания в Azure.

  2. Создайте пространство имен Центров событий и концентратор событий для журналов диагностики. Узнайте, как создать пространство имен Центров событий.

  3. Заполните форму, указав следующую информацию. Сохраните значения по умолчанию для всех параметров, не указанных в следующей таблице.

    Параметр Рекомендуемое значение Description
    Подписка Ваша подписка Выберите подписку Azure, которую нужно использовать для своего концентратора событий.
    Группа ресурсов test-resource-group Создание группы ресурсов
    Местонахождение Выберите регион в соответствии со своими потребностями. Создайте пространство имен концентратора событий в том же расположении, в котором находятся другие ресурсы.
    Имя пространства имен AzureMonitoringData Выберите уникальное имя, идентифицирующее пространство имен.
    Имя концентратора событий DiagnosticData Концентратор событий находится в пространстве имен, предоставляющем уникальный контейнер области.
    Имя группы потребителей adxpipeline Создайте имя группы потребителей. Группы потребителей позволяют нескольким потребляющим приложениям иметь отдельное представление потока событий.

Подключение журналов и метрик Azure Monitor к концентратору событий

Теперь вам следует подключить к концентратору событий журналы и метрики диагностики, а также журналы действий.

Подключение журналов и метрик диагностики к концентратору событий

Выберите ресурс, из которого следует экспортировать метрики. Экспорт данных диагностики поддерживают ресурсы нескольких типов, в том числе пространство имен концентраторов событий, Azure Key Vault, Центр Интернета вещей и кластер Azure Data Explorer. В этом руководстве в качестве ресурса используйте кластер Azure Data Explorer. Вы можете просмотреть метрики производительности запросов и журналы результатов интеграции.

  1. Выберите свой кластер Kusto на портале Azure.

  2. Выберите элемент Параметры диагностики, а затем ссылку Включить диагностику.

    Параметры диагностики.

  3. Откроется панель Параметры диагностики. Выполните следующие шаги:

    1. Присвойте данным журнала диагностики имя ADXExportedData.

    2. В поле LOG установите флажки SucceededIngestion и FailedIngestion.

    3. В разделе Метрика установите флажок Производительность запроса.

    4. Установите флажок Передать в концентратор событий.

    5. Выберите Настроить.

      Область параметров диагностики.

  4. На панели Выбор концентратора событий настройте метод экспорта данных из журналов диагностики в созданный вами концентратор событий.

    1. В списке Выбрать пространство имен концентратора событий выберите AzureMonitoringData.
    2. В списке Выберите имя концентратора событий выберите DiagnosticData.
    3. В списке Выбрать имя политики концентратора событий выберите RootManagerSharedAccessKey.
    4. Нажмите ОК.
  5. Выберите Сохранить.

Наблюдать поток данных к узлам событий

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

    Концентраторы событий созданы.

  2. Просмотрите потоки данных к вашему концентратору событий:

    Данные концентратора событий.

Подключение концентратора событий к Azure Data Explorer

Теперь пора создать подключения к данным для журналов и метрик диагностики, а также журналов действий.

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

  1. В кластере Azure Data Explorer с именем kustodocs выберите в меню слева Базы данных.

  2. В окне Базы данных выберите базу данных TestDatabase.

  3. В меню слева выберите Прием данных.

  4. В окне Прием данных выберите + Добавить подключение к данным.

  5. В окне Подключение к данным введите следующую информацию:

    Подключение к данным концентратора событий.

  1. Примените следующие параметры в окне Подключение к данным.

    Источник данных:

    Параметр Рекомендуемое значение Описание поля
    Имя подключения к данным DiagnosticsLogsConnection Имя создаваемого подключения к обозревателю данных Azure.
    Пространство имен концентратора событий AzureMonitoringData Ранее выбранное вами имя, определяющее пространство имен.
    Концентратор событий DiagnosticData Созданный вами концентратор событий.
    Группа потребителей adxpipeline Группа потребителей, определенная в созданном вами концентраторе событий.

    Целевая таблица

    Существует два варианта маршрутизации: статическая и динамическая. В этом руководстве вы используете статическую маршрутизацию (по умолчанию), где указывается имя таблицы, формат данных и сопоставление. Не активируйте флажок My data includes routing info (Мои данные содержат сведения о маршрутизации).

    Параметр Рекомендуемое значение Описание поля
    Таблица DiagnosticRawRecords Таблица, которую вы создали в базе данных TestDatabase.
    Формат данных JSON Формат, используемый в этой таблице.
    Сопоставление столбцов DiagnosticRawRecordsMapping Сопоставление, которое вы создали в базе данных TestDatabase между входящими данными JSON и именами столбцов и типами данных в таблице DiagnosticRawRecords.
  2. Нажмите кнопку создания.

Отправка запросов новым таблицам

Теперь у вас есть поток данных. Прием через кластер занимает пять минут по умолчанию, поэтому подождите несколько минут, прежде чем начать запрос.

Выполнить запрос к таблице метрик диагностики

Приведенный ниже запрос анализирует данные о длительности запросов по записям метрик диагностики в Azure Data Explorer.

DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)

Результаты запроса:

avg_Среднее
00:06.156