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 |
|
Creare o modificare le DCR, assegnare regole al computer, distribuire le associazioni. |
Collaboratore macchine virtuali Amministratore delle risorse di Azure Connected Machine |
|
Distribuire le estensioni dell'agente nella macchina virtuale. |
Qualsiasi ruolo che includa l'azione Microsoft.Resources/deployments/* |
|
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.
Verificare che l'ultima versione dell'API sia selezionata nell'elenco a discesa Versione API. In caso contrario, alcuni json potrebbero non essere visualizzati.
È 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.
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.
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.
Fare clic su Modifica modello per aprire una versione modificabile del file JSON per il Registro Azure Container. Non modificare i valori dei parametri.
Apportare le modifiche necessarie al Registro Azure Container e quindi fare clic su Salva.
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.
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.
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.
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.
- Controllare le metriche quali
Logs Ingestion Bytes per Min
eLogs 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. - 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 diLogs Rows Dropped per Min
, nell'area di lavoro non verranno inseriti dati. EsaminareLogs Transformation Errors per Min
per verificare se sono presenti errori di trasformazione. - 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. - 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.