Поделиться через


Настройка подсистемы оптимизации Azure

Подсистема оптимизации Azure (AOE) — это набор модулей Runbook служба автоматизации Azure, которые собирают, прием и анализ данных о потреблении и производительности Azure для предоставления рекомендаций по оптимизации затрат. Подсистема предназначена для гибкого и настраиваемого, что позволяет настроить его поведение в соответствии с потребностями вашей организации. В этой статье приводятся инструкции по настройке параметров подсистемы. Она включает настройку пороговых значений, изменение расписаний и расширение области двигателя.


Расширение области обработчика

По умолчанию служба автоматизации Azure управляемому удостоверению назначается роль читателя только по соответствующей подписке. Однако вы можете расширить область своих рекомендаций только путем предоставления той же роли читателя другим подпискам или даже более простой группе управления верхнего уровня.

В контексте рекомендаций по правильному размеру дополненной виртуальной машины вы можете создавать отчеты о виртуальных машинах в нескольких рабочих областях. Если вам нужно включить другие рабочие области, помимо основного AOE используется, в области рекомендаций просто необходимо добавить идентификаторы AzureOptimization_RightSizeAdditionalPerfWorkspaces рабочих областей в переменную (см. дополнительные сведения о настройке рабочих областей).

Если вы являетесь мультитенантным клиентом, вы можете расширить доступ AOE к клиенту, отличному от того, где он был развернут. Чтобы достичь этого расширения, необходимо убедиться в следующих предварительных требованиях:

  • Создайте субъект-службу (регистрация приложения) и секрет в дополнительном клиенте.
  • Предоставьте необходимые разрешения субъекту-службе в дополнительном клиенте, а именно читателю в подписках и группах управления Azure и глобальному читателю в идентификаторе Microsoft Entra ID.
  • Создайте учетные данные службы автоматизации в учетной записи службы автоматизации AOE. Задайте идентификатор клиента субъекта-службы в качестве имени пользователя и секрета в качестве пароля.
  • Register-MultitenantAutomationSchedules.ps1 Выполните скрипт (доступен в корневой папке AOE) в контексте подписки, в которой был развернут AOE. Этот скрипт создает новые расписания заданий для каждого из модулей Runbook экспорта и настраивает их для запроса дополнительного клиента. Просто необходимо вызвать скрипт с помощью следующего синтаксиса:
./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>]

Настройка расписаний

По умолчанию в качестве времени развертывания задается базовое время расписания автоматизации AOE. Вскоре после завершения первоначального развертывания экспорт, прием и рекомендации runbook выполняются в соответствии с расписаниями по умолчанию подсистемы. Например, если вы развертываете AOE в понедельник в 11:00 утра, вы получаете новые рекомендации каждый понедельник в 2:30 вечера. Если это расписание, по какой-то причине, не соответствует вашим потребностям, вы можете сбросить его до времени, которое лучше подходит вам, используя Reset-AutomationSchedules.ps1 скрипт (доступен в корневой папке AOE). Вам просто нужно вызвать следующий сценарий. Следуйте синтаксису и ответьте на входные запросы:

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

Выбранное базовое время должно находиться в формате UTC и должно быть определено в соответствии с днем недели и часами, которые необходимо создать рекомендации. Вы должны вывести 3h30m с момента выбора. Это связано с тем, что базовое время определяет расписания для всех зависимых модулей Runbook автоматизации, которые должны выполняться до создания рекомендаций. Например, предположим, что вы хотите, чтобы рекомендации создавались каждый понедельник в 8h30 утра; базовое время — следующая дата календаря, падающая в понедельник, в 5h00. Формат выбранной даты должен быть YYYY-MM-dd HH:mm:ss, например 2022-01-03 05:00:00.

Сценарий также запрашивает ввод в группу гибридных рабочих рабочих ролей, в которой должны выполняться модули Runbook (см. следующий подраздел).


Масштабирование модулей Runbook AOE с помощью гибридной рабочей роли

По умолчанию модули Runbook службы автоматизации AOE выполняются в контексте песочницы служба автоматизации Azure. Проблемы с производительностью могут возникнуть из-за ограничений памяти песочницы службы автоматизации. Кроме того, вы можете реализовать частные конечные точки для учетной записи хранения или База данных SQL для обеспечения безопасности AOE. В любом случае необходимо выполнить модули Runbook из гибридной рабочей роли. Это Azure или локальная виртуальная машина с расширением гибридной рабочей роли службы автоматизации. Чтобы изменить контекст выполнения для модулей Runbook AOE, необходимо использовать Reset-AutomationSchedules.ps1 скрипт. Узнайте, как использовать скрипт в предыдущем подразделе. После настройки базового времени выполнения модулей Runbook введите имя группы гибридных рабочих ролей, в которой будут выполняться модули Runbook.

Внимание

  • Компьютер гибридной рабочей роли должен иметь необходимые модули PowerShell. Файл upgrade-manifest.json содержит список обязательных модулей.
  • После изменения контекста выполнения runbook на гибридную рабочую роль всегда следует использовать DoPartialUpgrade флаг при обновлении AOE или потерять параметры расписания runbook и вернуться к конфигурации песочницы по умолчанию.
  • Управляемое удостоверение, используемое для проверки подлинности в Azure, идентификаторе Записи Майкрософт и области учетной записи выставления счетов, по-прежнему используется служба автоматизации Azure. Он используется, даже если на компьютере гибридной рабочей роли назначено управляемое удостоверение (см. сведения). Управляемые удостоверения, назначаемые пользователем, поддерживаются в контексте гибридных рабочих ролей, только если:
    • Учетная запись службы автоматизации не имеет связанного управляемого удостоверения, то есть только компьютер гибридной рабочей роли может иметь управляемое удостоверение, назначаемое пользователем.
    • Все модули Runbook выполняются в контексте гибридной рабочей роли. В этом случае необходимо создать AzureOptimization_UAMIClientID переменную службы автоматизации с идентификатором клиента управляемого удостоверения, назначаемого пользователем, в качестве значения.
    • Значение переменной AzureOptimization_AuthenticationOption автоматизации обновляется до UserAssignedManagedIdentity.

Настройка пороговых значений

Для рекомендаций по затратам помощника конфигурация по умолчанию AOE создает статистические агрегаты метрик виртуальной машины 99-й процентиль 99-й виртуальной машины, но их можно изменить так, чтобы они были менее консервативными. Существуют также настраиваемые пороговые значения метрик, которые используются для вычисления оценки соответствия. Пороговые значения по умолчанию — 30 % для ЦП (5 % для рекомендаций по завершении работы), 50 % памяти (100 % для завершения работы) и 750 Мбит/с для пропускной способности сети (10 Мбит/с для завершения работы). Все настраиваемые конфигурации доступны как переменные служба автоматизации Azure. Сведения в следующей таблице выделяют наиболее релевантные переменные конфигурации. Чтобы получить доступ к ним, перейдите в меню "Общие ресурсы учетной записи службы автоматизации" — меню "Переменные ".

«Переменная» Description
AzureOptimization_AdvisorFilter Если вы не заинтересованы в получении рекомендаций для всех неоплатформенных помощников, можно указать фильтр уровня столбцов (разделенный запятыми список по крайней мере одним из следующих значений). HighAvailability,Security,Performance,OperationalExcellence По умолчанию используется все основные компоненты.
AzureOptimization_AuthenticationOption Метод проверки подлинности по умолчанию для модулей Runbook RunAsAccountслужбы автоматизации. Но вы можете измениться, ManagedIdentity если вы используете гибридную рабочую роль в виртуальной машине Azure.
AzureOptimization_ConsumptionOffsetDays Модуль Runbook по сбору данных потребления Azure запрашивает каждый день для событий выставления счетов, которые произошли семь дней назад (по умолчанию). Можно изменить более близкое смещение, но помните, что некоторые типы подписок (например, MSDN) не поддерживают более низкое значение.
AzureOptimization_PerfPercentileCpu Процентиль по умолчанию для агрегатов метрик ЦП — 99. По мере снижения процентиля алгоритм оценки правильного размера виртуальной машины корректируется менее консервативно.
AzureOptimization_PerfPercentileDisk Процентиль по умолчанию для метрик операций ввода-вывода и пропускной способности диска составляет 99. По мере снижения процентиля алгоритм оценки правильного размера виртуальной машины корректируется менее консервативно.
AzureOptimization_PerfPercentileMemory Процентиль по умолчанию для агрегатов метрик памяти — 99. По мере снижения процентиля алгоритм оценки правильного размера виртуальной машины корректируется менее консервативно.
AzureOptimization_PerfPercentileNetwork Процентиль по умолчанию для агрегатов сетевых метрик составляет 99. По мере снижения процентиля алгоритм оценки правильного размера виртуальной машины корректируется менее консервативно.
AzureOptimization_PerfPercentileSqlDtu Процентиль по умолчанию, используемый для метрик DTU базы данных SQL. По мере снижения процентили алгоритм База данных SQL правого размера корректируется менее консервативно.
AzureOptimization_PerfThresholdCpuPercentage Пороговое значение ЦП (в % времени процессора). Над ним уменьшается оценка правильного размера виртуальной машины. Под ним активируются рекомендации по затратам для масштабируемого набора виртуальных машин Azure (масштабируемого набора).
AzureOptimization_PerfThresholdCpuShutdownPercentage Пороговое значение ЦП (в % времени процессора). Над ним уменьшается оценка правильного размера виртуальной машины (только рекомендации по завершению работы).
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage Порог ЦП (максимальное значение, наблюдаемое в % времени процессора). Над ним активируются рекомендации по производительности масштабируемого набора справа.
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage Порог ЦП (среднее значение, наблюдаемое в % времени процессора). Над ним активируются рекомендации по производительности масштабируемого набора справа.
AzureOptimization_PerfThresholdMemoryPercentage Порог памяти (в % используемой памяти). Над ним уменьшается оценка правильного размера виртуальной машины. Под ним триггеры рекомендаций по затратам для масштабируемого набора справа.
AzureOptimization_PerfThresholdMemoryShutdownPercentage Порог памяти (в % используемой памяти). Над ним уменьшается оценка правильного размера виртуальной машины (только рекомендации по завершению работы).
AzureOptimization_PerfThresholdMemoryDegradedPercentage Порог памяти (в % используемой памяти). Над ним активируются рекомендации по производительности масштабируемого набора справа.
AzureOptimization_PerfThresholdNetworkMbps Пороговое значение сети (в общей Мбит/с). Над ним уменьшается оценка правильного размера виртуальной машины.
AzureOptimization_PerfThresholdNetworkShutdownMbps Пороговое значение сети (в общей Мбит/с). Над ним уменьшается оценка правильного размера виртуальной машины (только рекомендации по завершению работы).
AzureOptimization_PerfThresholdDtuPercentage Пороговое значение процента использования DTU. Под ним считается недоиспользуемый экземпляр База данных SQL.
AzureOptimization_RecommendAdvisorPeriodInDays Интервал в днях для поиска рекомендаций Помощника в репозитории Log Analytics — значение по умолчанию равно 7, так как рекомендации помощника собираются один раз в неделю.
AzureOptimization_RecommendationAADMaxCredValidityYears Максимальное количество лет для срока действия учетных данных или сертификатов субъекта-службы — любое допустимое значение, указанное выше этого интервала, создает рекомендацию по безопасности. Значение по умолчанию — 2.
AzureOptimization_RecommendationAADMinCredValidityDays Минимальное количество дней для учетных данных или сертификата субъекта-службы до истечения срока действия— любое допустимое значение ниже этого интервала создает рекомендацию по повышению эффективности работы. Значение по умолчанию — 30.
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays Количество последовательных дней, когда виртуальная машина была освобождена до того, как рекомендуется удалить (виртуальная машина была освобождена долго с дисками по-прежнему влечет за собой затраты). Значение по умолчанию — 30.
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold Максимальный процент, допустимый для использования IP-пространства подсети. Значение по умолчанию — 80.
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold Минимальный процент использования пространства IP-адресов подсети — любое использование ниже этого значения помечает соответствующую подсеть как использование низкого IP-пространства. Значение по умолчанию — 5.
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays Минимальный возраст в днях для пометки пустой подсети, что позволяет избежать перетаскивания только что созданных подсетей. Значение по умолчанию — 30.
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions Разделенный запятыми одинарный список имен подсетей, которые должны быть исключены из рекомендаций по проценту использования подсети, например ,'gatewaysubnet''azurebastionsubnet'. По умолчанию — 'gatewaysubnet'.
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold Максимальный процент назначений RBAC ограничивает использование. Значение по умолчанию — 80.
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold Максимальный процент количества групп ресурсов для каждого ограничения использования подписки. Значение по умолчанию — 80.
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit Максимальное ограничение для назначений RBAC для каждой подписки. В настоящее время установлено значение 2000 (как описано).
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit Максимальное ограничение для назначений RBAC для каждой группы управления. В настоящее время установлено значение 500 (как описано).
AzureOptimization_RecommendationResourceGroupsPerSubLimit Максимальное ограничение для количества групп ресурсов для каждой подписки. В настоящее время установлено значение 980 (как описано).
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage Минимальный процент роста учетной записи хранения, необходимый для флага хранилища как не имеющего политики хранения.
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold Минимальная ежемесячная стоимость (в валюте EA/MCA), необходимая для флага хранилища как не имеющего политики хранения.
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays Период обратного просмотра (в днях) для анализа роста учетной записи хранения.
AzureOptimization_ReferenceRegion Регион Azure, используемый в качестве ссылки для получения списка доступных номеров SKU (по умолчанию westeurope).
AzureOptimization_RemediateRightSizeMinFitScore Минимальная оценка соответствия рекомендации по правильному размеру виртуальной машины должна быть необходима для исправления.
AzureOptimization_RemediateRightSizeMinWeeksInARow Минимальное количество недель в строке рекомендации по правильному размеру виртуальной машины должно быть завершено для исправления.
AzureOptimization_RemediateRightSizeTagsFilter Имя и значение тега сопряжены с рекомендацией по правильному размеру виртуальной машины, необходимо выполнить исправление. Пример: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore Минимальная оценка соответствия длительной рекомендации виртуальной машины должна иметь значение для исправления.
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow Минимальное количество недель в строке длинной рекомендации по виртуальной машине должно быть завершено, чтобы произошло исправление.
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter Имя тега и значение пары длинной рекомендации виртуальной машины должны иметь для исправления. Пример: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RemediateUnattachedDisksMinFitScore Минимальная оценка соответствия неуправляемого диска должна иметь рекомендацию по исправлению.
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow Минимальное количество недель в строке рекомендации по неподключаемом диску должно быть завершено, чтобы произошло исправление.
AzureOptimization_RemediateUnattachedDisksAction Действие, применяемое к исправлению неподключенных дисков (Delete или Downsize).
AzureOptimization_RemediateUnattachedDisksTagsFilter Имя тега и значение пары неподключенных дисковых рекомендаций должны быть связаны с исправлением. Пример: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ]
AzureOptimization_RightSizeAdditionalPerfWorkspaces Разделенный запятыми список других идентификаторов рабочих областей Log Analytics, где следует искать метрики виртуальных машин (см. раздел "Настройка рабочих областей").
AzureOptimization_PerfThresholdDiskIOPSPercentage Пороговое значение процента использования операций ввода-вывода в секунду на диск. Под ним активируются неиспользуемые диски SSD уровня "Премиум".
AzureOptimization_PerfThresholdDiskMBsPercentage Пороговое значение процента использования пропускной способности диска. Под ним активируются неиспользуемые диски SSD уровня "Премиум".
AzureOptimization_RecommendationsMaxAgeInDays Максимальный возраст (в днях) для хранения рекомендации в базе данных SQL. Значение по умолчанию: 365.
AzureOptimization_RetailPricesCurrencyCode Код валюты (например, EUR, USD и т. д.), используемый для сбора розничных цен на резервирования.
AzureOptimization_PriceSheetMeterCategories Категории счетчиков, разделенные запятыми, используемые для фильтрации ценовых листов, чтобы избежать приема ненужных данных. По умолчанию — "Virtual Machines,Storage".
AzureOptimization_ConsumptionScope Область экспорта потребления: Subscription (только по умолчанию), BillingProfile (только MCA) или BillingAccount (для MCA) требует добавления роли читателя учетной записи выставления счетов в управляемое удостоверение AOE. См. дополнительные сведения.

Связанные продукты:

Связанные решения: