Настройка правил сбора данных Azure Monitor

Завершено

Еще один способ нормализации данных журнала — преобразование данных во время приема. Его преимущество в том, что данные хранятся уже в нормализованном формате, готовом к использованию в Microsoft Sentinel.

Правила сбора данных в Azure Monitor

Правила сбора данных (DCR) предоставляют для Azure Monitor конвейер, аналогичный ETL,что позволяет определить способ обработки данных, поступающих в Azure Monitor. В зависимости от типа рабочего процесса DCR могут определять, куда должны отправляться данные, фильтровать или преобразовывать эти данные перед сохранением в журналах Azure Monitor. Некоторые правила сбора данных создаются и контролируются самой службой Azure Monitor, а вы можете создавать дополнительные правила под конкретные требования по сбору данных.

Типы правил сбора данных

В Azure Monitor в настоящее время существует два типа правил сбора данных.

  • DCR категории “Стандартный”. Предназначены для использования с любыми рабочими процессами, которые отправляют данные в Azure Monitor. В настоящее время поддерживаются рабочие процессы агента Azure Monitor и пользовательских журналов.

  • DCR преобразования рабочей области. Используются с рабочей областью Log Analytics для применения преобразований во время приема к рабочим процессам, которые пока не поддерживают DCR.

Преобразования

Преобразования в правиле сбора данных (DCR) позволяют отфильтровать или изменять входящие данные перед их сохранением в рабочей области Log Analytics. Преобразования данных определяются с помощью инструкции языка запросов Kusto (KQL), применяемой по отдельности к каждой записи в источнике данных. Инструкция должна определить формат входящих данных и создать выходные данные в структуре целевой таблицы.

Структура преобразования

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

  • фильтрация входящих данных с помощью инструкции where;
  • добавление нового столбца с помощью оператора extend;
  • форматирование выходных данных в соответствии со столбцами целевой таблицы с помощью оператора project.
source  
| where severity == "Critical" 
| extend Properties = parse_json(properties)
| project
    TimeGenerated = todatetime(["time"]),
    Category = category,
    StatusDescription = StatusDescription,
    EventName = name,
    EventId = tostring(Properties.EventId)