Personalizar o mecanismo de otimização do Azure
O mecanismo de otimização do Azure (AOE) é um conjunto de runbooks de Automação do Azure que coletam, ingerem e analisam dados de consumo e desempenho do Azure para fornecer recomendações de otimização de custos. O motor foi concebido para ser flexível e personalizável, permitindo-lhe ajustar o seu comportamento para melhor se adequar às necessidades da sua organização. Este artigo fornece orientação sobre como personalizar as configurações do mecanismo. Isso inclui ajustar limites, alterar horários 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 respetiva 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 de recomendações de tamanho correto de máquina virtual aumentada (VM), você pode ter suas VMs relatando para vários espaços de trabalho. Se você precisar incluir outros espaços de trabalho - além do principal que o AOE está usando - no escopo de recomendações, basta adicionar seus IDs de espaço de trabalho à AzureOptimization_RightSizeAdditionalPerfWorkspaces
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 , Reader em assinaturas/grupos de gerenciamento do Azure e Global Reader na ID do Microsoft Entra.
- Crie uma credencial de automação na conta de automação do AOE. Defina o 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 do AOE) no contexto da assinatura em que o AOE foi implantado. Esse script cria novas agendas de trabalho para cada um dos runbooks de exportação e as 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, a hora base para as agendas de automação do AOE é definida como a hora de implantação. Logo após a conclusão da implantação inicial, os runbooks de exportações, ingestões e recomendações são executados de acordo com as agendas padrão do mecanismo. Por exemplo, se você implantar o AOE em uma segunda-feira às 11h00, receberá novas recomendações todas as segundas-feiras às 14h30. Se essa agenda, por algum motivo, não atender às suas necessidades, você pode redefini-la para o horário que melhor lhe convier, usando o Reset-AutomationSchedules.ps1
script (disponível na pasta raiz do AOE). Você só tem que 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 deseja que as recomendações sejam geradas. Você deve deduzir 3h30m do horário que escolher. Isso ocorre porque a hora base define as agendas 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 da manhã. 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 você deseja que os runbooks sejam executados (consulte a próxima subseção).
Dimensione runbooks AOE com o Hybrid Worker
Por padrão, os runbooks de Automação AOE são executados no contexto da área restrita de 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 Banco de Dados SQL para fortalecer a segurança do AOE. Em ambos os casos, você precisa executar runbooks de um trabalhador híbrido. É uma Máquina Virtual do Azure ou local com a extensão Automation Hybrid Worker. Para alterar o contexto de execução para os runbooks do AOE, você deve usar o Reset-AutomationSchedules.ps1
script. Veja como usar o script na subseção anterior. Depois de definir a hora 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
- A máquina de trabalho híbrido deve ter os módulos necessários do PowerShell 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, ou então 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 Azure, Microsoft Entra ID e Conta de Cobrança ainda é a que a Automação do Azure usa. Ele é usado mesmo se a máquina de Trabalho Híbrido tiver uma Identidade Gerenciada atribuída (consulte os detalhes). As Identidades Gerenciadas atribuídas pelo usuário são suportadas no contexto de Trabalhadores Híbridos somente se:
- A Conta de Automação não tem nenhuma Identidade Gerenciada associada, ou seja, apenas a máquina de Trabalho Híbrido pode ter uma Identidade Gerenciada Atribuída pelo Usuário.
- Todos os runbooks são executados no contexto do Trabalhador Híbrido. Nesse caso, você deve criar uma
AzureOptimization_UAMIClientID
variável de automação com a ID do cliente de identidade gerenciada atribuída pelo usuário como valor. - O
AzureOptimization_AuthenticationOption
valor da variável Automation é atualizado paraUserAssignedManagedIdentity
.
Ajustar limites
Para recomendações de custo do Advisor, a configuração padrão do AOE produz agregações de métricas de VM 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 limite 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 seguinte destacam as variáveis de configuração mais relevantes. Para acessá-los, vá para a opção de menu Recursos compartilhados da conta de automação - variáveis .
Variável | Description |
---|---|
AzureOptimization_AdvisorFilter |
Se você não estiver interessado em obter recomendações para todos os pilares que não são do Cost Advisor, poderá especificar um filtro no nível do pilar (lista separada por vírgulas com pelo menos um dos seguintes valores: HighAvailability,Security,Performance,OperationalExcellence ). O padrão é para todos os pilares. |
AzureOptimization_AuthenticationOption |
O método de autenticação padrão para Runbooks de automação é RunAsAccount . Mas você pode alterar para ManagedIdentity se estiver usando um Trabalhador Híbrido 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 oferecem suporte a um valor mais baixo. |
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 de 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 de disco/taxa de transferência é 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste de 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 de 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 de tamanho certo da VM se ajusta de forma menos conservadora. |
AzureOptimization_PerfPercentileSqlDtu |
O percentil padrão a ser usado para métricas SQL DB DTU. À medida que o percentil diminui, o algoritmo de tamanho certo 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, a recomendação de Custo do tamanho certo do Conjunto de Escala de Máquina Virtual do Azure (conjunto de escalas). |
AzureOptimization_PerfThresholdCpuShutdownPercentage |
O limite da CPU (em % de tempo do processador). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui (apenas recomendações de desligamento). |
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage |
O limite da CPU (Máximo observado em % de tempo do processador). Acima dela, a escala define os gatilhos de recomendação de desempenho do tamanho certo. |
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage |
O limiar da CPU (Média observada em % Tempo do processador). Acima dela, a escala define os gatilhos de recomendação de desempenho do tamanho certo. |
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 dela, a escala define o tamanho certo da recomendação de Custo. |
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 (apenas recomendações de desligamento). |
AzureOptimization_PerfThresholdMemoryDegradedPercentage |
O limite de memória (em % de memória usada). Acima dela, a escala define os gatilhos de recomendação de desempenho do tamanho certo. |
AzureOptimization_PerfThresholdNetworkMbps |
O limite de rede (em Mbps totais). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui. |
AzureOptimization_PerfThresholdNetworkShutdownMbps |
O limite de rede (em Mbps totais). Acima dela, a pontuação de ajuste do tamanho certo da VM diminui (apenas recomendações de desligamento). |
AzureOptimization_PerfThresholdDtuPercentage |
O limite percentual de uso da DTU. Abaixo dela, uma instância do Banco de dados SQL é considerada subutilizada. |
AzureOptimization_RecommendAdvisorPeriodInDays |
O intervalo em dias para procurar recomendações do Advisor no repositório do Log Analytics - o padrão é 7, pois as recomendações do Advisor 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. O padrão é 2. |
AzureOptimization_RecommendationAADMinCredValidityDays |
O número mínimo de dias para uma credencial/certificado da Entidade de Serviço antes que ela expire - qualquer validade abaixo desse intervalo gera uma recomendação de Excelência Operacional. O 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 discos ainda incorrendo em custos). O padrão é 30. |
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold |
A porcentagem máxima tolerada para o uso de espaço IP da sub-rede. O padrão é 80. |
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold |
A porcentagem mínima para o uso de espaço IP da sub-rede - qualquer uso abaixo desse valor sinaliza a respetiva 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 padrão é 30. |
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions |
Lista separada por vírgulas, entre aspas únicas, de nomes de sub-redes que devem ser excluídos das recomendações de porcentagem de uso de sub-rede, por exemplo, 'gatewaysubnet' ,'azurebastionsubnet' . O padrão é 'gatewaysubnet' . |
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold |
A porcentagem máxima de atribuições RBAC limita o uso. O padrão é 80. |
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold |
A percentagem máxima de contagem de Grupos de Recursos por subscrição limita a utilização. O padrão é 80. |
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit |
O limite máximo para atribuições RBAC por assinatura. Atualmente fixado para 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 de contagem de 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 sua moeda EA/MCA) necessário para sinalizar o Armazenamento como não tendo uma política de retenção em vigor. |
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays |
O período de retrospetiva (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 VM de tamanho certo deve ter para que a correção ocorra. |
AzureOptimization_RemediateRightSizeMinWeeksInARow |
O número mínimo de semanas seguidas uma recomendação de tamanho correto de VM deve estar completa para que a correção ocorra. |
AzureOptimization_RemediateRightSizeTagsFilter |
O nome/valor da tag emparelha uma recomendação de tamanho correto de VM para que a correção ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore |
A pontuação mínima de ajuste 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 uma longa recomendação de VM desalocada deve estar completa para que a correção ocorra. |
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter |
O nome/valor da tag emparelha uma recomendação de VM há muito tempo desalocada para que a correção ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateUnattachedDisksMinFitScore |
A pontuação mínima de ajuste 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 seguidas uma recomendação de disco não anexado deve estar completo para que a correção ocorra. |
AzureOptimization_RemediateUnattachedDisksAction |
A ação para solicitar uma correção de recomendação de disco não conectado (Delete ou Downsize ). |
AzureOptimization_RemediateUnattachedDisksTagsFilter |
O nome/valor da tag emparelha 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 outros IDs de espaço de trabalho do Log Analytics onde procurar métricas de VM (consulte Configurando espaços de trabalho). |
AzureOptimization_PerfThresholdDiskIOPSPercentage |
O limite percentual de uso de IOPS de disco. Abaixo dele, a recomendação de discos SSD Premium subutilizados dispara. |
AzureOptimization_PerfThresholdDiskMBsPercentage |
O limite percentual de uso da taxa de transferência de disco. Abaixo dele, a recomendação de discos SSD Premium subutilizados dispara. |
AzureOptimization_RecommendationsMaxAgeInDays |
A idade máxima (em dias) para uma recomendação ser 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 separados por vírgulas são usadas para a filtragem da folha de preços, a fim de evitar a ingestão de dados desnecessários. O padrão é "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 de Conta de Cobrança à identidade gerenciada pelo AOE). Veja mais detalhes. |
Conteúdos relacionados
Produtos relacionados:
Soluções relacionadas: