Habilitar la monitorización del rendimiento para Microsoft SQL (vista previa)

Este artículo explica cómo habilitar y desactivar la monitorización de rendimiento para los servicios de Microsoft SQL para que los datos de rendimiento aparezcan en la página de Rendimiento del Database Hub. Habilitar la monitorización del rendimiento no supone un coste adicional. No necesitas desplegar ni mantener agentes de monitorización, almacenes de datos u otra infraestructura de monitorización.

Important

Esta característica se encuentra en versión preliminar.

Los pasos para activar el seguimiento del rendimiento varían según el servicio. Después de activar la monitorización, todos los servicios envían datos de rendimiento a la misma tubería de telemetría. El Centro de Bases de Datos utiliza estos datos para ayudar a identificar problemas de rendimiento y crear paneles de control. También puedes consultar la telemetría directamente con KQL. Para obtener más información, consulte telemetría de supervisión del rendimiento de las consultas. Este artículo cubre los siguientes servicios:

Puedes ver recursos de Microsoft SQL en el Database Hub desde Azure, Fabric y locales. Se incluyen los siguientes tipos de recursos:

  • Azure SQL Database
  • Instancia Gestionada de Azure SQL
  • SQL Server en máquinas virtuales de Azure
  • SQL Server habilitado por Azure Arc
  • Grupos elásticos de Azure SQL Database
  • Base de datos SQL en Fabric

Los siguientes tipos de recursos son visibles en el Centro de Base de Datos, pero la página de Rendimiento aún no los admite:

  • Base de datos SQL en Fabric
  • Grupos elásticos de Azure SQL Database
  • Instancia Gestionada de Azure SQL
  • La monitorización del rendimiento no recopila datos de las bases de datos incluidas en grupos elásticos de Azure SQL Database ni de las réplicas secundarias.

Disponibilidad regional y gestión de datos

La monitorización del rendimiento está disponible para recursos SQL de Microsoft en las siguientes regiones de Azure. Las nubes gubernamentales, soberanas y aisladas no son compatibles durante la versión preliminar. Para obtener más información, consulte la disponibilidad de la región de Fabric.

  • Sur de Brasil
  • Canada Central
  • Canada East
  • Central US
  • East US
  • Este de EE. UU. 2
  • Centro-Norte de EE. UU
  • Centro-sur de EE. UU.
  • Centro-oeste de EE. UU.
  • West US
  • Oeste de EE. UU. 2
  • Oeste de EE. UU. 3

La monitorización del rendimiento recopila datos de rendimiento de vistas de gestión dinámica (DMVs) en tus recursos SQL. La monitorización del rendimiento no recopila datos personales ni contenido del cliente, y los datos no se almacenan en reposo fuera de la geografía del recurso SQL monitorizado.

Registrar el proveedor de recursos de Azure

Para ver datos de monitorización de rendimiento, registra el proveedor de Microsoft.AzureArcData recursos en cada suscripción que contenga recursos de base de datos que quieras monitorizar. Para más información, consulta el registro de proveedores en Arizona.

az provider register --namespace Microsoft.AzureArcData

Para comprobar el estado de registro, ejecuta el siguiente comando. El registro se completa cuando el comando devuelve Registered.

az provider show --namespace Microsoft.AzureArcData --query "registrationState" --output tsv

Habilitar la monitorización del rendimiento para Azure SQL Database

Use uno de los métodos siguientes:

  • En el Centro de bases de datos, ve a la página Estate, selecciona el recurso y luego selecciona Habilitar la supervisión del rendimiento.
  • Ejecuta el siguiente script T-SQL en cada base de datos de usuario que quieras monitorizar. No ejecutes el script en la master base de datos. Para aplicar el script a varios servidores a la vez, considera consultas multiservidor en SQL Server Management Studio (SSMS). Añade la propiedad extendida MS_EnablePerformanceMonitoringPreview a cada base de datos de usuarios que quieras monitorizar.
IF EXISTS (
    SELECT 1
    FROM sys.extended_properties
    WHERE class = 0
      AND name = N'MS_EnablePerformanceMonitoringPreview'
)
BEGIN
    EXEC sys.sp_updateextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END
ELSE
BEGIN
    EXEC sys.sp_addextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END;
GO

Cómo desactivar la monitorización del rendimiento en Azure SQL Database

Para dejar de recopilar datos de rendimiento para una base de datos de usuario, cambia @value = N'true' a @value = N'false' en ambas llamadas a procedimientos y luego vuelve a ejecutar el script T-SQL en esa base de datos.

Habilitar la monitorización de rendimiento para SQL Server en máquinas virtuales de Azure

Para habilitar la monitorización del rendimiento de SQL Server en máquinas virtuales de Azure, añade la DatabaseWatcheronAzureVM bandera de función a la configuración pública de la extensión SQL IaaS Agent. La extensión recoge entonces datos de rendimiento de la instancia de SQL Server y utiliza la identidad gestionada asignada por el sistema de la VM para subirlos a un punto final regional de telemetría. La monitorización se configura por máquina virtual. Activar la bandera de función en una VM no activa la monitorización en otras VMs.

Para verificación, resolución de problemas y la lista completa de conjuntos de datos recopilados, véase Habilitar la monitorización del rendimiento para SQL Server en máquinas virtuales de Azure.

Prerequisitos para SQL Server en máquinas virtuales de Azure

  • La monitorización del rendimiento soporta SQL Server 2016 SP1 y versiones posteriores en máquinas virtuales de Azure. No se soportan versiones de SQL Server anteriores a SQL Server 2016 SP1.
  • La monitorización del rendimiento recopila todos los conjuntos de datos para las ediciones SQL Server Enterprise y Standard. Para las ediciones SQL Server Developer, Express y Evaluation, la monitorización del rendimiento recopila únicamente datos de conexión del cliente.
  • Debes instalar la versión 2.0.229.0de extensión SQL IaaS Agent o posterior en modo de gestión completa. Debes habilitar la extensión y su estado de aprovisionamiento debe ser Succeeded.
  • La VM debe tener habilitada una identidad gestionada asignada por el sistema .
  • El recurso de instancia de SQL Server debe estar disponible mediante inventario unificado.
  • Debes registrar al Microsoft.AzureArcData proveedor de recursos para la suscripción.
  • La máquina virtual debe permitir la conectividad HTTPS saliente en el puerto 443 a telemetry.<region>.arcdataservices.com, donde <region> es la región de Azure que aloja la máquina virtual.
  • Necesitas la última versión de la CLI de Azure.
  • Necesitas permiso para ver y actualizar extensiones en la VM, como la pertenencia al rol de Contribuidor de Máquina Virtual .

Cómo habilitar la monitorización del rendimiento para SQL Server en máquinas virtuales de Azure

Important

La configuración de la extensión SQL IaaS Agent no es acumulativa. Cuando actualices la extensión, incluye todas las configuraciones públicas existentes para evitar desactivar accidentalmente otra función.

Los siguientes pasos de PowerShell recuperan la configuración pública actual, añaden la bandera de función de monitorización de rendimiento y aplican los ajustes fusionados a la extensión.

  1. Abre PowerShell en un entorno donde esté instalada la CLI de Azure y luego inicia sesión en Azure.

    az login
    
  2. Establece las variables para tu máquina virtual de SQL Server.

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. Recupera la configuración actual de extensión SQL IaaS Agent.

    $extension = az vm extension show `
      --resource-group $resourceGroup `
      --vm-name $vmName `
      --name SqlIaasExtension `
      --query "{settings:settings,typeHandlerVersion:typeHandlerVersion}" `
      --output json | ConvertFrom-Json
    
    if ($null -eq $extension.settings) {
      $settings = [pscustomobject]@{}
    }
    else {
      $settings = $extension.settings
    }
    
  4. Añade la marca de funcionalidad DatabaseWatcheronAzureVM sin alterar las marcas de funcionalidad existentes.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $true
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  5. Guarda los ajustes fusionados y aplícalos a la extensión SQL IaaS Agent.

    $settingsPath = Join-Path $env:TEMP "sqlvm-performance-monitoring-settings.json"
    
    try {
      $settings |
        ConvertTo-Json -Depth 50 |
        Out-File -FilePath $settingsPath -Encoding utf8
    
      az vm extension set `
        --resource-group $resourceGroup `
        --vm-name $vmName `
        --publisher Microsoft.SqlServer.Management `
        --name SqlIaaSAgent `
        --extension-instance-name SqlIaasExtension `
        --settings "@$settingsPath"
    }
    finally {
      Remove-Item $settingsPath -ErrorAction SilentlyContinue
    }
    
  6. Repite estos pasos para cada máquina virtual que quieras monitorizar.

La extensión recarga automáticamente la configuración pública. No necesitas reiniciar el servicio IaaS Agent de SQL Server ni la máquina virtual. La mayoría de los datos de rendimiento están disponibles entre 3 y 5 minutos tras el efecto de la configuración. Algunos datos basados en inventario pueden tardar hasta 15 minutos.

Para confirmar que la monitorización está en marcha, comprueba el estado de la extensión:

az vm extension show `
  --resource-group $resourceGroup `
  --vm-name $vmName `
  --name SqlIaasExtension `
  --instance-view `
  --query "instanceView.statuses[0].message" `
  --output tsv

Cuando la monitorización del rendimiento se ejecuta y sube datos con éxito, el estado incluye DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}. Para confirmar que los datos están disponibles, ejecuta la consulta de prueba de conexión en Consulta de telemetría de monitorización del rendimiento.

Desactiva la monitorización de rendimiento para SQL Server en máquinas virtuales de Azure

Para dejar de recopilar nuevos datos de rendimiento para una máquina virtual, establece la DatabaseWatcheronAzureVM bandera de característica en false. Fusiona el cambio con la configuración pública existente para que otras funciones de extensión SQL IaaS Agent no se vean afectadas.

  1. Completar los pasos 1 a 3 en Habilitar la monitorización del rendimiento para SQL Server en máquinas virtuales de Azure para iniciar sesión, establecer las variables y recuperar la configuración actual.

  2. Configura el indicador de función DatabaseWatcheronAzureVM en false manteniendo los indicadores de función existentes.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $false
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  3. Completar el paso 5 en Habilitar la monitorización del rendimiento para SQL Server en máquinas virtuales de Azure para aplicar la configuración fusionada a la extensión.

Espera unos minutos para que la nueva configuración entre en vigor y luego revisa el estado de la prórroga para confirmar el cambio.

Habilitar la monitorización de rendimiento para SQL Server habilitada por Azure Arc

La monitorización del rendimiento para SQL Server habilitada por Azure Arc está activada por defecto. Cuando una instancia cumple todos los requisitos previos de esta sección, recoge datos de rendimiento automáticamente y no necesitas tomar ningún otro paso. Para más información, consulta Monitor SQL Server habilitado por Azure Arc.

Prerequisitos para SQL Server habilitados por Azure Arc

  • La extensión de Azure para SQL Server (WindowsAgent.SqlServer) debe ser una versión 1.1.2504.99 o versiones posteriores.
  • SQL Server debe funcionar en Windows. SQL Server en Linux no es compatible. SQL Server en Windows Server 2012 R2 y versiones anteriores no es compatible.
  • SQL Server debe ser edición Standard o Enterprise.
  • SQL Server debe ser versión 2016 SP1 o versiones posteriores.
  • El servidor debe tener conectividad a *.<region>.arcdataservices.com. Para obtener más información, vea Requisitos de red.
  • El tipo de licencia en SQL Server habilitado por Azure Arc debe ser Software Assurance o pay-as-you-go.
  • Necesitas un rol de Azure que incluya la Microsoft.AzureArcData/sqlServerInstances/getTelemetry/ acción. El rol integrado de Administrador de Bases de Datos Híbridas de Azure - Solo Lectura incluye esta acción. Para obtener más información, consulte Roles integrados de Azure.
  • Actualmente, no se admiten instancias de clúster de conmutación por error.

Cómo habilitar la monitorización del rendimiento para SQL Server habilitada por Azure Arc

Los siguientes comandos permiten la recopilación de datos de rendimiento. Los comandos pueden ejecutarse correctamente, pero el sistema recopila datos de rendimiento solo cuando la instancia cumple todos los requisitos previos de esta sección.

Para activar o desactivar la recogida en el portal de Azure:

  1. En la página de recursos de SQL Server habilitado por Azure Arc, seleccione Panel de rendimiento (versión preliminar).
  2. En la parte superior del Panel de rendimiento, seleccione Configurar.
  3. En el panel de Configurar ajustes de monitorización , usa el interruptor para activar la recogida de datos de monitorización.
  4. Seleccione Aplicar configuración.

Para habilitar la recolección usando la CLI de Azure, ejecuta el siguiente comando. Reemplace los marcadores de posición del identificador de suscripción, el grupo de recursos y el nombre del recurso.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=true' --api-version 2023-09-01-preview

Cómo desactivar la monitorización del rendimiento en SQL Server habilitada por Azure Arc

Para activar o desactivar la recogida en el portal de Azure:

  1. En la página de recursos de SQL Server habilitado por Azure Arc, seleccione Panel de rendimiento (versión preliminar).
  2. En la parte superior del Panel de rendimiento, seleccione Configurar.
  3. En el panel de Configurar configuración de monitorización , usa el interruptor para desactivar la recogida de datos de monitorización.
  4. Seleccione Aplicar configuración.

Para desactivar la recopilación usando la CLI de Azure, ejecuta el siguiente comando. Reemplace los marcadores de posición del identificador de suscripción, el grupo de recursos y el nombre del recurso.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=false' --api-version 2023-09-01-preview

Paso siguiente