Dela via


Anpassa Azure-optimeringsmotorn

Azure-optimeringsmotorn (AOE) är en uppsättning Azure Automation-runbooks som samlar in, matar in och analyserar Azure-förbruknings- och prestandadata för att ge rekommendationer om kostnadsoptimering. Motorn är utformad för att vara flexibel och anpassningsbar, så att du kan anpassa dess beteende så att det passar organisationens behov bättre. Den här artikeln innehåller vägledning om hur du anpassar motorns inställningar. Den omfattar att justera tröskelvärden, ändra scheman och utöka motorns omfång.


Bredda motoromfånget

Som standard tilldelas Azure Automation Managed Identity rollen Läsare endast för respektive prenumeration. Du kan dock utöka omfånget för dess rekommendationer bara genom att ge samma läsarroll till andra prenumerationer eller, till och med enklare, till en hanteringsgrupp på högsta nivån.

I samband med rekommendationer för förstärkt virtuell maskin (VM) med rätt storlek kan du ha dina virtuella maskiner som rapporterar till flera olika arbetsytor. Om du behöver inkludera andra arbetsytor – förutom den huvudsakliga som AOE använder – i rekommendationsomfånget behöver du bara lägga till deras arbetsyte-ID:n i variabeln AzureOptimization_RightSizeAdditionalPerfWorkspaces (se mer information i Konfigurera arbetsytor).

Om du har flera Entra ID-kataloger (även kallade klienter) kan du utöka AOE:s räckvidd till en annan klientorganisation än den där den distribuerades. För att uppnå detta har du två alternativ, var och en med sina för- och nackdelar:

Tjänsthuvudprincip i sekundär klientorganisation Azure Lighthouse-distribution
Ger den bredaste funktionstäckningen (se begränsningarna nedan) Ger en nästan fullständig funktionstäckning (se begränsningar nedan)
Använder ett mindre säkert och ohanterat autentiseringsalternativ baserat på hemligheter Erbjuder robust autentisering och återanvänder motorns hanterade identitet
Stöder inte att återanvända Perf-mått från Log Analytics-arbetsytor i den sekundära klientorganisationen när du utökar rekommendationer om rätt storlek på virtuella datorer. Inkluderar inte stöd för Microsoft Entra-objekt, vilket påverkar fullständigheten i arbetsboken Identiteter och roller och Microsoft Entra ID-relaterade rekommendationer. Fliken Översikt över principefterlevnadsarbetsbok hämtar inte data från den sekundära klientorganisationen. endast den detaljerade principanalysen stöds.
Implementeringen baseras på körningen av ett PowerShell-hjälpskript Implementeringen baseras på distributionen av en Azure Resource Manager-mall
Mer skalbar täckning för sekundär hyresgäst, bara genom att bevilja behörigheter till tjänstens huvudprincip på en högre nivå. Driftsättningen görs per prenumeration i den sekundära klientorganisationen och behöver Azure Policy för skalning.
Mindre kostnadseffektivt eftersom jobbscheman dupliceras för den sekundära hyresgästen Mer kostnadseffektivt eftersom befintliga jobbplaner automatiskt täcker andrahandshyresgästen.

Multitenant med tjänstehuvudman i sekundär hyresgästorganisation

Om du vill bredda motoromfånget med tjänstehuvudsbaserad metod måste du säkerställa att följande förutsättningar är uppfyllda:

  • Skapa ett huvudnamn för tjänsten (appregistrering) och en hemlighet i den sekundära klientorganisationen.
  • Bevilja nödvändiga behörigheter till tjänstens huvudnamn i den sekundära klientorganisationen, nämligen Läsare i Azure-prenumerationer/hanteringsgrupper och Global läsare i Microsoft Entra-ID.
  • Skapa en Automation-autentiseringsuppgift i AOE:s Automation-konto. Ange tjänstens huvudnamns klient-ID som användarnamn och hemlighet som lösenord.
  • Kör skriptet Register-MultitenantAutomationSchedules.ps1 (tillgängligt i AOE-rotmappen) i kontexten för prenumerationen där AOE distribuerades. Det här skriptet skapar nya jobbscheman för var och en av exportrunböckerna och konfigurerar dem för att hämta information från den sekundära hyresgästen. Du behöver bara anropa skriptet med hjälp av följande syntax:
./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>]

Multitenant med Azure Lighthouse

Om du vill bredda motoromfånget med hjälp av den Azure Lighthouse-baserade metoden måste du se till att du har följande förutsättningar:

  • Förbered Azure Resource Manager-mallen som ska distribueras i den sekundära klientorganisationen. Du kan återanvända as-is referensmallen på vår lagringsplats (lighthouse-template.json fil som är tillgänglig i AOE-rotmappen).
  • Om du distribuerar mallen för en enskild prenumeration behöver du bara följa stegen som beskrivs här genom att använda referensmallen ovan och ange mallparametrarnas värden (som en separat parameterfil eller direkt i Azure Portal-gränssnittet).
  • Om du behöver distribuera i stor skala till flera prenumerationer kan du använda Azure Policy genom att följa anvisningarna här och justera principdefinitionskoden så att den följer referensmallen ovan.
  • Oavsett distributionsmetod är de mallparametrar som du måste ange följande:
    • managedByTenantId – Microsoft Entra-klientorganisations-ID för den klientorganisation där AOE har distribuerats.
    • principalId – Microsoft Entra-objekt-ID för den systemhanterade identiteten för AOE-automationskontot.
    • principalIdDisplayName – AOE Automation-kontonamn.

Justera scheman

Som standard anges bastiden för AOE Automation-scheman som distributionstid. Strax efter att den första distributionen har slutförts körs exporter, inmatningar och rekommendationer enligt motorns standardscheman. Om du till exempel distribuerar AOE på en måndag klockan 11:00 får du nya rekommendationer varje måndag klockan 14:30. Om det här schemat av någon anledning inte passar dina behov kan du återställa det till den tid som passar dig bättre med hjälp av skriptet Reset-AutomationSchedules.ps1 (tillgängligt i AOE-rotmappen). Du måste bara anropa följande skript. Följ syntaxen och besvara indatabegäranden:

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

Den bastid du väljer måste vara i UTC och måste definieras enligt den dag i veckan och den timme som du vill att rekommendationer ska genereras. Du måste dra av 3 timmar och 30 minuter från den tid du väljer. Det beror på att bastiden definierar scheman för alla beroende Automation-runbooks som måste köras innan rekommendationerna genereras. Anta till exempel att du vill att rekommendationer ska genereras varje måndag kl. 08.30. bastiden är nästa kalenderdatum som infaller en måndag kl. 05.00. Formatet för det datum du väljer måste vara ÅÅÅÅ-MM-dd HH:mm:ss, till exempel 2022-01-03 05:00:00.

Skriptet ber dig också att ange, om det behövs, den Hybrid Worker-grupp som du vill att runbooks ska köras i (se nästa underavsnitt).


Skala AOE-runbooks med Hybrid Worker

Som standard körs AOE Automation-runbooks i kontexten för Azure Automation-sandbox-miljön. Du kan stöta på prestandaproblem på grund av minnesgränserna för sandbox-miljön i Automation. Eller så kan du välja att implementera privata slutpunkter för lagringskontot eller SQL Database för att förstärka AOE:s säkerhet. I båda fallen måste du köra runbooks från en Hybrid Worker. Det är en Azure- eller lokal virtuell dator med Tillägget Automation Hybrid Worker. Om du vill ändra körningskontexten för AOE-körböcker måste du använda skriptet Reset-AutomationSchedules.ps1 . Se hur du använder skriptet i föregående underavsnitt. När du har angett runbooks-körningens bastid anger du det Hybrid Worker-gruppnamn som du vill att runbooks ska köras i.

Viktigt!

  • Hybrid Worker-datorn måste ha nödvändiga PowerShell-moduler installerade. Filen upgrade-manifest.json innehåller listan över nödvändiga moduler.
  • När du har ändrat runbook-körningskontexten till Hybrid Worker måste du alltid använda DoPartialUpgrade flaggan när du uppgraderar AOE, annars förlorar du inställningarna för runbook-schemat och återgår till standardkonfigurationen för sandbox-miljön.
  • Den hanterade identitet som används för att autentisera mot Azure, Microsoft Entra-ID och faktureringskontoomfattningar är fortfarande den som Azure Automation använder. Den används även om Hybrid Worker-datorn har en tilldelad hanterad identitet (se information). Användartilldelade hanterade identiteter stöds endast i kontexten hybridarbetare om:
    • Automation-kontot har ingen associerad hanterad identitet, dvs. endast Hybrid Worker-datorn kan ha en användartilldelad hanterad identitet.
    • Alla runbooks körs i kontexten för Hybrid Worker. I det här fallet måste du skapa en AzureOptimization_UAMIClientID Automation-variabel med användartilldelat klient-ID för hanterad identitet som värde.
    • Automation-variabelvärdet AzureOptimization_AuthenticationOption uppdateras till UserAssignedManagedIdentity.

Justera tröskelvärden

För Advisor-kostnadsrekommendationer genererar AOE:s standardkonfiguration aggregeringar av percentilens 99:e vm-mått, men du kan justera dem så att de blir mindre konservativa. Det finns också justerbara tröskelvärden för mått som används för att beräkna anpassningspoängen. Standardtröskelvärdena är 30 % för CPU (5 % för avstängningsrekommendationer), 50 % för minne (100 % för avstängning) och 750 Mbit/s för nätverksbandbredd (10 Mbit/s för avstängning). Alla justerbara konfigurationer är tillgängliga som Azure Automation-variabler. Informationen i nästa tabell visar de mest relevanta konfigurationsvariablerna. Om du vill komma åt dem går du till menyalternativet Delade resurser för Automation-konto – Variabler .

Variabel beskrivning
AzureOptimization_AdvisorFilter Om du inte är intresserad av att få rekommendationer för alla icke-Cost Advisor-pelare kan du ange ett filter på pelarnivå (kommaavgränsad lista med minst ett av följande värden: HighAvailability,Security,Performance,OperationalExcellence). Standardinställningar för alla pelare.
AzureOptimization_AuthenticationOption Standardautentiseringsmetoden för Automation Runbooks är RunAsAccount. Men du kan ändra till ManagedIdentity om du använder en Hybrid Worker på en virtuell Azure-dator.
AzureOptimization_ConsumptionOffsetDays Runbooken för datainsamling för Azure Consumption frågar varje dag efter faktureringshändelser som inträffade för sju dagar sedan (standard). Du kan ändra till en närmare förskjutning, men tänk på att vissa prenumerationstyper (till exempel MSDN) inte stöder ett lägre värde.
AzureOptimization_PerfPercentileCpu Standardpercentilen för aggregationer av CPU-mått är 99. När percentilen sänks blir algoritmen för att anpassa storleken på den virtuella datorn mindre konservativ.
AzureOptimization_PerfPercentileDisk Standardpercentilen för metriksaggregeringar av disk-IO/genomströmning är 99. När percentilen sänks justeras algoritmen för rätt storlek på den virtuella datorn mindre konservativt.
AzureOptimization_PerfPercentileMemory Standardperilen för sammansättningar av minnesmått är 99. När percentilen sjunker justeras algoritmen för att anpassa storleken på den virtuella datorn mindre konservativt.
AzureOptimization_PerfPercentileNetwork Standardperilen för nätverksmåttaggregationer är 99. När percentilen sänks justeras algoritmen för passande storlek på den virtuella maskinen på ett mindre konservativt sätt.
AzureOptimization_PerfPercentileSqlDtu Standardpercentilen som ska användas för SQL DB DTU-mätvärden. När percentilen sänks justeras SQL Database-algoritmen med rätt storlek mindre konservativt.
AzureOptimization_PerfThresholdCpuPercentage Cpu-tröskelvärdet (i % processortid). Ovanför den minskar den virtuella datorns rätt storleksanpassningspoäng. Nedan utlöses rekommendationen för Azure Virtual Machine Scale Set (scale set) med rätt storlek för kostnadsrekommendation.
AzureOptimization_PerfThresholdCpuShutdownPercentage Cpu-tröskelvärdet (i % processortid). Ovanför den minskar den rätta storleksanpassningspoängen för den virtuella datorn (endast avstängningsrekommendationer).
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage Cpu-tröskelvärdet (maximalt observerat i % processortid). Ovanför detta utlöses rätt storlek för skalningsrekommendationer för prestanda.
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage Cpu-tröskelvärdet (genomsnitt observerat i % processortid). Ovanför den utlöses prestandarekommendationer för rätt storlek på skalningssatsen.
AzureOptimization_PerfThresholdMemoryPercentage Tröskelvärdet för minne (i % använt minne). Ovanför detta minskar den virtuella datorns rätta storleksanpassningspoäng. Nedanför utlöses rätt storlek kostnadsrekommendationer för skalningsuppsättningen.
AzureOptimization_PerfThresholdMemoryShutdownPercentage Tröskelvärdet för minne (i % använt minne). När det gäller detta minskar poängen för rätt anpassning av den virtuella datorn (endast rekommendationer för avstängning).
AzureOptimization_PerfThresholdMemoryDegradedPercentage Tröskelvärdet för minne (i % använt minne). Ovanför den utlöses prestandarekommendationen för rätt storlek på skalningsuppsättningen.
AzureOptimization_PerfThresholdNetworkMbps Nätverkströskelvärdet (i Totalt antal Mbit/s). Ovanför den minskar den virtuella datorns anpassade storleksanpassningspoäng.
AzureOptimization_PerfThresholdNetworkShutdownMbps Nätverkströskelvärdet (i Totalt antal Mbit/s). Ovanför detta minskar den virtuella datorns anpassningspoäng för rätt storlek (endast rekommendationer för avstängning).
AzureOptimization_PerfThresholdDtuPercentage Tröskelvärdet för DTU-användningsprocent. Under den anses en SQL Database-instans vara underutnyttad.
AzureOptimization_RecommendAdvisorPeriodInDays Intervallet i dagar för att söka efter Advisor-rekommendationer på Log Analytics-lagringsplatsen – standardvärdet är 7, eftersom Advisor-rekommendationer samlas in en gång i veckan.
AzureOptimization_RecommendationAADMaxCredValidityYears Det maximala antalet år för en tjänsthuvudnamns autentiseringsuppgifter eller certifikats giltighet – alla giltighetstider över detta intervall genererar en säkerhetsrekommendation. Standardvärdet är 2.
AzureOptimization_RecommendationAADMinCredValidityDays Det minsta antalet dagar för autentiseringsuppgifter/certifikat för tjänstens huvudkonto innan det upphör att gälla – eventuella giltigheter under det här intervallet genererar en rekommendation om operativ förträfflighet. Standardvärdet är 30.
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays Antalet dagar i rad som en virtuell dator har varit frigjord innan den rekommenderas för borttagning (den virtuella datorn har varit frigjord under längre tid med diskar som fortfarande medför kostnader). Standardvärdet är 30.
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold Den maximala procentandel som tolereras för ip-utrymmesanvändning för undernät. Standardvärdet är 80.
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold Den minsta procentandelen för ip-utrymmesanvändning för undernätet – all användning under det här värdet flaggar respektive undernät som använder lågt IP-utrymme. Standardvärdet är inställt på 5.
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays Lägsta ålder i dagar för att ett tomt undernät ska flaggas, vilket undviker att flagga nyligen skapade undernät. Standardvärdet är 30.
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions Kommaavgränsad lista, omsatt med enkla citattecken, med undernätsnamn som måste undantas från rekommendationer om andelsanvändning av undernät, till exempel 'gatewaysubnet','azurebastionsubnet'. Standardvärdet är 'gatewaysubnet'.
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold Den maximala procentandelen RBAC-tilldelningar begränsar användningen. Ställs som standard till 80.
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold Den maximala procentandelen resursgrupper som räknas per prenumeration begränsar användningen. Standardinställningen är 80.
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit Den maximala gränsen för RBAC-tilldelningar per prenumeration. För närvarande inställt på 2000 (som dokumenterat).
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit Den maximala gränsen för RBAC-tilldelningar per hanteringsgrupp. För närvarande inställt på 500 (som dokumenterat).
AzureOptimization_RecommendationResourceGroupsPerSubLimit Den maximala gränsen för antal resursgrupper per prenumeration. För närvarande inställt på 980 (som dokumenterat).
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage Den minsta tillväxtprocenten för lagringskontot som krävs för att markera lagring som saknar en kvarhållningsprincip.
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold Den minsta månadskostnaden (i din EA/MCA-valuta) som behövs för att markera att lagring saknar en lagringspolicy.
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays Återblicksperioden (i dagar) för analys av tillväxten hos lagringskontot.
AzureOptimization_ReferenceRegion Azure-regionen som används som referens för att hämta listan över tillgängliga SKU:er (standardvärdet westeurope).
AzureOptimization_RemediateRightSizeMinFitScore Den minimala passningspoäng en virtuell dators rätt storleksrekommendation måste ha för att åtgärden ska genomföras.
AzureOptimization_RemediateRightSizeMinWeeksInARow Det minsta antalet sammanhängande veckor som en rekommendation för rätt storlek på en virtuell dator måste vara uppfylld för att åtgärden ska genomföras.
AzureOptimization_RemediateRightSizeTagsFilter Taggnamn/värde-par en rätt storleksrekommendation för en virtuell maskin måste ha för att åtgärden ska ske. Exempel: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore Den lägsta passningspoängen för en lång frigjord VM-rekommendation måste ha för att reparationen ska ske.
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow Det minsta antalet veckor i rad som en lång frigjord VM-rekommendation måste vara klar för att reparationen ska ske.
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter De taggnamn/värde-par en VM-rekommendation som varit frigjord länge måste ha för att åtgärden ska kunna ske. Exempel: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore Den minsta passande poäng som en oansluten diskrekommendation måste ha för att åtgärden ska ske.
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow Det minsta antalet veckor i rad som en oansluten diskrekommendation måste vara klar för att reparationen ska ske.
AzureOptimization_RemediateUnattachedDisksAction Åtgärden som ska tillämpas för en icke-kopplat diskrekommendationsreparation (Delete eller Downsize).
AzureOptimization_RemediateUnattachedDisksTagsFilter Taggnamn-/värdepar som en rekommendation för en icke-ansluten disk måste ha för att åtgärden ska ske. Exempel: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces En kommaavgränsad lista över andra Log Analytics-arbetsyte-ID:n där du kan söka efter VM-mått (se Konfigurera arbetsytor).
AzureOptimization_PerfThresholdDiskIOPSPercentage Tröskelvärdet för disk-IOPS-användning i procent. Under detta utlöses rekommendationen för underutnyttjade Premium SSD-diskar.
AzureOptimization_PerfThresholdDiskMBsPercentage Tröskelvärdet för diskdataflödesanvändning i procent. Under detta utlöses rekommendationen för underutnyttjade Premium SSD-diskar.
AzureOptimization_RecommendationsMaxAgeInDays Den maximala åldern (i dagar) för en rekommendation som ska behållas i SQL-databasen. Standardinställning: 365.
AzureOptimization_RetailPricesCurrencyCode Valutakoden (till exempel EUR, USD och så vidare) som används för att samla detaljhandelspriser för reservationer.
AzureOptimization_PriceSheetMeterCategories Kommaavgränsade mätarkategorier som används för prisdokumentfiltrering för att undvika inmatning av onödiga data. Standardinställning är "Virtual Machines,Storage".
AzureOptimization_ConsumptionScope Omfånget för förbrukningsexporterna: Subscription (standard), BillingProfile (endast MCA) eller BillingAccount (för MCA, kräver att rollen Faktureringskontoläsare läggs till i den AOE-hanterade identiteten). Se mer information.

Relaterade produkter:

Relaterade lösningar: