Partager via


Personnaliser le moteur d’optimisation Azure

Le moteur d’optimisation Azure (AOE) est un ensemble de runbooks Azure Automation qui collectent, ingèrent et analysent les données de consommation et de performances Azure pour fournir des recommandations d’optimisation des coûts. Le moteur est conçu pour être flexible et personnalisable, ce qui vous permet d’ajuster son comportement pour mieux répondre aux besoins de votre organisation. Cet article fournit des conseils sur la façon de personnaliser les paramètres du moteur. Il inclut l’ajustement des seuils, la modification des planifications et le développement de l’étendue du moteur.


Élargir l’étendue du moteur

Par défaut, l’identité managée Azure Automation est affectée au rôle Lecteur uniquement sur l’abonnement respectif. Toutefois, vous pouvez élargir l’étendue de ses recommandations simplement en accordant le même rôle lecteur à d’autres abonnements ou, même plus simple, à un groupe d’administration de niveau supérieur.

Dans le contexte des recommandations de taille appropriée des machines virtuelles augmentées, il se peut que vos machines virtuelles signalent plusieurs espaces de travail. Si vous avez besoin d’inclure d’autres espaces de travail ( en plus de l’AOE principal utilisé) dans l’étendue des recommandations, vous devez simplement ajouter leurs ID d’espace de travail à la AzureOptimization_RightSizeAdditionalPerfWorkspaces variable (voir plus d’informations dans Configuration des espaces de travail).

Si vous êtes un client mutualisé, vous pouvez étendre la portée d’AOE à un locataire autre que celui où il a été déployé. Pour obtenir cette extension, vous devez vous assurer que les conditions préalables suivantes sont remplies :

  • Créez un principal de service (inscription d’application) et un secret dans le locataire secondaire.
  • Accordez les autorisations requises au principal de service dans le locataire secondaire, à savoir Lecteur dans les abonnements/groupes d’administration Azure et Le Lecteur global dans Microsoft Entra ID.
  • Créez des informations d’identification Automation dans le compte Automation d’AOE. Définissez l’ID client du principal de service comme nom d’utilisateur et le secret en tant que mot de passe.
  • Exécutez le Register-MultitenantAutomationSchedules.ps1 script (disponible dans le dossier racine AOE) dans le contexte de l’abonnement où AOE a été déployé. Ce script crée de nouvelles planifications de travail pour chacun des runbooks d’exportation et les configure pour interroger le locataire secondaire. Vous devez simplement appeler le script à l’aide de la syntaxe suivante :
./Register-MultitenantAutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> -TargetSchedulesSuffix <suffix to append to every new job schedules, e.g., Tenant2> -TargetTenantId <secondary tenant GUID> -TargetTenantCredentialName <name of the Automation credential created in the previous step> [-TargetSchedulesOffsetMinutes <offset in minutes relative to original schedules, defaults to 0>] [-TargetAzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>] [-ExcludedRunbooks <An array of runbook names to exclude from the process>] [-IncludedRunbooks <An array of runbook names to include in the process>]

Ajuster les planifications

Par défaut, l’heure de base des planifications AOE Automation est définie comme heure de déploiement. Peu après la fin du déploiement initial, les exportations, les ingestions et les runbooks de recommandations s’exécutent en fonction des planifications par défaut du moteur. Par exemple, si vous déployez AOE le lundi à 11 h 00, vous obtenez de nouvelles recommandations tous les lundis à 2 h 30. Si cette planification, pour une raison quelconque, ne correspond pas à vos besoins, vous pouvez la réinitialiser au temps qui vous convient mieux, à l’aide du Reset-AutomationSchedules.ps1 script (disponible dans le dossier racine AOE). Vous devez simplement appeler le script suivant. Suivez la syntaxe et répondez aux demandes d’entrée :

./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]

L’heure de base que vous choisissez doit être au format UTC et doit être définie en fonction du jour de la semaine et de l’heure que vous souhaitez générer des recommandations. Vous devez déduire 3h30m à partir du moment que vous choisissez. C’est parce que l’heure de base définit les planifications pour tous les runbooks d’automatisation dépendants qui doivent s’exécuter avant la génération des recommandations. Par exemple, supposons que vous souhaitiez que les recommandations soient générées tous les lundis à 8h30 ; l’heure de base est la date de calendrier suivante qui tombe le lundi, à 5h00. Le format de la date que vous choisissez doit être AAAA-MM-JJ HH :mm :ss, par exemple 2022-01-03 05:00:00.

Le script vous demande également d’entrer, si nécessaire, le groupe worker hybride dans lequel vous souhaitez que les runbooks s’exécutent (voir la sous-section suivante).


Mettre à l’échelle des runbooks AOE avec Hybrid Worker

Par défaut, les runbooks AOE Automation sont exécutés dans le contexte du bac à sable Azure Automation. Vous pouvez rencontrer des problèmes de performances en raison des limites de mémoire du bac à sable Automation. Vous pouvez également décider d’implémenter des points de terminaison privés pour le compte de stockage ou SQL Database afin de renforcer la sécurité d’AOE. Dans les deux cas, vous devez exécuter des runbooks à partir d’un Worker hybride. Il s’agit d’une machine virtuelle Azure ou locale avec l’extension Automation Hybrid Worker. Pour modifier le contexte d’exécution des runbooks AOE, vous devez utiliser le Reset-AutomationSchedules.ps1 script. Découvrez comment utiliser le script dans la sous-section précédente. Après avoir défini l’heure de base de l’exécution des runbooks, entrez le nom du groupe worker hybride dans lequel vous souhaitez que les runbooks s’exécutent.

Important

  • La machine Worker hybride doit avoir installé les modules PowerShell requis. Le upgrade-manifest.json fichier contient la liste des modules requis.
  • Une fois que vous avez modifié le contexte d’exécution du runbook en Worker hybride, vous devez toujours utiliser l’indicateur DoPartialUpgrade chaque fois que vous mettez à niveau AOE, ou si vous perdez les paramètres de planification du runbook et rétablissez la configuration de bac à sable par défaut.
  • L’identité managée utilisée pour s’authentifier auprès d’Azure, de l’ID Microsoft Entra et des étendues de compte de facturation est toujours utilisée par Azure Automation. Elle est utilisée même si l’ordinateur Worker hybride a une identité managée affectée (voir les détails). Les identités managées affectées par l’utilisateur sont prises en charge dans le contexte des Workers hybrides uniquement si :
    • Le compte Automation n’a pas d’identité managée associée, autrement dit, seule la machine Worker hybride peut avoir une identité managée affectée par l’utilisateur.
    • Tous les runbooks s’exécutent dans le contexte du Worker hybride. Dans ce cas, vous devez créer une AzureOptimization_UAMIClientID variable Automation avec l’ID client d’identité managée affectée par l’utilisateur en tant que valeur.
    • La AzureOptimization_AuthenticationOption valeur de la variable Automation est mise à jour vers UserAssignedManagedIdentity.

Ajuster les seuils

Pour les recommandations de coût Advisor, la configuration par défaut de l’AOE produit des agrégations de métriques de 99e machine virtuelle centiles, mais vous pouvez les ajuster pour qu’elles soient moins conservatrices. Il existe également des seuils de métriques réglables utilisés pour calculer le score d’ajustement. Les seuils par défaut sont 30 % pour le processeur (5 % pour les recommandations d’arrêt), 50 % pour la mémoire (100 % pour l’arrêt) et 750 Mbits/s pour la bande passante réseau (10 Mbits/s pour l’arrêt). Toutes les configurations réglables sont disponibles en tant que variables Azure Automation. Les informations contenues dans le tableau suivant mettent en évidence les variables de configuration les plus pertinentes. Pour y accéder, accédez à l’option de menu Ressources partagées du compte Automation - Variables .

Variable Description
AzureOptimization_AdvisorFilter Si vous n’êtes pas intéressé par l’obtention de recommandations pour tous les piliers non-Cost Advisor, vous pouvez spécifier un filtre au niveau du pilier (liste séparée par des virgules avec au moins l’une des valeurs suivantes : HighAvailability,Security,Performance,OperationalExcellence). La valeur par défaut est de tous les piliers.
AzureOptimization_AuthenticationOption La méthode d’authentification par défaut pour les Runbooks Automation est RunAsAccount. Toutefois, vous pouvez changer ManagedIdentity si vous utilisez un Worker hybride dans une machine virtuelle Azure.
AzureOptimization_ConsumptionOffsetDays Les runbooks de collecte de données Azure Consumption interrogent chaque jour les événements de facturation qui se sont produits il y a sept jours (valeur par défaut). Vous pouvez passer à un décalage plus proche, mais gardez à l’esprit que certains types d’abonnement (par exemple, MSDN) ne prennent pas en charge une valeur inférieure.
AzureOptimization_PerfPercentileCpu Le centile par défaut pour les agrégations de métriques du processeur est 99. À mesure que le centile est inférieur, l’algorithme de score d’ajustement de taille de la machine virtuelle s’ajuste de manière moins prudente.
AzureOptimization_PerfPercentileDisk Le centile par défaut pour les agrégations de métriques d’E/S de disque/débit est 99. À mesure que le centile est inférieur, l’algorithme de score d’ajustement de taille de la machine virtuelle s’ajuste de manière moins prudente.
AzureOptimization_PerfPercentileMemory Le centile par défaut pour les agrégations de métriques de mémoire est 99. À mesure que le centile est inférieur, l’algorithme de score d’ajustement de taille de la machine virtuelle s’ajuste de manière moins prudente.
AzureOptimization_PerfPercentileNetwork Le centile par défaut pour les agrégations de métriques réseau est 99. À mesure que le centile est inférieur, l’algorithme de score d’ajustement de taille de la machine virtuelle s’ajuste de manière moins prudente.
AzureOptimization_PerfPercentileSqlDtu Centile par défaut à utiliser pour les métriques DTU de base de données SQL. À mesure que le centile est inférieur, l’algorithme de taille appropriée sql Database s’ajuste de manière moins prudente.
AzureOptimization_PerfThresholdCpuPercentage Seuil processeur (en % temps processeur). Au-dessus de celui-ci, le score d’ajustement de taille de la machine virtuelle diminue. En dessous, les déclencheurs de recommandation de coût de taille appropriée du groupe de machines virtuelles identiques Azure Virtual Machine Set (groupe identique).
AzureOptimization_PerfThresholdCpuShutdownPercentage Seuil processeur (en % temps processeur). Au-dessus de celle-ci, le score d’ajustement de taille de la machine virtuelle diminue (recommandations d’arrêt uniquement).
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage Seuil du processeur (maximum observé en % de temps processeur). Au-dessus de celui-ci, la recommandation de performances de taille droite du groupe identique est déclenchée.
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage Seuil processeur (moyenne observée en % temps processeur). Au-dessus de celui-ci, la recommandation de performances de taille droite du groupe identique est déclenchée.
AzureOptimization_PerfThresholdMemoryPercentage Seuil de mémoire (en % mémoire utilisée). Au-dessus de celui-ci, le score d’ajustement de taille de la machine virtuelle diminue. En dessous, les déclencheurs de recommandation coût de taille appropriée du groupe identique.
AzureOptimization_PerfThresholdMemoryShutdownPercentage Seuil de mémoire (en % mémoire utilisée). Au-dessus de celle-ci, le score d’ajustement de taille de la machine virtuelle diminue (recommandations d’arrêt uniquement).
AzureOptimization_PerfThresholdMemoryDegradedPercentage Seuil de mémoire (en % mémoire utilisée). Au-dessus de celui-ci, la recommandation de performances de taille droite du groupe identique est déclenchée.
AzureOptimization_PerfThresholdNetworkMbps Seuil réseau (en Mbits/s total). Au-dessus de celui-ci, le score d’ajustement de taille de la machine virtuelle diminue.
AzureOptimization_PerfThresholdNetworkShutdownMbps Seuil réseau (en Mbits/s total). Au-dessus de celle-ci, le score d’ajustement de taille de la machine virtuelle diminue (recommandations d’arrêt uniquement).
AzureOptimization_PerfThresholdDtuPercentage Seuil de pourcentage d’utilisation DTU. En dessous, une instance SQL Database est considérée comme sous-utilisée.
AzureOptimization_RecommendAdvisorPeriodInDays Intervalle en jours pour rechercher des recommandations Advisor dans le référentiel Log Analytics : la valeur par défaut est 7, car les recommandations advisor sont collectées une fois par semaine.
AzureOptimization_RecommendationAADMaxCredValidityYears Nombre maximal d’années pour une validité des informations d’identification/certificat du principal de service : toute validité au-dessus de cet intervalle génère une recommandation de sécurité. La valeur par défaut est 2.
AzureOptimization_RecommendationAADMinCredValidityDays Le nombre minimal de jours pour les informations d’identification/certificat d’un principal de service avant son expiration : toute validité inférieure à cet intervalle génère une recommandation d’excellence opérationnelle. La valeur par défaut est 30.
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays Nombre de jours consécutifs où une machine virtuelle a été libérée avant d’être recommandée pour suppression (la machine virtuelle a été libérée depuis longtemps avec des disques qui entraînent toujours des coûts). La valeur par défaut est 30.
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold Pourcentage maximal toléré pour l’utilisation de l’espace IP du sous-réseau. La valeur par défaut est 80.
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold Pourcentage minimal pour l’utilisation de l’espace IP du sous-réseau : toute utilisation inférieure à cette valeur indique le sous-réseau respectif comme utilisant un espace IP faible. La valeur par défaut est 5.
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays Âge minimal en jours pour qu’un sous-réseau vide soit marqué, ce qui évite de marquer les sous-réseaux nouvellement créés. La valeur par défaut est 30.
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions Liste de noms de sous-réseaux séparés par des virgules, séparées par des guillemets uniques, qui doivent être exclus des recommandations de pourcentage d’utilisation du sous-réseau, par exemple, 'gatewaysubnet'.'azurebastionsubnet'. La valeur par défaut est 'gatewaysubnet'.
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold Le pourcentage maximal d’affectations RBAC limite l’utilisation. La valeur par défaut est 80.
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold Le pourcentage maximal de groupes de ressources par abonnement limite l’utilisation. La valeur par défaut est 80.
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit Limite maximale pour les affectations RBAC par abonnement. Actuellement défini sur 2000 (comme documenté).
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit Limite maximale pour les affectations RBAC par groupe d’administration. Actuellement défini sur 500 (comme documenté).
AzureOptimization_RecommendationResourceGroupsPerSubLimit Limite maximale pour le nombre de groupes de ressources par abonnement. Actuellement défini sur 980 (comme documenté).
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage Pourcentage minimal de croissance du compte de stockage requis pour marquer le stockage comme n’ayant pas de stratégie de rétention en place.
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold Coût mensuel minimal (dans votre devise EA/MCA) requis pour marquer le stockage comme n’ayant pas de stratégie de rétention en place.
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays Période de recherche (en jours) pour analyser la croissance du compte de stockage.
AzureOptimization_ReferenceRegion Région Azure utilisée comme référence pour obtenir la liste des références SKU disponibles (par westeuropedéfaut).
AzureOptimization_RemediateRightSizeMinFitScore Le score d’ajustement minimal d’une recommandation de taille de machine virtuelle doit avoir pour que la correction se produise.
AzureOptimization_RemediateRightSizeMinWeeksInARow Le nombre minimal de semaines dans une ligne, une recommandation de taille de taille de machine virtuelle doit être terminée pour que la correction se produise.
AzureOptimization_RemediateRightSizeTagsFilter Les paires nom/valeur de balise doivent avoir une recommandation de taille de taille de machine virtuelle pour que la correction se produise. Exemple : [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore Le score d’ajustement minimal d’une recommandation de machine virtuelle désallouée longue doit avoir pour que la correction se produise.
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow Le nombre minimal de semaines dans une ligne, une recommandation de machine virtuelle désallouée longue doit être terminée pour que la correction se produise.
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter Le nom/la valeur de balise associe une recommandation de machine virtuelle désallouée longue doit avoir pour que la correction se produise. Exemple : [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore Le score d’ajustement minimal d’une recommandation de disque non attaché doit avoir pour que la correction se produise.
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow Le nombre minimal de semaines d’une ligne d’une recommandation de disque non attaché doit être terminé pour que la correction se produise.
AzureOptimization_RemediateUnattachedDisksAction Action à appliquer pour une correction de recommandation de disque non attachée (Delete ou Downsize).
AzureOptimization_RemediateUnattachedDisksTagsFilter Les paires nom/valeur de balise doivent avoir une recommandation de disque non attachée pour que la correction se produise. Exemple : [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces Liste séparée par des virgules d’autres ID d’espace de travail Log Analytics où rechercher les métriques de machine virtuelle (voir Configuration des espaces de travail).
AzureOptimization_PerfThresholdDiskIOPSPercentage Seuil du pourcentage d’utilisation des IOPS de disque. En dessous, les déclencheurs de recommandation sur les disques SSD Premium sous-utilisés.
AzureOptimization_PerfThresholdDiskMBsPercentage Seuil de pourcentage d’utilisation du débit du disque. En dessous, les déclencheurs de recommandation sur les disques SSD Premium sous-utilisés.
AzureOptimization_RecommendationsMaxAgeInDays Âge maximal (en jours) d’une recommandation à conserver dans la base de données SQL. Valeur par défaut : 365.
AzureOptimization_RetailPricesCurrencyCode Code monétaire (par exemple, EUR, USD, etc.) utilisé pour collecter les prix de vente au détail des réservations.
AzureOptimization_PriceSheetMeterCategories Les catégories de compteurs séparées par des virgules utilisées pour le filtrage de feuille de prix, afin d’éviter d’ingérer des données inutiles. La valeur par défaut est "Virtual Machines,Storage".
AzureOptimization_ConsumptionScope L’étendue des exportations de consommation : Subscription (par défaut), BillingProfile (MCA uniquement) ou BillingAccount (pour MCA, nécessite l’ajout du rôle Lecteur de compte de facturation à l’identité managée AOE). Affichez plus de détails.

Produits connexes :

Solutions connexes :