Настройка правил сбора данных 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)