Compartilhar via


Personalizar o mecanismo de otimização do Azure

O AOE (mecanismo de otimização do Azure) é um conjunto de runbooks de Automação do Azure que coletam, ingerem e analisam dados de desempenho e consumo do Azure para fornecer recomendações de otimização de custo. O mecanismo foi projetado para ser flexível e personalizável, permitindo que você ajuste seu comportamento para melhor atender às necessidades da sua organização. Este artigo fornece diretrizes sobre como personalizar as configurações do mecanismo. Inclui ajustar limites, alterar agendamentos e expandir o escopo do mecanismo.


Amplie o escopo do motor

Por padrão, a Identidade Gerenciada de Automação do Azure recebe a função de Leitor somente na respectiva assinatura. No entanto, você pode ampliar o escopo de suas recomendações apenas concedendo a mesma função de Leitor a outras assinaturas ou, ainda mais simples, a um Grupo de Gerenciamento de nível superior.

No contexto das recomendações de tamanho correto da máquina virtual (VM) aumentada, você pode ter suas VMs se reportando a vários workspaces. Se você precisar incluir outros espaços de trabalho - além do principal que o AOE está usando - no escopo das recomendações, basta adicionar seus IDs de AzureOptimization_RightSizeAdditionalPerfWorkspaces espaço de trabalho à variável (veja mais detalhes em Configurando espaços de trabalho).

Se você for um cliente multilocatário, poderá estender o alcance do AOE para um locatário diferente daquele em que ele foi implantado. Para obter essa extensão, você deve garantir os seguintes pré-requisitos:

  • Crie uma entidade de serviço (registro de aplicativo) e um segredo no locatário secundário.
  • Conceda as permissões necessárias à entidade de serviço no locatário secundário, ou seja , Leitor em assinaturas/grupos de gerenciamento do Azure e Leitor Global na ID do Microsoft Entra.
  • Crie uma credencial de Automação na Conta de Automação do AOE. Defina a ID do cliente da entidade de serviço como nome de usuário e o segredo como senha.
  • Execute o Register-MultitenantAutomationSchedules.ps1 script (disponível na pasta raiz AOE) no contexto da assinatura em que o AOE foi implantado. Esse script cria novos agendamentos de trabalho para cada um dos runbooks de exportação e os configura para consultar o locatário secundário. Você só precisa chamar o script usando a seguinte sintaxe:
./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>]

Ajustar horários

Por padrão, o tempo base para os agendamentos de Automação AOE é definido como o tempo de implantação. Logo após a conclusão da implantação inicial, os runbooks de exportações, incrustações e recomendações são executados de acordo com os agendamentos padrão do mecanismo. Por exemplo, se você implantar o AOE em uma segunda-feira às 11:00, receberá novas recomendações todas as segundas-feiras às 14:30. Se esse agendamento, por algum motivo, não atender às suas necessidades, você poderá redefini-lo para o horário que melhor lhe convier, usando o Reset-AutomationSchedules.ps1 script (disponível na pasta raiz AOE). Você só precisa chamar o seguinte script. Siga a sintaxe e responda às solicitações de entrada:

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

A hora base escolhida deve estar em UTC e deve ser definida de acordo com o dia da semana e a hora em que você deseja que as recomendações sejam geradas. Deve deduzir 3h30m a partir do momento que escolher. Isso ocorre porque o tempo base define os agendamentos para todos os runbooks de automação dependentes que devem ser executados antes que as recomendações sejam geradas. Por exemplo, digamos que você queira que as recomendações sejam geradas todas as segundas-feiras às 8h30; a hora base é a próxima data do calendário que cai em uma segunda-feira, às 5h00. O formato da data escolhida deve ser AAAA-MM-dd HH:mm:ss, por exemplo, 2022-01-03 05:00:00.

O script também solicita que você insira, se necessário, o Grupo de Trabalho Híbrido no qual deseja que os runbooks sejam executados (consulte a próxima subseção).


Dimensionar runbooks AOE com o Hybrid Worker

Por padrão, os runbooks de Automação AOE são executados no contexto da área restrita da Automação do Azure. Você pode enfrentar problemas de desempenho devido aos limites de memória da área restrita de automação. Ou você pode decidir implementar pontos de extremidade privados para a Conta de Armazenamento ou o Banco de Dados SQL para proteger a segurança do AOE. Em ambos os casos, você precisa executar runbooks de um Hybrid Worker. É uma máquina virtual local ou do Azure com a extensão Automation Hybrid Worker. Para alterar o contexto de execução dos runbooks AOE, você deve usar o Reset-AutomationSchedules.ps1 script. Veja como usar o script na subseção anterior. Depois de definir o tempo base de execução dos runbooks, insira o nome do Grupo de Trabalho Híbrido no qual você deseja que os runbooks sejam executados.

Importante

  • O computador do Hybrid Worker deve ter os módulos do PowerShell necessários instalados. O upgrade-manifest.json arquivo contém a lista de módulos necessários.
  • Depois de alterar o contexto de execução do runbook para Hybrid Worker, você sempre deve usar o sinalizador sempre que atualizar o DoPartialUpgrade AOE, caso contrário, perderá as configurações de agendamento do runbook e reverterá para a configuração de área restrita padrão.
  • A Identidade Gerenciada usada para autenticar nos escopos do Azure, da ID do Microsoft Entra e da Conta de Cobrança ainda é a que a Automação do Azure usa. Ele é usado mesmo se o computador do Hybrid Worker tiver uma Identidade Gerenciada atribuída (veja detalhes). As identidades gerenciadas atribuídas pelo usuário têm suporte no contexto de Hybrid Workers somente se:
    • A Conta de Automação não tem nenhuma Identidade Gerenciada associada, ou seja, somente o computador do Hybrid Worker pode ter uma Identidade Gerenciada Atribuída pelo Usuário.
    • Todos os runbooks são executados no contexto do Hybrid Worker. Nesse caso, você deve criar uma Variável de AzureOptimization_UAMIClientID Automação com o ID do Cliente de Identidade Gerenciada Atribuído pelo Usuário como valor.
    • O valor da AzureOptimization_AuthenticationOption variável Automation é atualizado para UserAssignedManagedIdentity.

Ajustar limites

Para recomendações de custo do Assistente, a configuração padrão do AOE produz agregações de métricas de VM de percentil 99, mas você pode ajustá-las para serem menos conservadoras. Há também limites de métricas ajustáveis que são usados para calcular a pontuação de ajuste. Os valores de limites padrão são 30% para CPU (5% para recomendações de desligamento), 50% para memória (100% para desligamento) e 750 Mbps para largura de banda de rede (10 Mbps para desligamento). Todas as configurações ajustáveis estão disponíveis como variáveis de Automação do Azure. As informações na tabela a seguir destacam as variáveis de configuração mais relevantes. Para acessá-los, acesse a opção de menu Recursos Compartilhados da Conta de Automação - Variáveis .

Variável Descrição
AzureOptimization_AdvisorFilter Se você não estiver interessado em obter recomendações para todos os pilares que não são do Supervisor de Custo, poderá especificar um filtro de nível de pilar (lista separada por vírgulas com pelo menos um dos seguintes valores: HighAvailability,Security,Performance,OperationalExcellence). O padrão é todos os pilares.
AzureOptimization_AuthenticationOption O método de autenticação padrão para Runbooks de Automação é RunAsAccount. Mas você pode mudar para ManagedIdentity se estiver usando um Hybrid Worker em uma VM do Azure.
AzureOptimization_ConsumptionOffsetDays O runbook de coleta de dados de Consumo do Azure consulta todos os dias eventos de cobrança que ocorreram há sete dias (padrão). Você pode alterar para um deslocamento mais próximo, mas lembre-se de que alguns tipos de assinatura (por exemplo, MSDN) não dão suporte a um valor menor.
AzureOptimization_PerfPercentileCpu O percentil padrão para agregações de métricas de CPU é 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste do tamanho certo da VM se ajusta de forma menos conservadora.
AzureOptimization_PerfPercentileDisk O percentil padrão para agregações de métricas de E/S/taxa de transferência de disco é 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste do tamanho certo da VM se ajusta de forma menos conservadora.
AzureOptimization_PerfPercentileMemory O percentil padrão para agregações de métricas de memória é 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste do tamanho certo da VM se ajusta de forma menos conservadora.
AzureOptimization_PerfPercentileNetwork O percentil padrão para agregações de métricas de rede é 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste do tamanho certo da VM se ajusta de forma menos conservadora.
AzureOptimization_PerfPercentileSqlDtu O percentil padrão a ser usado para métricas de DTU do SQL DB. À medida que o percentil diminui, o algoritmo de tamanho correto do Banco de Dados SQL se ajusta de forma menos conservadora.
AzureOptimization_PerfThresholdCpuPercentage O limite da CPU (em % de tempo do processador). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui. Abaixo dele, o Conjunto de Dimensionamento de Máquinas Virtuais do Azure (conjunto de dimensionamento) dispara a recomendação de custo do tamanho correto.
AzureOptimization_PerfThresholdCpuShutdownPercentage O limite da CPU (em % de tempo do processador). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui (somente recomendações de desligamento).
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage O limite da CPU (Máximo observado em % Tempo do Processador). Acima dele, o conjunto de dimensionamento de tamanho correto Disparadores de recomendação de desempenho.
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage O limite da CPU (Média observada em % Tempo do Processador). Acima dele, o conjunto de dimensionamento de tamanho correto Disparadores de recomendação de desempenho.
AzureOptimization_PerfThresholdMemoryPercentage O limite de memória (em % de memória usada). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui. Abaixo dele, o conjunto de dimensionamento do tamanho correto Recomendação de custo é acionado.
AzureOptimization_PerfThresholdMemoryShutdownPercentage O limite de memória (em % de memória usada). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui (somente recomendações de desligamento).
AzureOptimization_PerfThresholdMemoryDegradedPercentage O limite de memória (em % de memória usada). Acima dele, o conjunto de dimensionamento de tamanho correto Disparadores de recomendação de desempenho.
AzureOptimization_PerfThresholdNetworkMbps O limite de rede (em Total de Mbps). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui.
AzureOptimization_PerfThresholdNetworkShutdownMbps O limite de rede (em Total de Mbps). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui (somente recomendações de desligamento).
AzureOptimization_PerfThresholdDtuPercentage O limite percentual de uso de DTU. Abaixo dela, uma instância do Banco de Dados SQL é considerada subutilizada.
AzureOptimization_RecommendAdvisorPeriodInDays O intervalo em dias para procurar recomendações do Assistente no repositório do Log Analytics – o padrão é 7, pois as recomendações do Assistente são coletadas uma vez por semana.
AzureOptimization_RecommendationAADMaxCredValidityYears O número máximo de anos para uma validade de credencial/certificado da Entidade de Serviço – qualquer validade acima desse intervalo gera uma recomendação de segurança. Assume o padrão de 2.
AzureOptimization_RecommendationAADMinCredValidityDays O número mínimo de dias para uma credencial/certificado de Entidade de Serviço antes que ela expire – qualquer validade abaixo desse intervalo gera uma recomendação de Excelência Operacional. O valor padrão é 30.
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays O número de dias consecutivos em que uma VM foi desalocada antes de ser recomendada para exclusão (a Máquina Virtual foi desalocada por muito tempo com os discos ainda incorrendo em custos). O valor padrão é 30.
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold A porcentagem máxima tolerada para o uso do espaço IP da sub-rede. O padrão é 80.
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold A porcentagem mínima para o uso do espaço IP da sub-rede - qualquer uso abaixo desse valor sinaliza a respectiva sub-rede como usando pouco espaço IP. O padrão é 5.
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays A idade mínima em dias para que uma sub-rede vazia seja sinalizada, evitando assim sinalizar sub-redes recém-criadas. O valor padrão é 30.
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions Lista de nomes de sub-rede separados por vírgulas e aspas simples que devem ser excluídos das recomendações de porcentagem de uso da sub-rede, por exemplo, 'gatewaysubnet','azurebastionsubnet'. Assume o padrão de 'gatewaysubnet'.
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold A porcentagem máxima de atribuições RBAC limita o uso. O padrão é 80.
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold A porcentagem máxima de contagem de Grupos de Recursos por assinatura limita o uso. O padrão é 80.
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit O limite máximo para atribuições RBAC por assinatura. Atualmente definido como 2000 (conforme documentado).
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit O limite máximo para atribuições RBAC por grupo de gerenciamento. Atualmente definido como 500 (conforme documentado).
AzureOptimization_RecommendationResourceGroupsPerSubLimit O limite máximo para a contagem do Grupo de Recursos por assinatura. Atualmente definido como 980 (conforme documentado).
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage A porcentagem mínima de crescimento da Conta de Armazenamento necessária para sinalizar o Armazenamento como não tendo uma política de retenção em vigor.
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold O custo mensal mínimo (na moeda do EA/MCA) necessário para sinalizar o Storage como não tendo uma política de retenção em vigor.
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays O período de retrospectiva (em dias) para analisar o crescimento da Conta de Armazenamento.
AzureOptimization_ReferenceRegion A região do Azure usada como referência para obter a lista de SKUs disponíveis (o padrão é westeurope).
AzureOptimization_RemediateRightSizeMinFitScore A pontuação mínima de ajuste que uma recomendação de tamanho correto da VM deve ter para que a correção ocorra.
AzureOptimization_RemediateRightSizeMinWeeksInARow O número mínimo de semanas consecutivas em que uma recomendação de tamanho correto da VM deve ser concluída para que a correção ocorra.
AzureOptimization_RemediateRightSizeTagsFilter Os pares de nome/valor da marca que uma recomendação de tamanho correto da VM deve ter para que a correção ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore A pontuação de ajuste mínima que uma recomendação de VM desalocada por muito tempo deve ter para que a correção ocorra.
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow O número mínimo de semanas seguidas em que uma recomendação de VM desalocada longa deve ser concluída para que a correção ocorra.
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter Os pares de nome/valor da marca que uma recomendação de VM desalocada há muito tempo deve ter para que a correção ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore A pontuação de ajuste mínima que uma recomendação de disco não anexado deve ter para que a correção ocorra.
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow O número mínimo de semanas consecutivas em que uma recomendação de disco não anexado deve ser concluída para que a correção ocorra.
AzureOptimization_RemediateUnattachedDisksAction A ação para solicitar uma correção de recomendação de disco desanexado (Delete ou Downsize).
AzureOptimization_RemediateUnattachedDisksTagsFilter Os pares de nome/valor da marca que uma recomendação de disco não anexado deve ter para que a correção ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces Uma lista separada por vírgulas de outras IDs de workspace do Log Analytics onde procurar métricas de VM (consulte Configurando workspaces).
AzureOptimization_PerfThresholdDiskIOPSPercentage O limite de porcentagem de uso de IOPS de disco. Abaixo dele, os disparos de recomendação de discos SSD Premium subutilizados.
AzureOptimization_PerfThresholdDiskMBsPercentage O limite de porcentagem de uso da taxa de transferência do disco. Abaixo dele, os disparos de recomendação de discos SSD Premium subutilizados.
AzureOptimization_RecommendationsMaxAgeInDays A idade máxima (em dias) para que uma recomendação seja mantida no banco de dados SQL. Padrão: 365.
AzureOptimization_RetailPricesCurrencyCode O código de moeda (por exemplo, EUR, USD e assim por diante) usado para coletar os preços de varejo das Reservas.
AzureOptimization_PriceSheetMeterCategories As categorias de medidores separadas por vírgulas usadas para filtragem de planilha de preços, a fim de evitar a ingestão de dados desnecessários. Assume o padrão de "Virtual Machines,Storage".
AzureOptimization_ConsumptionScope O escopo das exportações de consumo: Subscription (padrão), BillingProfile (somente MCA) ou BillingAccount (para MCA, requer a adição da função Leitor da Conta de Faturamento à identidade gerenciada AOE). Ver mais detalhes.

Produtos relacionados:

Soluções relacionadas: