Condividi tramite


Creare regole di raccolta dati in Monitoraggio di Azure

Sono disponibili diversi metodi di creazione di una regola di raccolta dati (DCR) in Monitoraggio di Azure. In alcuni casi, Monitoraggio di Azure creerà e gestirà le DCR in base alle impostazioni configurate nel portale di Azure. In alcuni di questi casi non ci si rende neanche conto che si sta lavorando con un DCR. Per altri scenari, tuttavia, potrebbe essere necessario creare controller di dominio personalizzati o modificare quelli esistenti usando direttamente la definizione in JSON. Questo articolo descrive i diversi metodi per la creazione di un record di controllo di dominio e le raccomandazioni per la modifica e la risoluzione dei problemi.

Nota

Questo articolo descrive come creare e modificare il DCR stesso. Per creare e modificare le associazioni delle regole di raccolta dati, vedere Creare e gestire le associazioni delle regole di raccolta dati.

Autorizzazioni

Per creare controller di dominio e associazioni DCR, sono necessarie le autorizzazioni seguenti:

Ruolo predefinito Ambiti Motivo
Collaboratore al monitoraggio
  • Sottoscrizione e/o
  • Gruppo di risorse e/o
  • Una DCR esistente
Creare o modificare le DCR, assegnare regole al computer, distribuire le associazioni.
Collaboratore macchine virtuali
Amministratore delle risorse di Azure Connected Machine
  • Macchine virtuali, set di scalabilità di macchine virtuali
  • Server con abilitazione di Azure Arc
Distribuire le estensioni dell'agente nella macchina virtuale.
Qualsiasi ruolo che includa l'azione Microsoft.Resources/deployments/*
  • Sottoscrizione e/o
  • Gruppo di risorse e/o
  • Una DCR esistente
Implementare modelli di Azure Resource Manager.

Importante

Creare il registro di dominio nella stessa area dell'area di lavoro Log Analytics di destinazione o dell'area di lavoro Monitoraggio di Azure. È possibile associare il registro di dominio ai computer o ai contenitori di qualsiasi sottoscrizione o gruppo di risorse nel tenant. Per inviare dati tra tenant, è necessario abilitare prima Azure Lighthouse.

Creare o modificare un record di dominio usando il portale di Azure

Il portale di Azure offre un'esperienza semplificata per la creazione di un registro di dominio per scenari specifici. Usando questo metodo, non è necessario comprendere la struttura di un record di controllo di dominio, anche se potrebbe essere limitata nella configurazione che è possibile eseguire e potrebbe essere necessario modificare successivamente la definizione DCR per implementare una funzionalità avanzata, ad esempio una trasformazione. L'esperienza varia per ogni scenario, quindi fare riferimento alla documentazione per lo scenario specifico in uso, come descritto nella tabella seguente.

Scenario Descrizione
Abilitare Informazioni dettagliate macchina virtuale Quando si abilitano informazioni dettagliate macchina virtuale in una macchina virtuale, viene installato l'agente di Monitoraggio di Azure e viene creato e associato un controller di dominio alla macchina virtuale. Questa regola di raccolta dati raccoglie un set predefinito di contatori delle prestazioni e non deve essere modificata. Vedere Abilitare Informazioni dettagliate macchina virtuale.
Raccogliere dati client dalla macchina virtuale Creare un DCR nella portale di Azure usando un'interfaccia guidata per selezionare origini dati diverse dal sistema operativo client di una macchina virtuale. Gli esempi includono eventi di Windows, eventi Syslog e log di testo. L'agente di Monitoraggio di Azure viene installato automaticamente, se necessario, e viene creata un'associazione tra il Controller di dominio e ogni macchina virtuale selezionata. Vedere Raccogliere dati mediante l'agente di Monitoraggio di Azure.
Esportazione delle metriche Creare un record di controllo di dominio nel portale di Azure usando un'interfaccia guidata per selezionare le metriche di tipi di risorse diversi da raccogliere. Viene creata un'associazione tra il record di controllo di dominio e ogni risorsa selezionata. Vedere Creare una regola di raccolta dati (DCR) per l'esportazione delle metriche.
Creazione di tabelle Quando si crea una nuova tabella in un'area di lavoro Log Analytics usando il portale di Azure, si caricano dati di esempio usati da Monitoraggio di Azure per creare un record di dominio, inclusa una trasformazione, che può essere usata con l'API di inserimento log. Non è possibile modificare questo DCR nella portale di Azure, ma è possibile modificarlo usando uno dei metodi descritti in questo articolo. Vedere Creare una tabella personalizzata.
Monitoraggio di Kubernetes Per monitorare un cluster Kubernetes, abilitare Container Insights per i log e Prometheus per le metriche. Viene creato un registro di dominio per ognuno e associato alla versione in contenitori dell'agente di Monitoraggio di Azure nel cluster. Potrebbe essere necessario modificare il Registro Azure Container Insights per aggiungere una trasformazione. Vedere Abilitare il monitoraggio per i cluster Kubernetes e le trasformazioni dei dati in Informazioni dettagliate sui contenitori.
Regole di raccolta dati per la trasformazione dell'area di lavoro I controller di dominio di trasformazione dell'area di lavoro forniscono trasformazioni per gli scenari di raccolta dati che non usano ancora controller di dominio di dominio. È possibile creare questo DCR usando il portale di Azure per creare una trasformazione per una determinata tabella. Vedere Creare un record di controllo di dominio per la trasformazione dell'area di lavoro.

Definizione DCR

Indipendentemente dalla modalità di creazione, ogni DCR ha una definizione che segue uno schema JSON standard. Per creare o modificare un record di dominio usando un metodo diverso dal portale di Azure, è necessario lavorare direttamente con la relativa definizione JSON. Per alcuni scenari è necessario usare la definizione JSON perché il portale di Azure non fornisce un modo per configurare il record di dominio in base alle esigenze.

È possibile visualizzare il codice JSON per un record di dominio nel portale di Azure facendo clic su Visualizzazione JSON nel menu Panoramica.

Screenshot che mostra l'opzione per visualizzare il codice JSON per un record di dominio nella portale di Azure.

Verificare che l'ultima versione dell'API sia selezionata nell'elenco a discesa Versione API. In caso contrario, alcuni json potrebbero non essere visualizzati.

Screenshot che mostra il codice JSON per un controller di dominio nell'portale di Azure.

È anche possibile recuperare il codice JSON per il Registro Azure Container chiamando l'API REST DCR. Ad esempio, lo script di PowerShell seguente recupera il codice JSON per un record di dominio e lo salva in un file.

$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

È possibile ottenere i dettagli per un DCR usando Get-AzDataCollectionRule il cmdlet in PowerShell o az monitor data-collection rule show il comando nell'interfaccia della riga di comando di Azure, ma non forniscono il codice JSON nel formato necessario per la modifica. Usare invece PowerShell o l'interfaccia della riga di comando per chiamare l'API REST, come illustrato nell'esempio.

Creare o modificare un record di dominio usando JSON

Oltre a modificare un DCR esistente, è possibile crearne uno nuovo usando uno dei controller di dominio di esempio che forniscono il codice JSON per diversi scenari comuni. Utilizzare le informazioni in Struttura di una regola di raccolta dati in Monitoraggio di Azure per modificare il file JSON per l'ambiente e i requisiti specifici.

Dopo aver ottenuto la definizione di DCR, è possibile distribuirla in Monitoraggio di Azure usando i modelli portale di Azure, interfaccia della riga di comando, PowerShell, API o ARM.

Creare o modificare DCR con l'interfaccia della riga di comando

Usare il comando az monitor data-collection rule create per creare una regola di raccolta dati dal file JSON. È possibile usare questo stesso comando per aggiornare un record di dominio esistente.

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

Anche se è possibile scegliere di usare i comandi di PowerShell o dell'interfaccia della riga di comando per creare e modificare un DCR, i metodi API e ARM forniranno messaggi di errore più dettagliati in caso di errori di compilazione.

Nell'esempio seguente il Registro Azure Container specifica un nome di tabella che non esiste nell'area di lavoro Log Analytics di destinazione. Il comando di PowerShell restituisce un messaggio di errore generico, ma la chiamata API restituirà un messaggio di errore dettagliato che specifica l'errore esatto.

Screenshot che mostra un messaggio di errore per un record di dominio quando si usa un comando di PowerShell.

Screenshot che mostra un messaggio di errore per un record di dominio quando si usa l'API.

Strategie per modificare e testare un record di controllo di dominio

Quando si crea o si modifica un DCR usando la relativa definizione JSON, spesso è necessario eseguire più aggiornamenti per ottenere la funzionalità desiderata. È necessario un metodo efficiente per aggiornare il DCR, risolverlo se non si ottengono i risultati previsti e quindi apportare aggiornamenti aggiuntivi. Ciò vale soprattutto se si aggiunge una trasformazione al Registro Azure Container, perché è necessario verificare che la query funzioni come previsto. Poiché non è possibile modificare il codice JSON direttamente nella portale di Azure, di seguito sono riportate alcune strategie che è possibile usare.

Usare il file locale come origine del Registro Azure Container

Se si usa un file JSON locale come origine dei controller di dominio di dominio creati e modificati, si è certi di avere sempre accesso alla versione più recente della definizione DCR. Questa opzione è ideale se si vogliono usare strumenti di controllo della versione come GitHub o Azure DevOps per gestire le modifiche. È anche possibile usare un editor, ad esempio VS Code, per apportare modifiche al DCR e quindi usare gli strumenti da riga di comando per aggiornare il registro di dominio in Monitoraggio di Azure, come descritto in precedenza.

Di seguito è riportato uno script di PowerShell di esempio che è possibile usare per eseguire il push delle modifiche a un record di dominio da un file di origine. Ciò verifica che il file di origine sia JSON valido prima di inviarlo a Monitoraggio di Azure.

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		

Salvare il contenuto DCR in un file temporaneo

Se non si ha la definizione DCR in un file locale, è possibile recuperare la definizione da Monitoraggio di Azure e salvarla in un file temporaneo. È quindi possibile modificare il file usando un editor come VS Code prima di eseguire il push degli aggiornamenti in Monitoraggio di Azure.

Di seguito è riportato uno script di PowerShell di esempio che è possibile usare per modificare un record di dominio esistente in Monitoraggio di Azure. Lo script recupererà la definizione DCR e la salverà in un file temporaneo prima di avviare VS Code. Dopo aver indicato allo script che sono state salvate le modifiche, il registro di dominio viene aggiornato con il nuovo contenuto e il file temporaneo viene eliminato.

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

Usare il modello di Resource Manager per modificare un record di controllo di dominio sul posto

Se si desidera eseguire completamente le modifiche nel portale di Azure, è possibile usare la funzionalità Esporta modello per recuperare il modello di Resource Manager per un record di dominio. È quindi possibile modificare la definizione in JSON e ridistribuirla nel portale di Azure.

  1. Selezionare il controller di dominio che si vuole modificare nel portale di Azure e selezionare Esporta modello. Fare quindi clic su Distribuisci per ridistribuire lo stesso modello.

    Screenshot che mostra l'opzione Esporta modello per una regola di raccolta dati nella portale di Azure.

  2. Fare clic su Modifica modello per aprire una versione modificabile del file JSON per il Registro Azure Container. Non modificare i valori dei parametri.

    Screenshot che mostra l'opzione Modifica modello per una regola di raccolta dati nella portale di Azure.

  3. Apportare le modifiche necessarie al Registro Azure Container e quindi fare clic su Salva.

    Screenshot che mostra il codice JSON modificabile per una regola di raccolta dati nella portale di Azure.

  4. Se si vuole creare un nuovo record di controllo di dominio, modificare il parametro name. In caso contrario, lasciare invariati i parametri. Fare clic su Rivedi e crea per distribuire il modello modificato e Crea per creare il nuovo record di controllo di dominio.

    Screenshot che mostra l'opzione rivedi e crea per una regola di raccolta dati nel portale di Azure.

  5. Se il record di controllo di dominio è valido senza errori, la distribuzione avrà esito positivo e il registro di dominio verrà aggiornato con la nuova configurazione. Fare clic su Vai alla risorsa per aprire il record di controllo di accesso modificato.

    Screenshot che mostra una distribuzione corretta per una regola di raccolta dati nel portale di Azure.

  6. Se il DCR presenta errori di compilazione, verrà visualizzato un messaggio che informa che la distribuzione non è riuscita. Fare clic su Dettagli errore e Dettagli operazione per visualizzare i dettagli dell'errore. Fare clic su Ridistribuissi e quindi su Modifica modello per apportare le modifiche necessarie al Registro Azure Container e quindi salvarlo e distribuirlo di nuovo.

    Screenshot che mostra una distribuzione non riuscita per una regola di raccolta dati nel portale di Azure.

Verificare e risolvere i problemi relativi alla raccolta dati

Dopo aver installato il Controller di dominio, potrebbero essere necessari alcuni minuti prima che le modifiche siano effettive e che i dati vengano raccolti con il DCR aggiornato. Se non vengono visualizzati dati raccolti, può essere difficile determinare la causa radice del problema. Usare le funzionalità di monitoraggio di DCR, che includono metriche e log per risolvere i problemi.

Le metriche DCR vengono raccolte automaticamente per tutti i controller di dominio e è possibile analizzarle usando Esplora metriche, ad esempio le metriche della piattaforma per altre risorse di Azure. Abilitare i log degli errori DCR per ottenere informazioni dettagliate sull'errore quando l'elaborazione dei dati non riesce.

Se non vengono visualizzati i dati raccolti, seguire questa procedura di base per risolvere il problema.

  1. Controllare le metriche quali Logs Ingestion Bytes per Min e Logs Rows Received per Min per assicurarsi che i dati raggiungano Monitoraggio di Azure. In caso contrario, controllare l'origine dati per assicurarsi che invii dati come previsto.
  2. Verificare Logs Rows Dropped per Min per controllare se vengono eliminate righe. Ciò potrebbe non indicare un errore perché le righe potrebbero essere eliminate da una trasformazione. Se le righe eliminate sono le stesse di Logs Rows Dropped per Min, nell'area di lavoro non verranno inseriti dati. Esaminare Logs Transformation Errors per Min per verificare se sono presenti errori di trasformazione.
  3. Controllare Logs Transformation Errors per Min per verificare se sono presenti errori dalle trasformazioni applicate ai dati in ingresso. Ciò potrebbe essere dovuto a modifiche apportate alla struttura dei dati o alla trasformazione stessa.
  4. Controllare la DCRLogErrors tabella per eventuali errori di inserimento che potrebbero essere stati registrati. Questo può fornire dettagli aggiuntivi per identificare la causa radice del problema.

Passaggi successivi