Creare impostazioni di diagnostica su larga scala usando Criteri e iniziative 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 di log

Gruppi di categorie di log, 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. Usando 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 per il tipo di risorsa in base alle destinazioni necessarie.

Sono stati sviluppati un set di criteri predefiniti e iniziative 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 Criteri di Azure definizioni predefinite 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 a 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. Usare la procedura seguente per creare una definizione di criteri personalizzata per le impostazioni di diagnostica:

  1. Assicurarsi di avere installato Azure PowerShell .

  2. Installare lo script usando il comando seguente:

    Install-Script -Name Create-AzDiagPolicy
    
  3. 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"  
    
  4. 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 il criterio nella 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 che 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'iniziativa che include le definizioni dei criteri per creare le impostazioni di diagnostica per ogni servizio di Azure. Creare un'assegnazione tra l'iniziativa 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 l'iniziativa anziché più assegnazioni per ogni tipo di risorsa. Usare la stessa iniziativa per più gruppi di monitoraggio, sottoscrizioni o gruppi di risorse.
  • Modificare l'iniziativa 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 vuole aggiungere un hub eventi. Modificare l'iniziativa anziché creare nuove assegnazioni.

Per informazioni dettagliate sulla creazione di un'iniziativa, vedere Creare e assegnare una definizione di iniziativa. Considerare le seguenti indicazioni:

  • Impostare Categoria su Monitoraggio per raggrupparlo con definizioni di criteri predefinite e personalizzate correlate.
  • Anziché specificare i dettagli per l'area di lavoro Log Analytics e l'hub eventi per le definizioni dei criteri incluse nell'iniziativa, usare un parametro di iniziativa comune. Questo parametro consente di specificare facilmente un valore comune per tutte le definizioni dei criteri e modificare tale valore, se necessario.

Screenshot that shows settings for initiative definition.

Assegnazione

Assegnare l'iniziativa 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.

Screenshot of the settings for the Basics tab in the Assign initiative section of the Diagnostic settings to Log Analytics workspace in the Azure portal.

Usando i parametri dell'iniziativa, è possibile specificare l'area di lavoro o qualsiasi altro dettaglio una volta per tutte le definizioni dei criteri nell'iniziativa.

Screenshot that shows initiative parameters on the Parameters tab.

Correzione

L'iniziativa verrà applicata 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 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. Per informazioni dettagliate sulla correzione, vedere Correggere le risorse non conformi con Criteri di Azure.

Screenshot that shows initiative remediation for a Log Analytics workspace.

Risoluzione dei problemi

Categoria di metriche non supportata

Quando si distribuisce un'impostazione di diagnostica, viene visualizzato un messaggio di errore simile alla categoria metrica '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 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 da febbraio 2021, il back-end è stato aggiornato per verificare in modo specifico che la categoria di metriche specificata sia accurata. Questa modifica ha causato l'esito negativo di alcune distribuzioni.

Se viene visualizzato questo errore, aggiornare le distribuzioni in modo da sostituire qualsiasi nome di categoria delle metriche con "AllMetrics" per risolvere il problema. Se in precedenza la distribuzione aggiungeva più categorie, deve essere mantenuta solo una con il riferimento 'AllMetrics'. Se il problema persiste, contattare 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 id risorsa 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 spostarne le risorse in una nuova. In caso contrario, sarà necessario ricreare la risorsa.

Passaggi successivi