Personalización del motor de optimización de Azure
El motor de optimización de Azure (AOE) es un conjunto de runbooks de Azure Automation que recopilan, ingieren y analizan los datos de consumo y rendimiento de Azure para proporcionar recomendaciones de optimización de costos. El motor está diseñado para ser flexible y personalizable, lo que le permite ajustar su comportamiento para ajustarse mejor a las necesidades de su organización. En este artículo se proporcionan instrucciones sobre cómo personalizar la configuración del motor. Incluye el ajuste de umbrales, el cambio de programaciones y la expansión del ámbito del motor.
Ampliar el ámbito del motor
De forma predeterminada, a la identidad administrada de Azure Automation solo se le asigna el rol Lector a través de la suscripción correspondiente. Sin embargo, puede ampliar el ámbito de sus recomendaciones simplemente concediéndole el mismo rol lector a otras suscripciones o, incluso más sencillo, a un grupo de administración de nivel superior.
En el contexto de las recomendaciones de tamaño correcto de máquinas virtuales aumentadas, es posible que tenga las máquinas virtuales que informan a varias áreas de trabajo. Si necesita incluir otras áreas de trabajo (además de la principal que usa AOE), en el ámbito de recomendaciones, solo tiene que agregar sus identificadores de área de trabajo a la AzureOptimization_RightSizeAdditionalPerfWorkspaces
variable (consulte más detalles en Configuración de áreas de trabajo).
Si es un cliente multiinquilino, puede ampliar el alcance de AOE a un inquilino distinto del que se implementó. Para lograr esta extensión, debe asegurarse de los siguientes requisitos previos:
- Cree una entidad de servicio (registro de aplicaciones) y un secreto en el inquilino secundario.
- Conceda los permisos necesarios a la entidad de servicio en el inquilino secundario, es decir , Lector en suscripciones o grupos de administración de Azure y Lector global en el identificador de Microsoft Entra.
- Cree una credencial de Automation en la cuenta de Automation de AOE. Establezca el identificador de cliente de la entidad de servicio como nombre de usuario y el secreto como contraseña.
- Ejecute el
Register-MultitenantAutomationSchedules.ps1
script (disponible en la carpeta raíz de AOE) en el contexto de la suscripción donde se implementó AOE. Este script crea nuevas programaciones de trabajo para cada uno de los runbooks de exportación y los configura para consultar el inquilino secundario. Solo tiene que llamar al script mediante la sintaxis siguiente:
./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 programaciones
De forma predeterminada, la hora base de las programaciones de Automatización de AOE se establece como la hora de implementación. Poco después de que se complete la implementación inicial, las exportaciones, las ingestas y los runbooks de recomendaciones se ejecutan según las programaciones predeterminadas del motor. Por ejemplo, si implementa AOE un lunes a las 11:00 a.m., obtendrá nuevas recomendaciones cada lunes a las 2:30 p.m.. Si esta programación, por algún motivo, no se ajusta a sus necesidades, puede restablecerla al tiempo que mejor se adapte a usted, mediante el Reset-AutomationSchedules.ps1
script (disponible en la carpeta raíz de AOE). Solo tiene que llamar al siguiente script. Siga la sintaxis y responda a las solicitudes de entrada:
./Reset-AutomationSchedules.ps1 -AutomationAccountName <AOE automation account> -ResourceGroupName <AOE resource group> [-AzureEnvironment <AzureUSGovernment|AzureGermanCloud|AzureCloud>]
La hora base que elija debe estar en UTC y debe definirse según el día de la semana y la hora que desee generar recomendaciones. Debe deducir 3h30m desde el momento que elija. Se debe a que el tiempo base define las programaciones de todos los runbooks de automatización dependientes que se deben ejecutar antes de generar las recomendaciones. Por ejemplo, supongamos que quiere que se generen recomendaciones cada lunes a las 8h30 a.m.; la hora base es la siguiente fecha del calendario que cae el lunes a las 5h00 AM. El formato de la fecha que elija debe ser AAAA-MM-dd HH:mm:ss, por ejemplo, 2022-01-03 05:00:00
.
El script también le pide que escriba, si es necesario, el grupo de Hybrid Worker en el que quiere que se ejecuten los runbooks (consulte la siguiente subsección).
Escalado de runbooks de AOE con Hybrid Worker
De forma predeterminada, los runbooks de Automatización de AOE se ejecutan en el contexto del espacio aislado de Azure Automation. Es posible que se produzcan problemas de rendimiento debido a los límites de memoria del espacio aislado de Automation. O bien, puede decidir implementar puntos de conexión privados para la cuenta de almacenamiento o SQL Database para proteger la seguridad de AOE. En cualquier caso, debe ejecutar runbooks desde una instancia de Hybrid Worker. Es una máquina virtual de Azure o local con la extensión Automation Hybrid Worker. Para cambiar el contexto de ejecución de los runbooks de AOE, debe usar el Reset-AutomationSchedules.ps1
script. Vea cómo usar el script en la subsección anterior. Después de establecer el tiempo base de ejecución de runbooks, escriba el nombre del grupo de Hybrid Worker en el que desea que se ejecuten los runbooks.
Importante
- La máquina de Hybrid Worker debe tener instalados los módulos de PowerShell necesarios. El
upgrade-manifest.json
archivo contiene la lista de módulos necesarios. - Una vez que cambie el contexto de ejecución del runbook a Hybrid Worker, siempre debe usar la
DoPartialUpgrade
marca siempre que actualice AOE o, de lo contrario, pierda la configuración de programación del runbook y vuelva a la configuración de espacio aislado predeterminada. - La identidad administrada que se usa para autenticarse en los ámbitos de Azure, Microsoft Entra ID y Cuenta de facturación sigue siendo el que usa Azure Automation. Se usa incluso si la máquina de Hybrid Worker tiene asignada una identidad administrada (consulte los detalles). Las identidades administradas asignadas por el usuario solo se admiten en el contexto de Hybrid Worker si:
- La cuenta de Automation no tiene ninguna identidad administrada asociada, es decir, solo la máquina de Hybrid Worker puede tener una identidad administrada asignada por el usuario.
- Todos los runbooks se ejecutan en el contexto de Hybrid Worker. En este caso, debe crear una
AzureOptimization_UAMIClientID
variable de Automatización con el identificador de cliente de identidad administrada asignada por el usuario como valor. - El
AzureOptimization_AuthenticationOption
valor de la variable automation se actualiza aUserAssignedManagedIdentity
.
Ajustar umbrales
En el caso de las recomendaciones de costos de Advisor, la configuración predeterminada de AOE genera agregaciones de métricas de máquina virtual percentil 99, pero puede ajustarlas para que sean menos conservadoras. También hay umbrales de métrica ajustables que se usan para calcular la puntuación de ajuste. Los valores de umbrales predeterminados son del 30 % para la CPU (5 % para las recomendaciones de apagado), 50 % para la memoria (100 % para apagado) y 750 Mbps para ancho de banda de red (10 Mbps para apagado). Todas las configuraciones ajustables están disponibles como variables de Azure Automation. La información de la tabla siguiente resalta las variables de configuración más relevantes. Para acceder a ellos, vaya a la opción de menú Recursos compartidos de cuenta de Automation: variables .
Variable | Descripción |
---|---|
AzureOptimization_AdvisorFilter |
Si no le interesa obtener recomendaciones para todos los pilares que no son de Cost Advisor, puede especificar un filtro de nivel de pilar (lista separada por comas con al menos uno de los siguientes valores: HighAvailability,Security,Performance,OperationalExcellence ). El valor predeterminado es todos los pilares. |
AzureOptimization_AuthenticationOption |
El método de autenticación predeterminado para Runbooks de Automation es RunAsAccount . Pero puede cambiar a ManagedIdentity si usa Hybrid Worker en una máquina virtual de Azure. |
AzureOptimization_ConsumptionOffsetDays |
El runbook de recopilación de datos de consumo de Azure consulta cada día los eventos de facturación que se produjeron hace siete días (valor predeterminado). Puede cambiar a un desplazamiento más cercano, pero tenga en cuenta que algunos tipos de suscripción (por ejemplo, MSDN) no admiten un valor inferior. |
AzureOptimization_PerfPercentileCpu |
El percentil predeterminado para las agregaciones de métricas de CPU es 99. A medida que el percentil disminuye, el algoritmo de puntuación de ajuste de tamaño correcto de la máquina virtual se ajusta menos conservadormente. |
AzureOptimization_PerfPercentileDisk |
El percentil predeterminado para las agregaciones de métricas de E/S de disco es 99. A medida que el percentil disminuye, el algoritmo de puntuación de ajuste de tamaño correcto de la máquina virtual se ajusta menos conservadormente. |
AzureOptimization_PerfPercentileMemory |
El percentil predeterminado para las agregaciones de métricas de memoria es 99. A medida que el percentil disminuye, el algoritmo de puntuación de ajuste de tamaño correcto de la máquina virtual se ajusta menos conservadormente. |
AzureOptimization_PerfPercentileNetwork |
El percentil predeterminado para las agregaciones de métricas de red es 99. A medida que el percentil disminuye, el algoritmo de puntuación de ajuste de tamaño correcto de la máquina virtual se ajusta menos conservadormente. |
AzureOptimization_PerfPercentileSqlDtu |
Percentil predeterminado que se va a usar para las métricas de DTU de base de datos de SQL. A medida que el percentil disminuye, el algoritmo de tamaño correcto de SQL Database se ajusta menos conservadormente. |
AzureOptimization_PerfThresholdCpuPercentage |
Umbral de CPU (en % de tiempo de procesador). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye. Debajo, se desencadenan los desencadenadores de recomendación de costo de tamaño correcto del conjunto de escalado de máquinas virtuales (conjunto de escalado) de Azure Virtual Machine. |
AzureOptimization_PerfThresholdCpuShutdownPercentage |
Umbral de CPU (en % de tiempo de procesador). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye (solo recomendaciones de apagado). |
AzureOptimization_PerfThresholdCpuDegradedMaxPercentage |
Umbral de CPU (máximo observado en % de tiempo de procesador). Encima, se desencadenan los desencadenadores de recomendación de rendimiento de tamaño correcto del conjunto de escalado. |
AzureOptimization_PerfThresholdCpuDegradedAvgPercentage |
Umbral de CPU (promedio observado en % de tiempo de procesador). Encima, se desencadenan los desencadenadores de recomendación de rendimiento de tamaño correcto del conjunto de escalado. |
AzureOptimization_PerfThresholdMemoryPercentage |
Umbral de memoria (en % de memoria usada). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye. Debajo, se desencadenan las recomendaciones de costo de tamaño correcto del conjunto de escalado. |
AzureOptimization_PerfThresholdMemoryShutdownPercentage |
Umbral de memoria (en % de memoria usada). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye (solo recomendaciones de apagado). |
AzureOptimization_PerfThresholdMemoryDegradedPercentage |
Umbral de memoria (en % de memoria usada). Encima, se desencadenan los desencadenadores de recomendación de rendimiento de tamaño correcto del conjunto de escalado. |
AzureOptimization_PerfThresholdNetworkMbps |
Umbral de red (en Total Mbps). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye. |
AzureOptimization_PerfThresholdNetworkShutdownMbps |
Umbral de red (en Total Mbps). Encima, la puntuación de ajuste de tamaño correcto de la máquina virtual disminuye (solo recomendaciones de apagado). |
AzureOptimization_PerfThresholdDtuPercentage |
Umbral de porcentaje de uso de DTU. Debajo, una instancia de SQL Database se considera infrautilizada. |
AzureOptimization_RecommendAdvisorPeriodInDays |
Intervalo en días para buscar recomendaciones de Advisor en el repositorio de Log Analytics: el valor predeterminado es 7, ya que las recomendaciones de Advisor se recopilan una vez a la semana. |
AzureOptimization_RecommendationAADMaxCredValidityYears |
El número máximo de años de validez de una credencial o certificado de entidad de servicio: cualquier validez por encima de este intervalo genera una recomendación de seguridad. Se establece en 2 de forma predeterminada. |
AzureOptimization_RecommendationAADMinCredValidityDays |
El número mínimo de días para una credencial o certificado de entidad de servicio antes de que expire: cualquier validez por debajo de este intervalo genera una recomendación de excelencia operativa. El valor predeterminado es 30. |
AzureOptimization_RecommendationLongDeallocatedVmsIntervalDays |
El número de días consecutivos que se desasignó una máquina virtual antes de ser recomendada para su eliminación (la máquina virtual se ha desasignado durante mucho tiempo con discos que siguen incurriendo en costos). El valor predeterminado es 30. |
AzureOptimization_RecommendationVNetSubnetMaxUsedPercentageThreshold |
Porcentaje máximo tolerado para el uso del espacio ip de subred. El valor predeterminado es 80. |
AzureOptimization_RecommendationVNetSubnetMinUsedPercentageThreshold |
Porcentaje mínimo para el uso del espacio ip de subred: cualquier uso por debajo de este valor marca la subred correspondiente como el uso de poco espacio de IP. El valor predeterminado es 5. |
AzureOptimization_RecommendationVNetSubnetEmptyMinAgeInDays |
La antigüedad mínima en días para que se marque una subred vacía, lo que evita marcar las subredes recién creadas. El valor predeterminado es 30. |
AzureOptimization_RecommendationVNetSubnetUsedPercentageExclusions |
Lista de nombres de subred separados por comas, entre comillas simples, que deben excluirse de las recomendaciones de porcentaje de uso de subred, por ejemplo, 'gatewaysubnet' ,'azurebastionsubnet' . Tiene como valor predeterminado 'gatewaysubnet' . |
AzureOptimization_RecommendationRBACAssignmentsPercentageThreshold |
El porcentaje máximo de asignaciones de RBAC limita el uso. El valor predeterminado es 80. |
AzureOptimization_RecommendationResourceGroupsPerSubPercentageThreshold |
Porcentaje máximo de recuento de grupos de recursos por uso de límites de suscripción. El valor predeterminado es 80. |
AzureOptimization_RecommendationRBACSubscriptionsAssignmentsLimit |
Límite máximo de asignaciones de RBAC por suscripción. Actualmente se establece en 2000 (como se documenta). |
AzureOptimization_RecommendationRBACMgmtGroupsAssignmentsLimit |
Límite máximo de asignaciones de RBAC por grupo de administración. Actualmente se establece en 500 (como se documenta). |
AzureOptimization_RecommendationResourceGroupsPerSubLimit |
Límite máximo para el recuento de grupos de recursos por suscripción. Actualmente se establece en 980 (como se documenta). |
AzureOptimization_RecommendationStorageAcountGrowthThresholdPercentage |
Porcentaje mínimo de crecimiento de la cuenta de almacenamiento necesario para marcar Storage como no tener una directiva de retención vigente. |
AzureOptimization_RecommendationStorageAcountGrowthMonthlyCostThreshold |
El costo mensual mínimo (en la moneda de EA/MCA) necesario para marcar Storage como no tener una directiva de retención vigente. |
AzureOptimization_RecommendationStorageAcountGrowthLookbackDays |
Período de búsqueda (en días) para analizar el crecimiento de la cuenta de almacenamiento. |
AzureOptimization_ReferenceRegion |
La región de Azure que se usa como referencia para obtener la lista de SKU disponibles (el valor predeterminado es westeurope ). |
AzureOptimization_RemediateRightSizeMinFitScore |
La puntuación de ajuste mínima debe tener una recomendación de tamaño correcto de máquina virtual para que se produzca la corrección. |
AzureOptimization_RemediateRightSizeMinWeeksInARow |
El número mínimo de semanas de una fila que una recomendación de tamaño correcto de máquina virtual debe completarse para que se produzca la corrección. |
AzureOptimization_RemediateRightSizeTagsFilter |
Los pares de nombre y valor de etiqueta que debe tener una recomendación de tamaño correcto de máquina virtual para que se produzca la corrección. Ejemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateLongDeallocatedVMsMinFitScore |
La puntuación de ajuste mínima debe tener una recomendación de máquina virtual desasignada larga para que se produzca la corrección. |
AzureOptimization_RemediateLongDeallocatedVMsMinWeeksInARow |
El número mínimo de semanas en una fila que una recomendación de máquina virtual desasignada larga debe completarse para que se produzca la corrección. |
AzureOptimization_RemediateLongDeallocatedVMsTagsFilter |
Los pares de nombre y valor de etiqueta deben tener una recomendación de máquina virtual desasignada larga para que se produzca la corrección. Ejemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RemediateUnattachedDisksMinFitScore |
La puntuación de ajuste mínima debe tener una recomendación de disco no conectado para que se produzca la corrección. |
AzureOptimization_RemediateUnattachedDisksMinWeeksInARow |
El número mínimo de semanas en una fila que una recomendación de disco no conectado debe completarse para que se produzca la corrección. |
AzureOptimization_RemediateUnattachedDisksAction |
La acción que se va a aplicar para una corrección de recomendación de disco no conectado (Delete o Downsize ). |
AzureOptimization_RemediateUnattachedDisksTagsFilter |
Los pares de nombre y valor de etiqueta deben tener una recomendación de disco no conectado para que se produzca la corrección. Ejemplo: [ { "tagName": "a", "tagValue": "b" }, { "tagName": "c", "tagValue": "d" } ] |
AzureOptimization_RightSizeAdditionalPerfWorkspaces |
Una lista separada por comas de otros identificadores de área de trabajo de Log Analytics donde buscar métricas de máquina virtual (consulte Configuración de áreas de trabajo). |
AzureOptimization_PerfThresholdDiskIOPSPercentage |
Umbral de porcentaje de uso de IOPS de disco. Debajo, se desencadenan los desencadenadores de recomendación de discos SSD Premium infrautilizados. |
AzureOptimization_PerfThresholdDiskMBsPercentage |
Umbral de porcentaje de uso del rendimiento del disco. Debajo, se desencadenan los desencadenadores de recomendación de discos SSD Premium infrautilizados. |
AzureOptimization_RecommendationsMaxAgeInDays |
La antigüedad máxima (en días) para una recomendación que se mantendrá en la base de datos SQL. Valor predeterminado: 365. |
AzureOptimization_RetailPricesCurrencyCode |
El código de moneda (por ejemplo, EUR, USD, etc.) usado para recopilar los precios comerciales de Reservas. |
AzureOptimization_PriceSheetMeterCategories |
Las categorías de medidores separados por comas usadas para el filtrado de hojas de precios, con el fin de evitar la ingesta de datos innecesarios. Tiene como valor predeterminado "Virtual Machines,Storage" . |
AzureOptimization_ConsumptionScope |
El ámbito de las exportaciones de consumo: Subscription (valor predeterminado), BillingProfile (solo MCA) o BillingAccount (para MCA, requiere agregar el rol Lector de cuenta de facturación a la identidad administrada de AOE). Consulte más detalles. |
Contenido relacionado
Productos relacionados:
Soluciones relacionadas: