Personalizzare il motore di ottimizzazione di Azure
Il motore di ottimizzazione di Azure (AOE) è un set di runbook Automazione di Azure che raccolgono, inseriscono e analizzano i dati sull'utilizzo e sulle prestazioni di Azure per fornire raccomandazioni sull'ottimizzazione dei costi. Il motore è progettato per essere flessibile e personalizzabile, consentendo di adattarne il comportamento in base alle esigenze dell'organizzazione. Questo articolo fornisce indicazioni su come personalizzare le impostazioni del motore. Include la regolazione delle soglie, la modifica delle pianificazioni e l'espansione dell'ambito del motore.
Ampliare l'ambito del motore
Per impostazione predefinita, all'identità gestita di Automazione di Azure viene assegnato il ruolo Lettore solo sulla rispettiva sottoscrizione. Tuttavia, è possibile ampliare l'ambito delle raccomandazioni concedendo lo stesso ruolo lettore ad altre sottoscrizioni o, ancora più semplice, a un gruppo di gestione di primo livello.
Nel contesto delle raccomandazioni relative alle dimensioni corrette della macchina virtuale aumentata, è possibile che le macchine virtuali segnalino a più aree di lavoro. Se è necessario includere altre aree di lavoro, oltre a quella principale usata da AOE, nell'ambito delle raccomandazioni è sufficiente aggiungere gli ID dell'area di lavoro alla AzureOptimization_RightSizeAdditionalPerfWorkspaces
variabile (vedere altri dettagli in Configurazione delle aree di lavoro).
Se si è un cliente multi-tenant, è possibile estendere la copertura di AOE a un tenant diverso da quello in cui è stato distribuito. Per ottenere questa estensione, è necessario verificare i prerequisiti seguenti:
- Creare un'entità servizio (registrazione app) e un segreto nel tenant secondario.
- Concedere le autorizzazioni necessarie all'entità servizio nel tenant secondario, ovvero Lettore in sottoscrizioni/gruppi di gestione di Azure e Lettore globale in Microsoft Entra ID.
- Creare credenziali di Automazione nell'account di automazione di AOE. Impostare l'ID client dell'entità servizio come nome utente e il segreto come password.
- Eseguire lo
Register-MultitenantAutomationSchedules.ps1
script (disponibile nella cartella radice AOE) nel contesto della sottoscrizione in cui è stato distribuito AOE. Questo script crea nuove pianificazioni dei processi per ognuno dei runbook di esportazione e li configura per eseguire query sul tenant secondario. È sufficiente chiamare lo script usando la sintassi seguente:
./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>]
Regolare le pianificazioni
Per impostazione predefinita, il tempo di base per le pianificazioni di Automazione AOE viene impostato come ora di distribuzione. Subito dopo il completamento della distribuzione iniziale, le esportazioni, gli inserimenti e i runbook consigliati vengono eseguiti in base alle pianificazioni predefinite del motore. Ad esempio, se si distribuisce AOE il lunedì alle 11:00, si ottengono nuove raccomandazioni ogni lunedì alle 2:30. Se questa pianificazione, per qualche motivo, non soddisfa le proprie esigenze, è possibile reimpostarla al momento più adatto, usando lo Reset-AutomationSchedules.ps1
script (disponibile nella cartella radice AOE). È sufficiente chiamare lo script seguente. Seguire la sintassi e rispondere alle richieste di input:
./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
L'ora di base scelta deve essere in formato UTC e deve essere definita in base al giorno della settimana e dell'ora in cui si desidera generare raccomandazioni. È necessario dedurre 3h30m dal momento in cui si sceglie. Perché il tempo di base definisce le pianificazioni per tutti i runbook di automazione dipendenti che devono essere eseguiti prima che vengano generati i consigli. Si supponga, ad esempio, di voler generare raccomandazioni ogni lunedì alle ore 8h30; l'ora di base è la data del calendario successiva che cade il lunedì, alle 5h00 AM. Il formato della data scelta deve essere AAAA-MM-gg HH:mm:ss, ad esempio . 2022-01-03 05:00:00
Lo script chiede anche di immettere, se necessario, il gruppo di ruoli di lavoro ibridi in cui si vuole che i runbook vengano eseguiti (vedere la sottosezione successiva).
Ridimensionare i runbook AOE con il ruolo di lavoro ibrido
Per impostazione predefinita, i runbook di automazione AOE vengono eseguiti nel contesto della sandbox Automazione di Azure. Potrebbero verificarsi problemi di prestazioni dovuti ai limiti di memoria della sandbox di Automazione. In alternativa, è possibile decidere di implementare endpoint privati per l'account di archiviazione o database SQL per rafforzare la sicurezza di AOE. In entrambi i casi, è necessario eseguire runbook da un ruolo di lavoro ibrido. Si tratta di una macchina virtuale di Azure o locale con l'estensione Automation Hybrid Worker. Per modificare il contesto di esecuzione per i runbook AOE, è necessario usare lo Reset-AutomationSchedules.ps1
script. Vedere come usare lo script nella sottosezione precedente. Dopo aver impostato il tempo di base per l'esecuzione dei runbook, immettere il nome del gruppo di ruoli di lavoro ibridi in cui eseguire i runbook.
Importante
- Nel computer del ruolo di lavoro ibrido devono essere installati i moduli di PowerShell necessari. Il
upgrade-manifest.json
file contiene l'elenco dei moduli necessari. - Dopo aver modificato il contesto di esecuzione del runbook in Ruolo di lavoro ibrido, è necessario usare sempre il
DoPartialUpgrade
flag ogni volta che si aggiorna AOE oppure si perdono le impostazioni di pianificazione del runbook e si ripristina la configurazione sandbox predefinita. - L'identità gestita usata per l'autenticazione negli ambiti Azure, Microsoft Entra ID e Account di fatturazione è ancora quella usata Automazione di Azure. Viene usato anche se al computer del ruolo di lavoro ibrido è assegnata un'identità gestita (vedere i dettagli). Le identità gestite assegnate dall'utente sono supportate nel contesto dei ruoli di lavoro ibridi solo se:
- L'account di Automazione non ha alcuna identità gestita associata, ovvero solo il computer del ruolo di lavoro ibrido può avere un'identità gestita assegnata dall'utente.
- Tutti i runbook vengono eseguiti nel contesto del ruolo di lavoro ibrido. In questo caso, è necessario creare una
AzureOptimization_UAMIClientID
variabile di automazione con l'ID client dell'identità gestita assegnata dall'utente come valore. - Il valore della
AzureOptimization_AuthenticationOption
variabile di automazione viene aggiornato aUserAssignedManagedIdentity
.
Regolare le soglie
Per le raccomandazioni sui costi di Advisor, la configurazione predefinita di AOE produce aggregazioni delle metriche di vm percentile 99th, ma è possibile modificarle in modo che siano meno conservativi. Esistono anche soglie di metriche regolabili usate per calcolare il punteggio di adattamento. I valori di soglia predefiniti sono il 30% per la CPU (5% per le raccomandazioni di arresto), il 50% per la memoria (100% per l'arresto) e 750 Mbps per la larghezza di banda di rete (10 Mbps per l'arresto). Tutte le configurazioni regolabili sono disponibili come variabili di Automazione di Azure. Le informazioni nella tabella successiva evidenziano le variabili di configurazione più rilevanti. Per accedervi, passare all'opzione di menu Risorse condivise dell'account di Automazione - Variabili .
Variabile | Descrizione |
---|---|
AzureOptimization_AdvisorFilter |
Se non si è interessati a ricevere raccomandazioni per tutti i pilastri non di Advisor costi, è possibile specificare un filtro a livello di pilastro (elenco delimitato da virgole con almeno uno dei valori seguenti: HighAvailability,Security,Performance,OperationalExcellence ). Il valore predefinito è tutti i pilastri. |
AzureOptimization_AuthenticationOption |
Il metodo di autenticazione predefinito per i runbook di automazione è RunAsAccount . È tuttavia possibile passare a ManagedIdentity se si usa un ruolo di lavoro ibrido in una macchina virtuale di Azure. |
AzureOptimization_ConsumptionOffsetDays |
Il runbook di raccolta dati a consumo di Azure esegue una query ogni giorno per individuare gli eventi di fatturazione che si sono verificati sette giorni fa (impostazione predefinita). È possibile passare a un offset più vicino, ma tenere presente che alcuni tipi di sottoscrizione (ad esempio, MSDN) non supportano un valore inferiore. |
AzureOptimization_PerfPercentileCpu |
Il percentile predefinito per le aggregazioni delle metriche della CPU è 99. Man mano che il percentile diminuisce, l'algoritmo del punteggio di adattamento delle dimensioni corrette della macchina virtuale viene modificato in modo meno conservativo. |
AzureOptimization_PerfPercentileDisk |
Il percentile predefinito per le aggregazioni delle metriche di I/O/o velocità effettiva del disco è 99. Man mano che il percentile diminuisce, l'algoritmo del punteggio di adattamento delle dimensioni corrette della macchina virtuale viene modificato in modo meno conservativo. |
AzureOptimization_PerfPercentileMemory |
Il percentile predefinito per le aggregazioni delle metriche di memoria è 99. Man mano che il percentile diminuisce, l'algoritmo del punteggio di adattamento delle dimensioni corrette della macchina virtuale viene modificato in modo meno conservativo. |
AzureOptimization_PerfPercentileNetwork |
Il percentile predefinito per le aggregazioni delle metriche di rete è 99. Man mano che il percentile diminuisce, l'algoritmo del punteggio di adattamento delle dimensioni corrette della macchina virtuale viene modificato in modo meno conservativo. |
AzureOptimization_PerfPercentileSqlDtu |
Percentile predefinito da usare per le metriche DTU del database SQL. Con l'abbassamento del percentile, l'algoritmo database SQL dimensioni corrette viene modificato in modo meno conservativo. |
AzureOptimization_PerfThresholdCpuPercentage |
Soglia CPU (in % tempo processore). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce. Di seguito sono riportati i trigger consigliati per il set di scalabilità di macchine virtuali di Azure (set di scalabilità) di dimensioni corrette. |
AzureOptimization_PerfThresholdCpuShutdownPercentage |
Soglia CPU (in % tempo processore). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce (solo raccomandazioni di arresto). |
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage |
Soglia CPU (valore massimo osservato in % tempo processore). Al di sopra di esso, i trigger consigliati per le prestazioni del set di scalabilità a destra. |
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage |
Soglia CPU (media osservata in % tempo processore). Al di sopra di esso, i trigger consigliati per le prestazioni del set di scalabilità a destra. |
AzureOptimization_PerfThresholdMemoryPercentage |
Soglia di memoria (in % memoria utilizzata). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce. Al di sotto di esso, i trigger consigliati per le dimensioni corrette del set di scalabilità Per i costi. |
AzureOptimization_PerfThresholdMemoryShutdownPercentage |
Soglia di memoria (in % memoria utilizzata). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce (solo raccomandazioni di arresto). |
AzureOptimization_PerfThresholdMemoryDegradedPercentage |
Soglia di memoria (in % memoria utilizzata). Al di sopra di esso, i trigger consigliati per le prestazioni del set di scalabilità a destra. |
AzureOptimization_PerfThresholdNetworkMbps |
Soglia di rete (in Total Mbps). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce. |
AzureOptimization_PerfThresholdNetworkShutdownMbps |
Soglia di rete (in Total Mbps). Al di sopra di esso, il punteggio di adattamento delle dimensioni corrette della macchina virtuale diminuisce (solo raccomandazioni di arresto). |
AzureOptimization_PerfThresholdDtuPercentage |
Soglia percentuale di utilizzo DTU. Di seguito, un'istanza di database SQL viene considerata sottoutilizzata. |
AzureOptimization_RecommendAdvisorPeriodInDays |
Intervallo in giorni per cercare le raccomandazioni di Advisor nel repository di Log Analytics: il valore predefinito è 7, perché le raccomandazioni di Advisor vengono raccolte una volta alla settimana. |
AzureOptimization_RecommendationAADMaxCredValidityYears |
Il numero massimo di anni per la validità delle credenziali o dei certificati dell'entità servizio: qualsiasi validità superiore a questo intervallo genera una raccomandazione di sicurezza. Il valore predefinito è 2. |
AzureOptimization_RecommendationAADMinCredValidityDays |
Numero minimo di giorni per una credenziale o un certificato dell'entità servizio prima della scadenza. Qualsiasi validità al di sotto di questo intervallo genera una raccomandazione di eccellenza operativa. Il valore predefinito è 30. |
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays |
Numero di giorni consecutivi di deallocazione di una macchina virtuale prima di essere consigliata per l'eliminazione (la macchina virtuale è stata deallocata per molto tempo con i dischi che continuano a sostenere i costi). Il valore predefinito è 30. |
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold |
Percentuale massima tollerata per l'utilizzo dello spazio IP della subnet. Il valore predefinito è 80. |
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold |
Percentuale minima per l'utilizzo dello spazio IP della subnet: qualsiasi utilizzo al di sotto di questo valore contrassegna la rispettiva subnet come utilizzo ridotto dello spazio IP. Il valore predefinito è 5. |
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays |
Età minima in giorni per contrassegnare una subnet vuota, evitando così di contrassegnare le subnet appena create. Il valore predefinito è 30. |
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions |
Elenco racchiuso tra virgole e virgolette racchiuse tra nomi di subnet che devono essere esclusi dalle raccomandazioni relative alla percentuale di utilizzo della subnet, 'gatewaysubnet' ad esempio ,'azurebastionsubnet' . Il valore predefinito è 'gatewaysubnet' . |
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold |
La percentuale massima di assegnazioni di controllo degli accessi in base al ruolo limita l'utilizzo. Il valore predefinito è 80. |
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold |
Percentuale massima del numero di gruppi di risorse per sottoscrizione limita l'utilizzo. Il valore predefinito è 80. |
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit |
Limite massimo per le assegnazioni di controllo degli accessi in base al ruolo per ogni sottoscrizione. Attualmente impostato su 2000 (come documentato). |
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit |
Limite massimo per le assegnazioni di controllo degli accessi in base al ruolo per gruppo di gestione. Attualmente impostato su 500 (come documentato). |
AzureOptimization_RecommendationResourceGroupsPerSubLimit |
Limite massimo per il numero di gruppi di risorse per ogni sottoscrizione. Attualmente impostato su 980 (come documentato). |
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage |
Percentuale di crescita minima dell'account di archiviazione necessaria per contrassegnare l'archiviazione perché non dispone di criteri di conservazione. |
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold |
Il costo mensile minimo (nella valuta EA/MCA) necessario per contrassegnare l'archiviazione come non avere criteri di conservazione. |
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays |
Periodo di ricerca (in giorni) per l'analisi della crescita dell'account di archiviazione. |
AzureOptimization_ReferenceRegion |
L'area di Azure usata come riferimento per ottenere l'elenco degli SKU disponibili (per impostazione predefinita è westeurope ). |
AzureOptimization_RemediateRightSizeMinFitScore |
Il punteggio minimo di adattamento deve avere una raccomandazione relativa alle dimensioni corrette della macchina virtuale affinché si verifichi la correzione. |
AzureOptimization_RemediateRightSizeMinWeeksInARow |
Il numero minimo di settimane in una riga è necessario completare una raccomandazione relativa alle dimensioni corrette della macchina virtuale affinché si verifichi la correzione. |
AzureOptimization_RemediateRightSizeTagsFilter |
Le coppie nome/valore del tag devono avere una raccomandazione relativa alle dimensioni corrette della macchina virtuale affinché si verifichi la correzione. Esempio: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore |
Il punteggio minimo di adattamento deve avere una raccomandazione di macchina virtuale deallocata lunga affinché si verifichi la correzione. |
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow |
Il numero minimo di settimane in una riga è necessario completare una raccomandazione di una macchina virtuale deallocata a lungo per poter eseguire la correzione. |
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter |
Le coppie nome/valore del tag devono avere una raccomandazione di macchina virtuale deallocata lunga affinché si verifichi la correzione. Esempio: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateUnattachedDisksMinFitScore |
Il punteggio minimo di adattamento deve avere una raccomandazione su disco scollegato affinché si verifichi la correzione. |
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow |
Il numero minimo di settimane in una riga deve essere completata una raccomandazione su disco non collegata affinché si verifichi la correzione. |
AzureOptimization_RemediateUnattachedDisksAction |
Azione da applicare per una correzione della raccomandazione del disco non collegata (Delete o Downsize ). |
AzureOptimization_RemediateUnattachedDisksTagsFilter |
Il nome/valore del tag associa una raccomandazione del disco non collegata affinché si verifichi la correzione. Esempio: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RightSizeAdditionalPerfWorkspaces |
Elenco delimitato da virgole di altri ID dell'area di lavoro Log Analytics in cui cercare le metriche delle macchine virtuali (vedere Configurazione delle aree di lavoro). |
AzureOptimization_PerfThresholdDiskIOPSPercentage |
Soglia percentuale utilizzo operazioni di I/O al secondo del disco. Di seguito, i trigger consigliati per i dischi SSD Premium sottoutilizzati. |
AzureOptimization_PerfThresholdDiskMBsPercentage |
Soglia percentuale di utilizzo della velocità effettiva del disco. Di seguito, i trigger consigliati per i dischi SSD Premium sottoutilizzati. |
AzureOptimization_RecommendationsMaxAgeInDays |
Validità massima (in giorni) per una raccomandazione da mantenere nel database SQL. Impostazione predefinita: 365. |
AzureOptimization_RetailPricesCurrencyCode |
Il codice di valuta (ad esempio, EUR, USD e così via) usato per raccogliere i prezzi al dettaglio delle prenotazioni. |
AzureOptimization_PriceSheetMeterCategories |
Le categorie di contatori delimitati da virgole utilizzate per il filtro elenco prezzi, per evitare l'inserimento di dati non necessari. Il valore predefinito è "Virtual Machines,Storage" . |
AzureOptimization_ConsumptionScope |
L'ambito delle esportazioni di consumo: Subscription (impostazione predefinita), BillingProfile (solo Contratto del cliente microsoft) o BillingAccount (per Contratto del cliente microsoft, richiede l'aggiunta del ruolo lettore account di fatturazione all'identità gestita AOE). Visualizzare altri dettagli. |
Contenuto correlato
Prodotti correlati:
Soluzioni correlate: