Configurar regras de coleta de dados do Azure Monitor

Concluído

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 no Azure Monitor

As DCRs (Regras de Coleta de Dados) fornecem um pipeline semelhante ao ETL no Azure Monitor, permitindo que você defina a maneira como os dados que entram no Azure Monitor devem ser tratados. Dependendo do tipo de fluxo de trabalho, os DCRs podem especificar para onde os dados devem ser enviados e podem 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 para suas necessidades específicas.

Tipos de regras de recolha de dados

Atualmente, existem dois tipos de regras de coleta de dados no Azure Monitor:

  • DCR padrão. Usado com diferentes fluxos de trabalho que enviam dados para o Azure Monitor. Os fluxos de trabalho atualmente suportados são o agente do Azure Monitor e os logs personalizados.

  • DCR de transformação do espaço de trabalho. Usado com um espaço de trabalho do Log Analytics para aplicar transformações de tempo de ingestão a fluxos de trabalho que atualmente não suportam DCRs.

Transformações

As transformações em uma regra de coleta de dados (DCR) 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 KQL (Kusto Query Language) que é aplicada individualmente a cada entrada na fonte de dados. Ele deve entender o formato dos dados de entrada e criar 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-se 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 do projeto
source  
| where severity == "Critical" 
| extend Properties = parse_json(properties)
| project
    TimeGenerated = todatetime(["time"]),
    Category = category,
    StatusDescription = StatusDescription,
    EventName = name,
    EventId = tostring(Properties.EventId)