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 |
|
Crie ou edite DCRs, atribua regras à máquina, implante associações. |
Contribuidor de Máquina Virtual Azure Connected Machine Resource Administrator |
|
Implante extensões de agente na VM (máquina virtual). |
Qualquer função que inclua a ação Microsoft.Resources/deployments/* |
|
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 .
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.
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.
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.
Selecione o DCR que deseja modificar no portal do Azure e selecione Exportar modelo. Em seguida, clique em Implantar para reimplantar o mesmo modelo.
Clique em Editar modelo para abrir uma versão editável do JSON para o DCR. Não altere os valores dos parâmetros.
Faça as alterações necessárias no DCR e clique em Salvar.
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.
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.
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.
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.
- Verifique métricas como
Logs Ingestion Bytes per Min
eLogs 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. - 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 mesmasLogs Rows Dropped per Min
do que antes, nenhum dado será ingerido no espaço de trabalho. Examine o para ver se há algum erro deLogs Transformation Errors per Min
transformação. - 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. - 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.