Configurar regras de coleta de dados do Azure Monitor
Outra maneira de normalizar os dados de log é transformar os dados no momento da ingestão. Isso oferece o benefício de armazenar os dados em um formato analisado para uso no Microsoft Sentinel.
Regras de coleta de dados do Azure Monitor
As DCRs (Regras de Coleta de Dados) fornecem um pipeline do tipo ETL no Azure Monitor, permitindo que você defina a maneira como os dados que chegam ao Azure Monitor devem ser tratados. Dependendo do tipo de fluxo de trabalho, as DCRs pode especificar onde os dados devem ser enviados e pode filtrar ou transformar dados antes de serem armazenados nos Logs do Azure Monitor. Algumas regras de coleta de dados serão criadas e gerenciadas pelo Azure Monitor, enquanto você pode criar outras para personalizar a coleta de dados de acordo com requisitos específicos.
Tipos de regras de coleta de dados
Atualmente, há dois tipos de regra de coleta de dados no Azure Monitor:
DCR Standard. Usada com os diferentes fluxos de trabalho que enviam dados para o Azure Monitor. No momento, os fluxos de trabalho com suporte são o agente do Azure Monitor e os logs personalizados.
DCR de transformação do workspace. Usada com um workspace do Log Analytics para aplicar transformações de tempo de ingestão que não dão suporte a DCRs no momento.
Transformações
As transformações em uma DCR (regra de coleta de dados) permitem filtrar ou modificar dados de entrada antes que eles sejam armazenados em um espaço de trabalho do Log Analytics. As transformações de dados são definidas usando uma instrução de KQL (Linguagem de Consulta Kusto) que é aplicada individualmente a cada entrada na fonte de dados. Ela deve entender o formato dos dados de entrada e criar a saída na estrutura da tabela de destino.
Estrutura de transformação
O fluxo de entrada é representado por uma tabela virtual chamada source com colunas correspondentes à definição do fluxo de dados de entrada. Segue um exemplo típico de uma transformação. Este exemplo inclui a seguinte funcionalidade:
- Filtra os dados de entrada com uma instrução where
- Adiciona uma nova coluna usando o operador extend
- Formata a saída para corresponder às colunas da tabela de destino usando o operador project
source
| where severity == "Critical"
| extend Properties = parse_json(properties)
| project
TimeGenerated = todatetime(["time"]),
Category = category,
StatusDescription = StatusDescription,
EventName = name,
EventId = tostring(Properties.EventId)