Compartilhar via


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

Há vários métodos para criar uma DCR (regra de coleta de dados) no Azure Monitor. Em alguns casos, o Azure Monitor irá criar e gerenciar a DCR de acordo com as configurações definidas no portal do Azure. Talvez você nem perceba que está trabalhando com uma DCR em alguns desses casos. Para outros cenários, porém, talvez seja necessário criar suas próprias DCRs ou editar as existentes trabalhando diretamente com sua definição no JSON. Este artigo descreve os diferentes métodos para criar uma DCR e recomendações sobre como editá-las e solucioná-las.

Observação

Este artigo descreve como criar e editar a DCR. Para criar e editar associações de regras de coleta de dados, consulte Criar e gerenciar associações de regra de coleta de dados.

Permissões

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

Função interna Escopos Motivo
Colaborador de monitoramento
  • Assinatura e/ou
  • Grupo de recursos e/ou
  • Uma DCR existente
Crie ou edite DCRs, atribua regras ao computador, implante associações.
Colaborador de Máquina Virtual
Administrador de recursos de Azure Connected Machine
  • Máquinas virtuais, conjuntos de dimensionamento de máquinas virtuais
  • Servidores habilitados para Azure Arc
Implante extensões de agente na VM (máquina virtual).
Qualquer função que inclua a ação Microsoft.Resources/deployments/*
  • Assinatura e/ou
  • Grupo de recursos e/ou
  • Uma DCR existente
Implantar modelos do Azure Resource Manager.

Importante

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

Criar ou editar uma DCR usando o portal do Azure

O portal do Azure fornece uma experiência simplificada para criar uma DCR para cenários específicos. Usando esse método, você não precisa entender a estrutura de uma 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 está trabalhando, conforme descrito na tabela a seguir.

Cenário Descrição
Habilitar insights da VM Ao habilitar o VM Insights em uma VM, o agente do Azure Monitor será instalado e uma DCR será criada e associada à máquina virtual. Esse DCR coletará um conjunto predefinido de contadores de desempenho e não deverá ser modificado. Consulte Habilitar o VM Insights.
Coletar dados do cliente da VM Crie uma DCR no portal do Azure usando uma interface guiada para selecionar diferentes fontes de dados do sistema operacional cliente de uma VM. Exemplos incluem eventos do Windows, eventos do Syslog e logs de texto. O agente do Azure Monitor é instalado automaticamente, se necessário, e uma associação é criada entre a DCR e cada VM selecionada. Confira Coletar dados com o agente do Azure Monitor.
Exportação de métricas Crie uma 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 a DCR e cada recurso selecionado. Consulte Criar uma DCR (regra de coleta de dados) para exportação de métricas.
Criação de tabelas Ao criar uma nova tabela em um workspace do Log Analytics usando o portal do Azure, você carrega dados de amostra que o Azure Monitor usa para criar uma DCR, incluindo uma transformação, que pode ser usada com a API de Ingestão de Logs. Você não poderá modificar essa DCR no portal do Azure, mas pode modificá-la usando qualquer um dos métodos descritos neste artigo. Consulte Criar uma tabela personalizada.
Monitoramento do Kubernetes Para monitorar um cluster do Kubernetes, habilite os Insights de Contêiner para logs e o Prometheus para métricas. Uma DCR para cada um deles é criada e associada à versão em contêiner do agente do Azure Monitor no cluster. Talvez seja necessário modificar a DCR de Insights de Contêiner para adicionar uma transformação. Consulte Habilitar o monitoramento para clusters do Kubernetes e Transformações de dados nos Insights de Contêiner.
DCR de transformação do workspace As DCRs de transformação do workspace fornecem transformações para cenários de coleta de dados que ainda não usam DCRs. Você pode criar essa DCR usando o portal do Azure para criar uma transformação para uma tabela específica. Consulte Criar DCR de transformação do workspace.

Definição de DCR

Independentemente de como é criada, cada DCR tem uma definição que segue um esquema JSON padrão. Para criar ou editar uma 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 a DCR conforme necessário.

Você pode exibir o JSON de uma DCR no portal do Azure clicando modo de exibição JSON no menu Visão Geral.

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

Verifique se a versão mais recente da API está selecionada no menu suspenso Versão da API. Caso contrário, alguns dos JSON podem não ser exibidos.

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

Você também pode recuperar o JSON para a DCR chamando a API REST da DCR. Por exemplo, o script do PowerShell a seguir recupera o JSON para uma DCR e a 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

Observação

Você pode obter os detalhes de uma DCR usando o cmdlet Get-AzDataCollectionRule no PowerShell ou o comando az monitor data-collection rule show 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 uma DCR usando JSON

Além de editar uma DCR existente, você pode criar uma nova usando uma das DCRs de amostra que fornecem o JSON para vários cenários comuns. Use as 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 da DCR, você poderá implantá-la no Azure Monitor usando o portal do Azure, a CLI, o PowerShell, a API ou os modelos do ARM.

Criar ou editar DCR com a CLI

Use o comando az monitor data-collection rule create para criar um DCR do arquivo JSON. Você pode usar esse mesmo comando para atualizar uma 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'

Observação

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

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

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

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

Estratégias para editar e testar uma DCR

Ao criar ou editar uma DCR usando sua definição JSON, você precisará fazer várias atualizações para obter a funcionalidade desejada. Você precisa de um método eficiente para atualizar a DCR, solucionar problemas se não obtiver os resultados esperados e, em seguida, fazer atualizações adicionais. Isso é especialmente verdadeiro se você estiver adicionando uma transformação à 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 o arquivo local como origem da DCR

Se você usar um arquivo JSON local como a origem das DCRs criadas e editadas, terá certeza de que sempre terá acesso à versão mais recente da definição da 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 na DCR e, em seguida, usar ferramentas de linha de comando para atualizar a DCR no Azure Monitor, conforme descrito acima.

Veja a seguir uma amostra de script do PowerShell que você pode usar para enviar alterações por push a uma DCR de um arquivo de origem. Isso valida que 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 o conteúdo da DCR em um arquivo temporário

Se você não tiver a definição de DCR em um arquivo local, poderá recuperar a definição 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 por push para o Azure Monitor.

Veja a seguir uma amostra de script do PowerShell que você pode usar para editar uma DCR existente no Azure Monitor. O script recuperará a definição de 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, a DCR será atualizada com o novo conteúdo e o arquivo temporário será 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

Usar o modelo do ARM para editar uma 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 do ARM para uma DCR. Em seguida, você pode modificar a definição no JSON e reimplantá-la no portal do Azure.

  1. Selecione a DCR que você deseja modificar no portal do Azure e selecione Exportar modelo. Clique em Implantar para reimplantar o mesmo modelo.

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

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

    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 na 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 uma nova DCR, altere o parâmetro de nome. Caso contrário, deixe os parâmetros inalterados. Clique em Examinar + criar para implantar o modelo modificado e Criar para criar a nova DCR.

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

  5. Se a DCR for válido sem erros, a implantação terá sucesso e a DCR será atualizada com a nova configuração. Clique em Ir para recurso para abrir a DCR modificada.

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

  6. Se a DCR tiver erros de compilação, você receberá uma mensagem informando que a implantação falhou. Clique em Detalhes do erro e Detalhes da operação para exibir detalhes do erro. Clique em Reimplantar e, em seguida, Editar modelo novamente para fazer as alterações necessárias na DCR e, em seguida, salvá-la e implantá-la 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 a DCR, pode levar vários minutos para que as alterações entrem em vigor e os dados sejam coletados com a DCR atualizada. Se você não vir nenhum dado sendo coletado, pode ser difícil determinar a causa raiz do problema. Use os recursos de monitoramento de DCR, que incluem métricas e logs para ajudar a solucionar problemas.

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

Se você não vir dados sendo coletados, siga estas etapas básicas para solucionar o problema.

  1. Verifique as métricas como Logs Ingestion Bytes per Min e Logs Rows Received per Min para se certificar de que os dados estão chegando ao Azure Monitor. Caso contrário, verifique a origem dos dados para se certificar de que esteja enviando dados conforme o esperado.
  2. Verifique Logs Rows Dropped per Min para ver se alguma linha está sendo descartada. Isso talvez não indique um erro, já que uma transformação pode descartar linhas. No entanto, se as linhas descartadas forem as mesmas Logs Rows Dropped per Min, nenhum dado será ingerido no workspace. Examine os Logs Transformation Errors per Min para ver se há erros de transformação.
  3. Verifique Logs Transformation Errors per Min para ver se há erros de transformações sendo aplicadas aos dados de entrada. Isso pode se dever a alterações na estrutura de dados ou na própria transformação.
  4. Verifique a tabela DCRLogErrors para erros de ingestão que possam ter sido registrados. Isso poderá lhe fornecer detalhes adicionais para a identificação da causa raiz do problema.

Próximas etapas