Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсистема оптимизации Azure (AOE) — это набор Runbook службы автоматизации Azure, которые собирают, поглощают и анализируют данные о потреблении и производительности Azure для предоставления рекомендаций по оптимизации затрат. Механизм предназначен для того, чтобы быть гибким и настраиваемым, что позволяет вам изменять его поведение в соответствии с потребностями вашей организации. В этой статье приводятся инструкции по настройке параметров подсистемы. Она включает настройку пороговых значений, изменение расписаний и расширение области двигателя.
Расширение области действия механизма
По умолчанию управляемому удостоверению службы автоматизации Azure назначается роль Читателя только по соответствующей подписке. Однако вы можете расширить область своих рекомендаций, просто предоставив ту же роль Читателя другим подпискам или, ещё проще, группе управления верхнего уровня.
В контексте рекомендаций по оптимизации размера виртуальных машин с расширенной функциональностью ваши виртуальные машины могут отчитываться в нескольких рабочих областях. Если вам нужно включить другие рабочие области, помимо основной, которую использует AOE, в область рекомендаций, просто добавьте их идентификаторы рабочих областей в переменную AzureOptimization_RightSizeAdditionalPerfWorkspaces (см. дополнительные сведения о настройке рабочих областей).
Если у вас несколько каталогов Entra ID (также известных как арендаторы), вы можете расширить охват AOE на арендатора, отличного от того, где он был развернут. Для этого у вас есть два варианта, каждый из которых имеет свои плюсы и минусы:
| Принципал службы во вторичном арендаторе | Развертывание Azure Lighthouse |
|---|---|
| Предоставляет самый широкий охват функций (см. ограничения ниже) | Обеспечивает почти полное покрытие функций (см. ограничения ниже) |
| Использует менее безопасный и неуправляемый параметр проверки подлинности на основе секретов | Обеспечивает надежную аутентификацию с повторным использованием управляемого удостоверения подсистемы. |
| Не поддерживает повторное использование показателей производительности из рабочих областей Log Analytics в дополнительном клиенте при улучшении рекомендаций по оптимальному размеру виртуальной машины. | Отсутствует поддержка объектов Microsoft Entra, что влияет на полноту рабочей книги "Идентичности и Роли" и рекомендаций, связанных с Microsoft Entra ID. Вкладка обзора в книге соответствия политик не отображает данные из вторичного арендатора; поддерживается только подробный анализ политик. |
| Реализация основана на выполнении вспомогательного скрипта PowerShell | Реализация основана на развертывании шаблона Azure Resource Manager |
| Более масштабируемое покрытие вторичного арендатора всего лишь за счет предоставления разрешений субъекту-службе на более высоком уровне прав доступа. | Развертывание выполняется для каждой подписки в вторичной учетной записи; требуется политика Azure для масштабирования. |
| Менее экономически выгодно, так как графики заданий дублируются для вторичного арендатора. | Более экономично, так как существующие расписания заданий автоматически охватывают вторичного арендатора. |
Мультитенантный с основным объектом службы во вторичном арендаторе
Чтобы расширить область двигателя с помощью подхода на основе учётной записи службы, необходимо убедиться в выполнении следующих предварительных требований:
- Создайте учетную запись службы (регистрация приложения) и секрет во вторичном арендаторе.
- Предоставьте необходимые разрешения субъекту-службе в дополнительном клиенте, а именно читателю в подписках и группах управления Azure и глобальному читателю в идентификаторе Microsoft Entra ID.
- Создайте учетные данные для автоматизации в учетной записи автоматизации AOE. Задайте идентификатор клиента субъекта-службы в качестве имени пользователя и секрета в качестве пароля.
-
Register-MultitenantAutomationSchedules.ps1Выполните скрипт (доступен в корневой папке AOE) в контексте подписки, в которой был развернут AOE. Этот скрипт создает новые расписания заданий для каждого экспортного ранбука и настраивает их для обращения ко вторичному арендатору. Просто необходимо вызвать скрипт с помощью следующего синтаксиса:
./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>]
Использование многопользовательских возможностей в Azure Lighthouse
Чтобы расширить область обработчика с помощью подхода на основе Azure Lighthouse, необходимо убедиться в выполнении следующих предварительных требований:
- Подготовьте шаблон Azure Resource Manager для развертывания в дополнительном клиенте. Вы можете повторно использовать as-is эталонный шаблон в нашем репозитории (файл
lighthouse-template.json, доступный в корневой папке AOE). - Если вы развертываете шаблон для одной подписки, вам просто нужно следовать описанным здесьшагам, используя приведенный выше эталонный шаблон и указав значения параметров шаблона (как отдельный файл параметров или непосредственно в интерфейсе портала Azure).
- Если вам нужно развернуть масштаб в нескольких подписках, вы можете использовать политику Azure, следуя инструкциям, доступным здесь и изменив код определения политики, чтобы следовать приведенному выше шаблону ссылки.
- Независимо от подхода к развертыванию, необходимы следующие параметры шаблона:
-
managedByTenantId— идентификатор тенанта Microsoft Entra, в котором был развернут AOE. -
principalId— идентификатор объекта Microsoft Entra для управляемой системы идентификации учетной записи автоматизации AOE. -
principalIdDisplayName— имя учетной записи службы автоматизации AOE.
-
Настройка расписаний
По умолчанию в качестве времени развертывания задается базовое время расписания автоматизации AOE. Вскоре после завершения первоначального развертывания задачи по экспорту, импорту и рекомендации выполняются в соответствии с расписаниями по умолчанию механизма. Например, если вы развертываете 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 и определено в соответствии с днем недели и часом, когда вы хотите, чтобы рекомендации генерировались. Вы должны вычесть 3 часа 30 минут из выбранного времени. Это связано с тем, что базовое время определяет расписания для всех зависимых автоматизационных runbook'ов, которые должны выполняться до генерации рекомендаций. Например, предположим, что вы хотите, чтобы рекомендации создавались каждый понедельник в 8h30 утра; базовое время — следующая дата календаря, падающая в понедельник, в 5h00. Формат выбранной даты должен быть YYYY-MM-dd HH:mm:ss, например 2022-01-03 05:00:00.
Сценарий также предлагает вам ввести, по необходимости, группу гибридных рабочих, в которой вы хотите запускать рабочие книги (см. следующий подраздел).
Масштабирование сценариев AOE с использованием гибридного рабочего.
По умолчанию сценарии автоматизации AOE выполняются в контексте песочницы службы автоматизации Azure. Проблемы с производительностью могут возникнуть из-за ограничений памяти песочницы автоматизации. Или вы можете реализовать частные конечные точки для учетной записи хранения или базы данных SQL для повышения безопасности AOE. В любом случае необходимо запустить рукбуки с гибридного рабочего узла. Это виртуальная машина в Azure или локальной среде с расширением гибридного рабочего агента для автоматизации. Чтобы изменить контекст выполнения для AOE runbooks, необходимо использовать скрипт Reset-AutomationSchedules.ps1. Узнайте, как использовать скрипт в предыдущем подразделе. После настройки базового времени выполнения модулей Runbook введите имя группы гибридных рабочих ролей, в которой будут выполняться модули Runbook.
Внимание
- У машины гибридного работника должны быть установлены необходимые модули PowerShell. Файл
upgrade-manifest.jsonсодержит список обязательных модулей. - После изменения контекста выполнения runbook на гибридного агента, нужно всегда использовать флаг
DoPartialUpgradeпри обновлении AOE, иначе вы потеряете параметры расписания runbook и вернетесь к конфигурации песочницы по умолчанию. - Управляемое удостоверение, используемое для проверки подлинности в Azure, Microsoft Entra ID и области действия учетной записи выставления счетов, по-прежнему используется Azure Automation. Он будет использоваться даже в том случае, если устройству гибридного рабочего назначено управляемое удостоверение (см. детали). Управляемые удостоверения, назначаемые пользователем, поддерживаются в контексте гибридных работников только если:
- Учетная запись службы автоматизации не имеет связанного управляемого удостоверения. Это значит, что только компьютер гибридной рабочей роли может иметь управляемое удостоверение, назначаемое пользователем.
- Все процессы Runbook выполняются в контексте гибридного рабочего. В этом случае необходимо создать
AzureOptimization_UAMIClientIDпеременную автоматизации, где в качестве значения используется идентификатор клиента управляемого удостоверения, назначаемого пользователем. - Значение переменной
AzureOptimization_AuthenticationOptionавтоматизации обновляется доUserAssignedManagedIdentity.
Настройка пороговых значений
Для рекомендаций по затратам Advisor конфигурация по умолчанию AOE создает агрегаты метрик виртуальной машины на уровне 99-го процентиля, но их можно настроить для более низкого уровня консервативности. Существуют также настраиваемые пороговые значения метрик, которые используются для вычисления оценки соответствия. Пороговые значения по умолчанию — 30 % для ЦП (5 % для рекомендаций по завершении работы), 50 % памяти (100 % для завершения работы) и 750 Мбит/с для пропускной способности сети (10 Мбит/с для завершения работы). Все настраиваемые конфигурации доступны как переменные в службе автоматизации Azure Automation. Сведения в следующей таблице выделяют наиболее релевантные переменные конфигурации. Чтобы получить доступ к ним, перейдите в меню "Общие ресурсы учетной записи службы автоматизации" — меню "Переменные ".
| Переменная | Описание |
|---|---|
AzureOptimization_AdvisorFilter |
Если вы не заинтересованы в получении рекомендаций для всех компонентов, не относящихся к Cost Advisor, вы можете указать фильтр на уровне компонентов (список через запятую, содержащий по крайней мере одно из следующих значений: 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 Database корректируется менее консервативно. |
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 |
Пороговое значение использования IOPS на диске. Ниже отображаются рекомендации по активизации недоиспользуемых 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). См. дополнительные сведения. |
Связанный контент
Связанные продукты:
Связанные решения: