Creare impostazioni di diagnostica su larga scala usando Criteri e progetti di Azure
Per monitorare le risorse di Azure, è necessario creare impostazioni di diagnostica per ogni risorsa. Questo processo può essere difficile da gestire quando si dispone di molte risorse. Per semplificare il processo di creazione e applicazione delle impostazioni di diagnostica su larga scala, usare Criteri di Azure per generare automaticamente le impostazioni di diagnostica per le risorse nuove ed esistenti.
Ogni tipo di risorsa di Azure ha un set univoco di categorie elencate nelle impostazioni di diagnostica. Ogni tipo di risorsa richiede quindi una definizione di criteri separata. Alcuni tipi di risorse hanno definizioni di criteri predefinite che è possibile assegnare senza modifiche. Per altri tipi di risorse, è possibile creare una definizione personalizzata.
Gruppi di categorie dei log
Registrare gruppi di categorie, raggruppare tipi simili di log. I gruppi di categorie semplificano il riferimento a più log in un singolo comando. Esiste un gruppo di categorie allLogs contenente tutti i log. Esiste anche un gruppo di categorie di controllo che include tutti i log di controllo. Usandolo per un gruppo di categorie è possibile definire un criterio che viene aggiornato in modo dinamico man mano che vengono aggiunte nuove categorie di log al gruppo.
Definizioni di criteri predefiniti per Monitoraggio di Azure
Esistono in genere tre definizioni di criteri predefinite per ogni tipo di risorsa, corrispondenti alle tre destinazioni a cui inviare la diagnostica:
- Aree di lavoro Log Analytics
- Account di archiviazione di Azure
- Hub eventi
Assegnare i criteri del tipo di risorsa in base alle destinazioni necessarie.
Sono stati sviluppati un set di criteri predefiniti e progetti basati sui gruppi di categorie del log di controllo per consentire di applicare le impostazioni di diagnostica con pochi passaggi. Per altre informazioni, vedere Abilitare le impostazioni di diagnostica per gruppo di categorie usando i criteri predefiniti.
Per un elenco completo dei criteri predefiniti per Monitoraggio di Azure, vedere Definizioni predefinite di Criteri di Azure per Monitoraggio di Azure
Definizioni di criteri personalizzati
Per i tipi di risorse che non dispongono di criteri predefiniti, è necessario creare una definizione di criteri personalizzata. È possibile creare manualmente un nuovo criterio nel portale di Azure copiando un criterio predefinito esistente e quindi modificandolo per il tipo di risorsa. In alternativa creare i criteri al livello di codice usando uno script in PowerShell Gallery.
Lo script Create-AzDiagPolicy crea file di criteri per un particolare tipo di risorsa che è possibile installare usando PowerShell o l'interfaccia della riga di comando di Azure. Attenersi alla procedura seguente per creare una definizione di criteri personalizzata per le impostazioni di diagnostica:
Assicurarsi di avere installato Azure PowerShell.
Installare lo script usando il comando seguente:
Install-Script -Name Create-AzDiagPolicy
Eseguire lo script usando i parametri per specificare dove inviare i log. Verrà richiesto di specificare una sottoscrizione e un tipo di risorsa.
Ad esempio per creare una definizione di criteri che invia i log a un'area di lavoro Log Analytics e a un hub eventi, usare il comando seguente:
Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
In alternativa è possibile specificare una sottoscrizione e un tipo di risorsa nel comando. Ad esempio per creare una definizione di criteri che invia i log a un'area di lavoro Log Analytics e a un hub eventi per i database di SQL Server, usare il comando seguente:
Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
Lo script crea cartelle separate per ogni definizione di criteri. Ogni cartella contiene tre file denominati azurepolicy.json, azurepolicy.rules.json e azurepolicy.parameters.json. Se si vuole creare manualmente i criteri nel portale di Azure, è possibile copiare e incollare il contenuto di azurepolicy.json perché include l'intera definizione dei criteri. Usare gli altri due file con PowerShell o l'interfaccia della riga di comando di Azure per creare la definizione dei criteri da una riga di comando.
Gli esempi seguenti illustrano come installare la definizione dei criteri sia da PowerShell sia dall'interfaccia della riga di comando di Azure. Ogni esempio include metadati per specificare una categoria di Monitoraggio per raggruppare la nuova definizione di criteri con le definizioni di criteri predefinite.
New-AzPolicyDefinition -name "Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace" -policy .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json -parameter .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json -mode All -Metadata '{"category":"Monitoring"}'
az policy definition create --name 'deploy-diag-setting-sql-database--workspace' --display-name 'Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace' --rules 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json' --params 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json' --subscription 'AzureMonitor_Docs' --mode All
Iniziativa
Anziché creare un'assegnazione per ogni definizione di criteri, una strategia comune consiste nel creare un progetto che include le definizioni dei criteri per creare le impostazioni di diagnostica per ogni servizio di Azure. Creare un'assegnazione tra il progetto e un gruppo di gestione, una sottoscrizione o un gruppo di risorse, a seconda della modalità di gestione dell'ambiente. Questa strategia offre i vantaggi seguenti:
- Creare una singola assegnazione per il progetto anziché più assegnazioni per ogni tipo di risorsa. Usare lo stesso progetto per più gruppi di monitoraggio, sottoscrizioni o gruppi di risorse.
- Modificare il progetto quando è necessario aggiungere un nuovo tipo di risorsa o una nuova destinazione. Ad esempio i requisiti iniziali potrebbero essere l'invio di dati solo a un'area di lavoro Log Analytics, ma in un secondo momento si potrebbe aggiungere un hub eventi. Modificare il progetto anziché creare nuove assegnazioni.
Per informazioni dettagliate sulla creazione di un progetto, vedere Creare e assegnare una definizione di progetto. Prendi in considerazione le seguenti raccomandazioni:
- Impostare Categoria su Monitoraggio per raggrupparlo con definizioni di criteri predefinite e personalizzate correlate.
- Anziché specificare i dettagli dell'area di lavoro Log Analytics e l'hub eventi per le definizioni dei criteri incluse nel progetto, usare un parametro di progetto comune. Questo parametro consente di specificare facilmente un valore comune per tutte le definizioni dei criteri e modificare tale valore, se necessario.
Assegnazione
Assegnare il progetto a un gruppo di gestione di Azure, a una sottoscrizione o a un gruppo di risorse, a seconda dell'ambito delle risorse da monitorare. Un gruppo di gestione è utile per definire l'ambito dei criteri, soprattutto se l'organizzazione dispone di più sottoscrizioni.
Usando i parametri del progetto, è possibile specificare in un'unica volta l'area di lavoro o altri dettaglio per tutte le definizioni dei criteri nel progetto.
Correzione
Il progetto verrà applicato a ogni macchina virtuale durante la creazione. Un'attività di correzione distribuisce le definizioni dei criteri nell'iniziativa alle risorse esistenti, in modo da poter creare le impostazioni di diagnostica per tutte le risorse già create.
Quando si crea l'assegnazione usando il portale di Azure, è possibile creare contemporaneamente un'attività di correzione. Vedere Correggere le risorse non conformi con Criteri di Azure per i dettagli sulla correzione.
Risoluzione dei problemi
Categoria di metriche non supportata
Quando si distribuisce un'impostazione di diagnostica, viene visualizzato un messaggio di errore simile al seguente, Categoria metriche 'xxxx' non supportata. È possibile che venga visualizzato questo errore anche se la distribuzione precedente è riuscita.
Il problema si verifica quando si usa un modello di Resource Manager, un'API REST, un'interfaccia della riga di comando di Azure o Azure PowerShell. Le impostazioni di diagnostica create tramite il portale di Azure non sono interessate perché vengono presentati solo i nomi di categoria supportati.
Il problema è causato da una modifica recente nell'API sottostante. Le categorie di metriche diverse da 'AllMetrics' non sono supportate e non lo sono mai state ad eccezione di alcuni servizi di Azure specifici. In passato altri nomi di categoria venivano ignorati durante la distribuzione di un'impostazione di diagnostica. Il back-end di Monitoraggio di Azure ha reindirizzato queste categorie a 'AllMetrics'. A partire dal febbraio 2021, il back-end è stato aggiornato per verificare in modo specifico che la categoria di metriche fornita sia accurata. Questa modifica ha causato l'esito negativo di alcune distribuzioni.
Se viene visualizzato questo errore, aggiornare le distribuzioni in modo da sostituire tutti i nomi di categoria delle metriche con "AllMetrics" per risolvere il problema. Se in precedenza la distribuzione aggiungeva più categorie, deve essere mantenuta solo una categoria con il riferimento 'AllMetrics'. Se il problema persiste, contattare il supporto tecnico di Azure tramite il portale di Azure.
L'impostazione scompare a causa di caratteri non ASCII in resourceID
Le impostazioni di diagnostica non supportano resourceID con caratteri non ASCII, ad esempio Preproducción. Poiché non è possibile rinominare le risorse in Azure, l'unica opzione consiste nel creare una nuova risorsa senza i caratteri non ASCII. Se i caratteri si trovano in un gruppo di risorse, è possibile spostare le risorse in un nuovo gruppo. In caso contrario sarà necessario ricreare la risorsa.