Compartir a través de


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 a UserAssignedManagedIdentity.

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.

Productos relacionados:

Soluciones relacionadas: