Partilhar via


Criar regras de coleta de dados (DCRs) no Azure Monitor

Há vários métodos para criar uma regra de coleta de dados (DCR) no Azure Monitor. Em alguns casos, o Azure Monitor criará e gerenciará o DCR de acordo com as configurações definidas no portal do Azure. Você pode nem perceber que está trabalhando com um DCR em alguns desses casos. Para outros cenários, no entanto, você pode precisar criar seus próprios DCRs ou editar os existentes trabalhando diretamente com sua definição em JSON. Este artigo descreve os diferentes métodos para criar um DCR e recomendações sobre como editá-los e solucioná-los.

Nota

Este artigo descreve como criar e editar o próprio DCR. Para criar e editar associações de regras de coleta de dados, consulte Criar e gerenciar associações de regras de coleta de dados.

Permissões

Você precisa das seguintes permissões para criar DCRs e associações DCR:

Função incorporada Âmbitos Razão
Contribuidor de Monitorização
  • Subscrição e/ou
  • Grupo de recursos e/ou
  • Um DCR existente
Crie ou edite DCRs, atribua regras à máquina, implante associações.
Contribuidor de Máquina Virtual
Azure Connected Machine Resource Administrator
  • Máquinas virtuais, conjuntos de dimensionamento de máquinas virtuais
  • Servidores compatíveis com o Azure Arc
Implante extensões de agente na VM (máquina virtual).
Qualquer função que inclua a ação Microsoft.Resources/deployments/*
  • Subscrição e/ou
  • Grupo de recursos e/ou
  • Um DCR existente
Implante modelos do Azure Resource Manager.

Importante

Crie seu DCR na mesma região do espaço de trabalho de destino do Log Analytics ou do Azure Monitor. Você pode associar o DCR a máquinas ou contêineres de qualquer assinatura ou grupo de recursos no locatário. Para enviar dados entre locatários, você deve primeiro habilitar o Azure Lighthouse.

Criar ou editar um DCR usando o portal do Azure

O portal do Azure fornece uma experiência simplificada para criar um DCR para cenários específicos. Usando esse método, você não precisa entender a estrutura de um DCR, embora possa estar limitado na configuração que pode executar e talvez precise editar posteriormente a definição de DCR para implementar um recurso avançado, como uma transformação. A experiência variará para cada cenário, portanto, consulte a documentação do cenário específico com o qual você está trabalhando, conforme descrito na tabela a seguir.

Cenário Description
Ativar as informações da VM Quando você habilita o VM Insights em uma VM, o agente do Azure Monitor é instalado e um DCR é criado e associado à máquina virtual. Este DCR recolhe um conjunto predefinido de contadores de desempenho e não deve ser modificado. Consulte Habilitar insights de VM.
Coletar dados do cliente da VM Crie um DCR no portal do Azure usando uma interface guiada para selecionar diferentes fontes de dados do sistema operacional cliente de uma VM. Os exemplos incluem eventos do Windows, eventos Syslog e logs de texto. O agente do Azure Monitor é instalado automaticamente, se necessário, e uma associação é criada entre o DCR e cada VM selecionada. Consulte Coletar dados com o Azure Monitor Agent.
Exportação de métricas Crie um DCR no portal do Azure usando uma interface guiada para selecionar métricas de diferentes tipos de recursos a serem coletados. Uma associação é criada entre o DCR e cada recurso selecionado. Consulte Criar uma regra de coleta de dados (DCR) para exportação de métricas.
Criação de tabelas Ao criar uma nova tabela em um espaço de trabalho do Log Analytics usando o portal do Azure, você carrega dados de exemplo que o Azure Monitor usa para criar um DCR, incluindo uma transformação, que pode ser usado com a API de Ingestão de Logs. Você não pode modificar esse DCR no portal do Azure, mas pode modificá-lo usando qualquer um dos métodos descritos neste artigo. Consulte Criar uma tabela personalizada.
Monitoramento de Kubernetes Para monitorar um cluster Kubernetes, habilite o Container Insights para logs e o Prometheus para métricas. Um DCR para cada um é criado e associado à versão conteinerizada do agente do Azure Monitor no cluster. Talvez seja necessário modificar o DCR de insights de contêiner para adicionar uma transformação. Consulte Habilitar monitoramento para clusters Kubernetes e transformações de dados em Insights de contêiner.
DCR de transformação do espaço de trabalho Os DCRs de transformação de espaço de trabalho fornecem transformações para cenários de coleta de dados que ainda não usam DCRs. Você pode criar esse DCR usando o portal do Azure para criar uma transformação para uma tabela específica. Consulte Criar DCR de transformação de espaço de trabalho.

Definição de DCR

Independentemente de como é criado, cada DCR tem uma definição que segue um esquema JSON padrão. Para criar ou editar um DCR usando um método diferente do portal do Azure, você precisa trabalhar diretamente com sua definição JSON. Para alguns cenários, você deve trabalhar com a definição JSON porque o portal do Azure não fornece uma maneira de configurar o DCR conforme necessário.

Você pode exibir o JSON para um DCR no portal do Azure clicando em modo de exibição JSON no menu Visão geral .

Captura de tela que mostra a opção de exibir o JSON para um DCR no portal do Azure.

Verifique se a versão mais recente da API está selecionada na lista suspensa Versão da API . Caso contrário, parte do JSON pode não ser exibida.

Captura de tela que mostra o JSON para um DCR no portal do Azure.

Você também pode recuperar o JSON para o DCR chamando a DCR REST API. Por exemplo, o script PowerShell a seguir recupera o JSON para um DCR e o salva em um arquivo.

$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit
$FilePath = "<FilePath>" # File to store DCR content
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath

Nota

Você pode obter os detalhes de um DCR usando Get-AzDataCollectionRule cmdlet no PowerShell ou az monitor data-collection rule show comando na CLI do Azure, mas eles não fornecem o JSON no formato necessário para edição. Em vez disso, use o PowerShell ou a CLI para chamar a API REST, conforme mostrado no exemplo.

Criar ou editar um DCR usando JSON

Além de editar um DCR existente, você pode criar um novo usando um dos DCRs de exemplo que fornecem o JSON para vários cenários comuns. Use informações em Estrutura de uma regra de coleta de dados no Azure Monitor para modificar o arquivo JSON para seu ambiente e requisitos específicos.

Depois de ter a definição do seu DCR, você pode implantá-lo no Azure Monitor usando o portal do Azure, CLI, PowerShell, API ou modelos ARM.

Criar ou editar DCR com CLI

Use o comando az monitor data-collection rule create para criar um DCR a partir do seu arquivo JSON. Você pode usar esse mesmo comando para atualizar um DCR existente.

az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'

Nota

Embora você possa optar por usar os comandos PowerShell ou CLI para criar e editar um DCR, os métodos API e ARM fornecerão mensagens de erro mais detalhadas se houver erros de compilação.

No exemplo a seguir, o DCR especifica um nome de tabela que não existe no espaço de trabalho de destino do Log Analytics. O comando PowerShell retorna uma mensagem de erro genérica, mas a chamada de API retornará uma mensagem de erro detalhada que especifica o erro exato.

Captura de tela que mostra uma mensagem de erro para um DCR ao usar um comando do PowerShell.

Captura de tela que mostra uma mensagem de erro para um DCR ao usar a API.

Estratégias para editar e testar um DCR

Ao criar ou editar um DCR usando sua definição JSON, muitas vezes você precisará fazer várias atualizações para obter a funcionalidade desejada. Você precisa de um método eficiente para atualizar o DCR, solucioná-lo se não obtiver os resultados esperados e, em seguida, fazer atualizações adicionais. Isso é especialmente verdadeiro se você estiver adicionando uma transformação ao DCR, pois precisará validar se a consulta está funcionando conforme o esperado. Como você não pode editar o JSON diretamente no portal do Azure, a seguir estão algumas estratégias que você pode usar.

Usar arquivo local como fonte de DCR

Se você usar um arquivo JSON local como a origem dos DCRs criados e editados, terá certeza de que sempre terá acesso à versão mais recente da definição de DCR. Isso é ideal se você quiser usar ferramentas de controle de versão, como o GitHub ou o Azure DevOps, para gerenciar suas alterações. Você também pode usar um editor como o VS Code para fazer alterações no DCR e, em seguida, usar ferramentas de linha de comando para atualizar o DCR no Azure Monitor, conforme descrito acima.

A seguir está um exemplo de script do PowerShell que você pode usar para enviar alterações para um DCR a partir de um arquivo de origem. Isso valida se o arquivo de origem é JSON válido antes de enviá-lo para o Azure Monitor.

param (
    [Parameter(Mandatory = $true)][string]$ResourceId,  # Resource ID of the DCR
    [Parameter(Mandatory = $true)][string]$FilePath  # Path to the DCR JSON file to upload
)

# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw

# Ensure the DCR content is valid JSON
try {
    $ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
    Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
    exit 1
}

# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		

Salvar conteúdo DCR em arquivo temporário

Se você não tiver a definição de DCR em um arquivo local, poderá recuperá-la do Azure Monitor e salvá-la em um arquivo temporário. Em seguida, você pode editar o arquivo usando um editor, como o VS Code, antes de enviar as atualizações para o Azure Monitor.

A seguir está um exemplo de script do PowerShell que você pode usar para editar um DCR existente no Azure Monitor. O script recuperará a definição DCR e a salvará em um arquivo temporário antes de iniciar o VS Code. Depois de indicar ao script que você salvou suas alterações, o DCR é atualizado com o novo conteúdo e o arquivo temporário é excluído.

param ([Parameter(Mandatory=$true)] $ResourceId)

# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath

# Open DCR in code editor
code $FilePath | Wait-Process

{ 
	#write DCR content back from the file
	$DCRContent = Get-Content $FilePath -Raw
	Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		
}

#Delete temporary file
Remove-Item $FilePath

Use o modelo ARM para editar um DCR no local

Se você quiser executar suas edições completamente no portal do Azure, poderá usar o recurso Exportar modelo para recuperar o modelo ARM para um DCR. Em seguida, você pode modificar a definição em JSON e reimplantá-la no portal do Azure.

  1. Selecione o DCR que deseja modificar no portal do Azure e selecione Exportar modelo. Em seguida, clique em Implantar para reimplantar o mesmo modelo.

    Captura de ecrã que mostra a opção Exportar modelo para uma regra de recolha de dados no portal do Azure.

  2. Clique em Editar modelo para abrir uma versão editável do JSON para o DCR. Não altere os valores dos parâmetros.

    Captura de tela que mostra a opção Editar modelo para uma regra de coleta de dados no portal do Azure.

  3. Faça as alterações necessárias no DCR e clique em Salvar.

    Captura de tela que mostra o JSON editável para uma regra de coleta de dados no portal do Azure.

  4. Se você quiser criar um novo DCR, altere o parâmetro name. Caso contrário, deixe os parâmetros inalterados. Clique em Rever + criar para implementar o modelo modificado e em Criar para criar o novo DCR.

    Captura de ecrã que mostra a opção rever + criar para uma regra de recolha de dados no portal do Azure.

  5. Se o DCR for válido sem erros, a implantação será bem-sucedida e o DCR será atualizado com a nova configuração. Clique em Ir para recurso para abrir o DCR modificado.

    Captura de tela que mostra uma implantação bem-sucedida de uma regra de coleta de dados no portal do Azure.

  6. Se o DCR tiver erros de compilação, você receberá uma mensagem informando que sua implantação falhou. Clique em Detalhes do erro e Detalhes da operação para visualizar os detalhes do erro. Clique em Reimplantar e, em seguida, em Editar modelo novamente para fazer as alterações necessárias no DCR e, em seguida, salve-o e implante-o novamente.

    Captura de tela que mostra uma implantação com falha para uma regra de coleta de dados no portal do Azure.

Verificar e solucionar problemas de coleta de dados

Depois de instalar o DCR, pode levar vários minutos para que as alterações entrem em vigor e os dados sejam coletados com o DCR atualizado. Se você não vir nenhum dado sendo coletado, pode ser difícil determinar a causa raiz do problema. Use os recursos de monitoramento DCR, que incluem métricas e logs para ajudar na solução de problemas.

As métricas de DCR são coletadas automaticamente para todos os DCRs, e você pode analisá-las usando o explorador de métricas, como as métricas de plataforma para outros recursos do Azure. Habilite os logs de erro DCR para obter informações detalhadas sobre erros quando o processamento de dados não for bem-sucedido.

Se não vir dados a serem recolhidos, siga estes passos básicos para resolver o problema.

  1. Verifique métricas como Logs Ingestion Bytes per Min e Logs Rows Received per Min para garantir que os dados estão chegando ao Azure Monitor. Caso contrário, verifique sua fonte de dados para garantir que ela está enviando dados conforme o esperado.
  2. Verifique Logs Rows Dropped per Min se alguma linha está sendo descartada. Isso pode não indicar um erro, pois as linhas podem ser descartadas por uma transformação. Se as linhas descartadas forem as mesmas Logs Rows Dropped per Min do que antes, nenhum dado será ingerido no espaço de trabalho. Examine o para ver se há algum erro de Logs Transformation Errors per Min transformação.
  3. Verifique Logs Transformation Errors per Min se há erros de transformações aplicadas aos dados recebidos. Isso pode ser devido a mudanças na estrutura de dados ou à própria transformação.
  4. Verifique na DCRLogErrors tabela se há erros de ingestão que possam ter sido registrados. Isso pode fornecer detalhes adicionais na identificação da causa raiz do problema.

Próximos passos