Créer des paramètres de diagnostic à grande échelle à l’aide de stratégies et d’initiatives Azure

Pour surveiller des ressources Azure, il est nécessaire de créer des paramètres de diagnostic pour chaque ressource. Ce processus peut être difficile à gérer lorsque vous disposez de nombreuses ressources. Pour simplifier le processus de création, puis d’application de paramètres de diagnostic à grande échelle, utilisez Azure Policy pour générer automatiquement des paramètres de diagnostic pour les ressources nouvelles et existantes.

Chaque type de ressource Azure comporte un ensemble unique de catégories répertoriées dans les paramètres de diagnostic. Par conséquent, chaque type de ressource nécessite une définition de stratégie distincte. Certains types de ressources comportent des définitions de stratégie intégrées que vous pouvez affecter sans modification. Pour les autres types de ressources, vous pouvez créer une définition personnalisée.

Groupes de catégories de journaux

Les groupes de catégories de journaux regroupent des types de journaux similaires. Les groupes de catégories facilitent la référence à plusieurs journaux dans une seule commande. Un groupe de catégories allLogs contient tous les journaux. En outre, un groupe de catégories audit inclut tous les journaux d’audit. En utilisant dans un groupe de catégories, vous pouvez définir une stratégie qui se met à jour dynamiquement à mesure que de nouvelles catégories de journaux sont ajoutées au groupe.

Définitions de stratégie intégrées pour Azure Monitor

Il existe généralement trois définitions de stratégie intégrées pour chaque type de ressource, correspondant aux trois destinations auxquelles envoyer des diagnostics :

  • Espaces de travail Log Analytics
  • Comptes de stockage Azure
  • Hubs d'événements

Affectez les stratégies pour le type de ressource en fonction des destinations dont vous avez besoin.

Un ensemble de stratégies et d’initiatives intégrées en fonction des groupes de catégories de journaux d’audit a été développé pour vous aider à appliquer des paramètres de diagnostic en quelques étapes seulement. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Activer les paramètres de diagnostic par groupe de catégories à l’aide de stratégies intégrées.

Pour obtenir une liste complète des stratégies intégrées pour Azure Monitor, veuillez consulter la rubrique Définitions intégrées Azure Policy pour Azure Monitor.

Définitions de stratégie personnalisées

Pour les types de ressource qui n’ont pas de stratégie intégrée, vous devez créer une définition de stratégie personnalisée. Vous pouvez créer une stratégie manuellement sur le Portail Azure en copiant une stratégie intégrée existante, puis en la modifiant pour votre type de ressource. Vous pouvez également créer la stratégie programmatiquement en utilisant un script dans PowerShell Gallery.

Le script Create-AzDiagPolicy crée des fichiers de stratégie pour un type de ressource déterminé que vous pouvez installer via PowerShell ou l’interface Azure CLI. Pour créer une définition de stratégie personnalisée pour des paramètres de diagnostic, procédez comme suit :

  1. Vérifiez qu’Azure PowerShell est installé.

  2. Installez le script en utilisant la commande suivante :

    Install-Script -Name Create-AzDiagPolicy
    
  3. Exécutez le script en spécifiant la destination des journaux à l’aide des paramètres. Vous êtes ensuite invité à spécifier un abonnement et un type de ressource.

    Par exemple, pour créer une définition de stratégie qui envoie des journaux vers un espace de travail Log Analytics et un Event Hub, utilisez la commande suivante :

    Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    

    Vous pouvez aussi spécifier un abonnement et un type de ressource dans la commande. Par exemple, pour créer une définition de stratégie qui envoie des journaux vers un espace de travail Log Analytics et un Event Hub pour des bases de données Azure SQL Server, utilisez la commande suivante :

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. Le script crée des dossiers distincts pour chaque définition de stratégie. Chaque dossier contient trois fichiers nommés azurepolicy.json, azurepolicy.rules.json et azurepolicy.parameters.json. Si vous voulez créer la stratégie manuellement sur le portail Azure, vous pouvez copier et coller le contenu du fichier azurepolicy.json, car il contient la définition de stratégie complète. Utilisez les deux autres fichiers avec PowerShell ou l’interface Azure CLI pour créer la définition de stratégie à partir d’une ligne de commande.

    Les exemples suivants montrent comment installer la définition de stratégie à partir de PowerShell et de l’interface Azure CLI. Chaque exemple comprend des métadonnées pour spécifier une catégorie de Supervision pour regrouper la nouvelle définition de stratégie avec les définitions de stratégie intégrées.

    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
    

Initiative

Au lieu de créer une affectation pour chaque définition de stratégie, une stratégie courante consiste à créer une initiative incluant les définitions de stratégie pour créer des paramètres de diagnostic pour chaque service Azure. Créez une affectation entre l’initiative et un groupe d’administration, un abonnement ou un groupe de ressources, en fonction de la façon dont vous gérez votre environnement. Cette stratégie offre les avantages suivants :

  • Créez une seule affectation pour l’initiative au lieu de plusieurs pour chaque type de ressource. Utilisez la même initiative pour plusieurs groupes de supervision, abonnements ou groupes de ressources.
  • Modifiez l’initiative quand vous devez ajouter un nouveau type de ressource ou une nouvelle destination. Par exemple, vos exigences initiales peuvent être d’envoyer les données uniquement vers un espace de travail Log Analytics et d’ajouter par la suite un Event Hub. Modifiez l’initiative au lieu de créer de nouvelles affectations.

Pour plus d’informations sur la création d’une initiative, consultez Créer et attribuer une définition d’initiative. Tenez compte des recommandations suivantes :

  • Définissez la Catégorie sur Supervision pour la regrouper avec les définitions de stratégie intégrées et personnalisées associées.
  • Au lieu de spécifier les détails de l’espace de travail Log Analytics et de l’Event Hub pour la définition de stratégie incluse dans l’initiative, utilisez un paramètre d’initiative commun. Ce paramètre vous permet de spécifier facilement une valeur commune pour l’ensemble des définitions de stratégie et de changer cette valeur si nécessaire.

Screenshot that shows settings for initiative definition.

Affectation

Affectez l’initiative à un groupe d’administration, un abonnement ou un groupe de ressources Azure en fonction de l’étendue de vos ressources à superviser. Un groupe d’administration est utile pour définir l’étendue de la stratégie, surtout si votre organisation possède plusieurs abonnements.

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.

Les paramètres initiative vous permettent de spécifier l’espace de travail ou d’autres détails une seule fois pour toutes les définitions de stratégie de l’initiative.

Screenshot that shows initiative parameters on the Parameters tab.

Correction

L’initiative s’appliquera à chaque machine virtuelle dès sa création. Une tâche de correction déploie les définitions de stratégie de l’initiative dans les ressources existantes, ce qui vous permet de créer des paramètres de diagnostic pour toutes les ressources qui ont déjà été créées.

Quand vous créez l’affectation à partir du portail Azure, vous avez la possibilité de créer une tâche de correction simultanément. Pour plus d’informations sur la correction, consultez Corriger les ressources non conformes avec Azure Policy.

Screenshot that shows initiative remediation for a Log Analytics workspace.

Résolution des problèmes

La catégorie de métrique n’est pas prise en charge

Lors du déploiement d’un paramètre de diagnostic, vous recevez un message d’erreur semblable à La catégorie de métrique « xxxx » n’est pas prise en charge. Vous pouvez recevoir cette erreur même si votre déploiement précédent a réussi.

Le problème se produit lors de l’utilisation d’un modèle Resource Manager, de l’API REST, d’Azure CLI ou d’Azure PowerShell. Les paramètres de diagnostic créés via le Portail Azure ne sont pas affectés, car seuls les noms des catégories prises en charge sont présentés.

Le problème est dû à une modification récente de l’API sous-jacente. Les catégories de métriques autres qu’« AllMetrics » ne sont pas prises en charge et ne l’ont jamais été, à l’exception de quelques services Azure spécifiques. Par le passé, les autres noms de catégorie étaient ignorés lors du déploiement d’un paramètre de diagnostic. Le backend Azure Monitor redirigeait ces catégories vers « AllMetrics ». À compter de février 2021, le back-end a été mis à jour et vérifie maintenant spécifiquement que la catégorie de métriques fournie est exacte. Ce changement a entraîné l’échec de certains déploiements.

Si vous recevez cette erreur, mettez à jour vos déploiements en y remplaçant tous les noms de catégories de métriques par « AllMetrics » pour résoudre le problème. Si le déploiement cumulait déjà plusieurs catégories, une seule catégorie avec la référence « AllMetrics » doit être conservée. Si le problème persiste, contactez le support Azure sur le Portail Azure.

Le paramètre disparaît en raison de la présence de caractères non ASCII dans resourceID

Les paramètres de diagnostic ne prennent pas en charge les ID de ressource (resourceID) comportant des caractères non ASCII (par exemple Preproducción). Puisque vous ne pouvez pas renommer de ressources dans Azure, la seule option consiste à créer une nouvelle ressource sans caractères non ASCII. Si les caractères se trouvent dans le nom d’un groupe de ressources, vous pouvez déplacer les ressources dans un nouveau groupe. Sinon, vous devez recréer la ressource.

Étapes suivantes