Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 no âmbito da 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ê tiver vários diretórios Entra ID (também conhecidos como locatários), poderá estender o alcance do AOE para um locatário diferente daquele em que ele foi implantado. Para conseguir isso, você tem duas opções, cada uma com seus prós e contras:
Entidade de serviço no locatário secundário | Implantação do Azure Lighthouse |
---|---|
Fornece a mais ampla cobertura de recursos (veja as limitações abaixo) | Fornece uma cobertura de recursos quase completa (veja as limitações abaixo) |
Usa uma opção de autenticação menos segura e não gerenciada, baseada em segredos | Fornece autenticação robusta, reutilizando a identidade gerenciada do mecanismo |
Não oferece suporte à reutilização de métricas de desempenho de espaços de trabalho do Log Analytics no inquilino secundário, ao otimizar as recomendações de dimensão correta da VM. | Não inclui suporte para objetos do Microsoft Entra, afetando a integridade da pasta de trabalho Identidades e Funções e as recomendações relacionadas à ID do Microsoft Entra. A guia Visão geral da pasta de trabalho de Conformidade de Política não traz dados do locatário secundário; apenas está disponível a análise detalhada da política. |
A implementação é baseada na execução de um script auxiliar do PowerShell | A implementação é baseada na implantação de um modelo do Azure Resource Manager |
Cobertura mais escalável do inquilino secundário, ao conceder apenas permissões ao principal do serviço num âmbito de nível superior | A implementação é realizada por assinatura no locatário secundário; precisa da Azure Policy para escalar. |
Menos econômico, pois as agendas de trabalho são duplicadas para o locatário secundário | Mais econômico, pois as agendas de trabalho existentes cobrirão automaticamente o locatário secundário |
Multilocatário com principal de serviço no locatário secundário
Para ampliar o âmbito do motor usando a abordagem baseada no principal de serviço, 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 gestão do Azure e Global Reader na Microsoft Entra ID.
- 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>]
Multilocatário com o Azure Lighthouse
Para ampliar o escopo do mecanismo usando a abordagem baseada no Azure Lighthouse, você deve garantir os seguintes pré-requisitos:
- Prepare o modelo do Azure Resource Manager para ser implantado no locatário secundário. Você pode reutilizar as-is o modelo de referência no nosso repositório (ficheiro
lighthouse-template.json
disponível na pasta raiz do AOE ). - Se você estiver implantando o modelo para uma única assinatura, basta seguir as etapas descritas aqui, usando o modelo de referência acima e especificando os valores dos parâmetros do modelo (como um arquivo de parâmetros separado ou diretamente na interface do portal do Azure).
- Se precisar de implementar em escala para várias subscrições, pode tirar partido da Política do Azure, seguindo as instruções disponíveis aqui e ajustando o código de definição de política para seguir o modelo de referência acima.
- Não importa a abordagem de implantação, os parâmetros de modelo que você deve fornecer são os seguintes:
-
managedByTenantId
- ID do locatário Microsoft Entra onde o AOE foi implantado. -
principalId
- ID do objeto Microsoft Entra da identidade gerenciada do sistema de conta de automação AOE. -
principalIdDisplayName
- Nome da conta de automação AOE.
-
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). Basta executar 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 o tempo base define os horários para todos os runbooks de automação dependentes que devem ser executados antes de as recomendações serem 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).
Escale runbooks AOE com o Trabalhador Híbrido
Por padrão, os runbooks de Automação AOE são executados no contexto da sandbox de Automação do Azure. Você pode enfrentar problemas de desempenho devido aos limites de memória do sandbox de automação. Ou, poderá decidir implementar endpoints privados para a Conta de Armazenamento ou Banco de Dados SQL para fortalecer a segurança do AOE. Em ambos os casos, é necessário 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, deve-se sempre usar o sinalizador
DoPartialUpgrade
ao atualizar o AOE, caso contrário, perderá as configurações de agendamento do runbook e reverterá para a configuração padrão do ambiente seguro. - A Identidade Gerida utilizada para autenticar nos âmbitos do Azure, Microsoft Entra ID e Conta de Cobrança continua a ser a que é utilizada pelo Azure Automation. 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 gera agregações de métricas de VM no 99.º percentil, mas 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 | Descrição |
---|---|
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 ). Define como 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 recolha de dados de Consumo do Azure verifica todos os dias os eventos de faturação 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 suportam 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 maneira menos conservadora. |
AzureOptimization_PerfPercentileDisk |
O percentil padrão para agregações de métricas de E/S de disco/largura de banda é o percentil de 99. À medida que o percentil diminui, o algoritmo de pontuação de ajuste de tamanho certo da VM se ajusta de maneira 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 maneira 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 maneira 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 ajustamento ao tamanho ideal da VM diminui. Abaixo disso, a recomendação de Custos ajustados do Conjunto de Escala de Máquinas Virtuais do Azure (conjunto de escalas) é acionada. |
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 encerramento). |
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 adequados. |
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage |
O limiar da CPU (Média observada em % tempo de processamento). Acima dela, a escala define os gatilhos de recomendação de desempenho adequados. |
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 desencadeia recomendações de Custo de tamanho adequado. |
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 encerramento). |
AzureOptimization_PerfThresholdMemoryDegradedPercentage |
O limite de memória (em % de memória usada). Acima dela, a escala define os gatilhos de recomendação de desempenho adequados. |
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 (somente recomendações de encerramento). |
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 a validade de uma credencial/certificado do Serviço Principal – qualquer validade acima desse intervalo gera uma recomendação de segurança. O valor padrão é 2. |
AzureOptimization_RecommendationAADMinCredValidityDays |
O número mínimo de dias para uma credencial/certificado do Principal de Serviço antes que expire - qualquer validade inferior a esse intervalo gera uma recomendação de Excelência Operacional. Por padrão, 30. |
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays |
O número de dias consecutivos em que uma VM foi desalocada antes de ser recomendada para eliminação (a Máquina Virtual foi desalocada por um longo período 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. Define por padrão para 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 valor 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, delimitada por aspas simples, de nomes de sub-redes que devem ser excluídos das recomendações de percentagem de utilização de sub-rede, por exemplo, 'gatewaysubnet' ,'azurebastionsubnet' . O padrão é 'gatewaysubnet' . |
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold |
A porcentagem máxima de atribuições RBAC limita o uso. Define por padrão para 80. |
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold |
A percentagem máxima de contagem de Grupos de Recursos por subscrição limita a utilização. Define por padrão para 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 gestão. Atualmente definido como 500 (conforme documentado). |
AzureOptimization_RecommendationResourceGroupsPerSubLimit |
O limite de contagem de Grupo de Recursos por assinatura é máximo. Atualmente definido como 980 (conforme documentado). |
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage |
A porcentagem mínima de crescimento da Conta de Armazenamento necessária para indicar que o Armazenamento não tem uma política de retenção em vigor. |
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold |
O custo mensal mínimo (na sua moeda EA/MCA) necessário para indicar que o armazenamento não tem uma política de retenção estabelecida. |
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 adequação que uma recomendação de redimensionamento de VM deve ter para que a remediação ocorra. |
AzureOptimization_RemediateRightSizeMinWeeksInARow |
O número mínimo de semanas consecutivas em que uma recomendação de dimensionamento correto de uma VM deve ser cumprida para que a correção ocorra. |
AzureOptimization_RemediateRightSizeTagsFilter |
Os pares de nome/valor das tags que uma recomendação de dimensionamento correto de VM deve ter para que a remediação ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore |
A pontuação mínima de ajuste que uma recomendação para uma VM que foi desalocada por muito tempo deve ter para que a remediaçã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 |
Os pares de nome/valor da tag que uma recomendação de VM desalocada há muito tempo deve ter para que a remediação ocorra. Exemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateUnattachedDisksMinFitScore |
A pontuação mínima de adequação que uma recomendação de disco não anexado deve ter para que a remediação ocorra. |
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow |
O número mínimo de semanas consecutivas que uma recomendação para discos não anexados deve ser cumprida para que a correção possa ocorrer. |
AzureOptimization_RemediateUnattachedDisksAction |
A ação para solicitar uma correção de recomendação de disco não conectado (Delete ou Downsize ). |
AzureOptimization_RemediateUnattachedDisksTagsFilter |
Os pares nome/valor das tags que uma recomendação de disco não conectado deve ter para que a remediação aconteça. 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 acionamento para discos SSD Premium subutilizados é ativada. |
AzureOptimization_PerfThresholdDiskMBsPercentage |
O limite de percentagem de utilização da taxa de transferência do disco. Abaixo dele, a recomendação de acionamento para discos SSD Premium subutilizados é ativada. |
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 retalho 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: