Compartir a través de


Supervisión de Azure SQL Database mediante Azure SQL Analytics (versión preliminar)

SE APLICA A: Azure SQL Database, Instancia administrada de Azure SQL

Precaución

Azure SQL Analytics (versión preliminar) es una integración con Azure Monitor, donde muchas soluciones de supervisión han dejado de desarrollarse de forma activa. Para más opciones de supervisión, consulte Supervisión y ajuste del rendimiento en Azure SQL Database e Instancia administrada de Azure SQL.

Azure SQL Analytics (versión preliminar) es una solución avanzada de supervisión en la nube para supervisar el rendimiento de todas las bases de datos de Azure SQL a escala y entre varias suscripciones en una sola vista. Azure SQL Analytics recopila y visualiza métricas clave del rendimiento con inteligencia integrada para solucionar problemas de rendimiento.

Con estas métricas recopiladas, puede crear alertas y reglas de supervisión personalizadas. Azure SQL Analytics le ayuda a identificar problemas en cada capa de la pila de aplicaciones. Azure SQL Analytics usa métricas de Diagnóstico de Azure junto con vistas de Azure Monitor para presentar datos sobre todas las bases de datos de Azure SQL en un único área de trabajo de Log Analytics. Azure Monitor le ayuda a recopilar, correlacionar y visualizar datos estructurados y no estructurados.

Orígenes conectados

Azure SQL Analytics es una solución de supervisión solo en la nube que admite el streaming de telemetría de diagnóstico para todas las bases de datos de Azure SQL. Dado que Azure SQL Analytics no usa agentes para conectarse a Azure Monitor, no admite la supervisión de SQL Server hospedado localmente o en máquinas virtuales.

Fuente conectada Compatible Descripción
Configuración de diagnóstico Azure envía los datos de métricas y de registro de Azure directamente a los registros de Azure Monitor.
Cuenta de Almacenamiento de Azure No Azure Monitor no lee los datos de una cuenta de almacenamiento.
agentes de Windows No Azure SQL Analytics no usa agentes directos de Windows.
agentes de Linux No Azure SQL Analytics no usa agentes de Linux directos.
Grupo de administración de System Center Operations Manager No Azure SQL Analytics no usa una conexión directa del agente de Operations Manager a Azure Monitor.

Opciones de Azure SQL Analytics

En la tabla siguiente se describen las opciones admitidas para dos versiones del panel de Azure SQL Analytics, una para Azure SQL Database y la otra para las bases de datos de Azure SQL Managed Instance.

Opción de Azure SQL Analytics Descripción Compatibilidad con SQL Database Soporte para Instancia Administrada de SQL
Recurso por tipo Perspectiva que cuenta todos los recursos supervisados.
Perspectivas Proporciona un análisis jerárquico detallado de Información Inteligente sobre el rendimiento.
Errores Proporciona una exploración en profundidad jerárquica de los errores de SQL que se produjeron en las bases de datos.
Timeouts Proporciona una exploración en profundidad jerárquica de los tiempos de espera de SQL que se produjeron en las bases de datos. No
Bloqueos Proporciona una exploración en profundidad jerárquica de los bloqueos de SQL que se produjeron en las bases de datos. No
Esperas en la base de datos Proporciona una exploración en profundidad jerárquica de las estadísticas de espera de SQL en el nivel de base de datos. Incluye resúmenes del tiempo de espera total y el tiempo de espera por tipo de espera. No
Duración de consulta Proporciona un análisis detallado jerárquico de las estadísticas de ejecución de consultas, como la duración de la consulta, el uso de CPU, el uso de E/S de datos y el uso de E/S de registros.
Esperas de consulta Proporciona una exploración en profundidad jerárquica de las estadísticas de espera de consulta por categoría de espera.

Configuración de Azure SQL Analytics (versión preliminar)

Use el proceso descrito en Incorporación de soluciones de Azure Monitor desde la Galería de soluciones para agregar Azure SQL Analytics (versión preliminar) al área de trabajo de Log Analytics.

Configuración de Azure SQL Database para transmitir datos de telemetría de diagnóstico

Una vez que haya creado una solución de Azure SQL Analytics en el área de trabajo, debe configurar cada recurso que quiera supervisar para transmitir sus datos de telemetría de diagnóstico a Azure SQL Analytics. Siga las instrucciones detalladas de esta página:

En la página anterior también se proporcionan instrucciones sobre cómo habilitar la compatibilidad con la supervisión de varias suscripciones de Azure desde un único área de trabajo de Azure SQL Analytics como un único panel de vidrio.

Uso de Azure SQL Analytics (versión preliminar)

Vaya a la implementación de SQL Analytics desde la página Soluciones heredadas del área de trabajo de Log Analytics.

Azure SQL Analytics proporciona dos vistas independientes: una para supervisar SQL Database y la otra vista para supervisar SQL Managed Instance.

Visualización de datos de Azure SQL Analytics

El panel incluye la información general de todas las bases de datos que se supervisan a través de distintas perspectivas. Para que las distintas perspectivas funcionen, debe habilitar las métricas o registros adecuados en los recursos de SQL para que se transmitan al área de trabajo de Log Analytics.

Si algunas métricas o registros no se transmiten a Azure Monitor, los iconos de Azure SQL Analytics no se rellenan con información de supervisión.

Vista de Base de Datos SQL

Una vez seleccionado el icono de Azure SQL Analytics para la base de datos, se muestra el panel de supervisión.

Captura de pantalla que muestra el panel de supervisión.

Al seleccionar cualquiera de los iconos, se abre un informe detallado en la perspectiva específica. Una vez seleccionada la perspectiva, se abre el informe de exploración en profundidad.

Captura de pantalla que muestra el informe de exploración en profundidad en la perspectiva específica.

Cada perspectiva de esta vista proporciona resúmenes en los niveles de suscripción, servidor, grupo elástico y base de datos. Además, cada perspectiva muestra un enfoque específico del informe situado a la derecha. La selección de la suscripción, el servidor, el grupo o la base de datos de la lista continúa la exploración en profundidad.

Vista de instancia administrada de SQL

Una vez seleccionado el icono de Azure SQL Analytics para las bases de datos, se muestra el panel de supervisión.

Introducción a Azure SQL Analytics

Al seleccionar cualquiera de los iconos, se abre un informe detallado en la perspectiva específica. Una vez seleccionada la perspectiva, se abre el informe de exploración en profundidad.

Al seleccionar la vista Instancia administrada de SQL, se muestran detalles sobre el uso de la instancia, las bases de datos de instancia y la telemetría en las consultas ejecutadas en la instancia administrada.

Tiempos de espera de Azure SQL Analytics

Informe de Intelligent Insights

Intelligent Insights de Azure SQL Database le permite saber lo que sucede con el rendimiento de todas las bases de datos de Azure SQL. Todos los datos recopilados de Intelligent Insights se pueden visualizar y acceder a ellos a través de la perspectiva de Insights.

Información de Azure SQL Analytics

Grupos elásticos e informes de bases de datos

Tanto los grupos elásticos como las bases de datos tienen sus propios informes específicos que muestran todos los datos recopilados para el recurso en el tiempo especificado.

Base de datos de Azure SQL Analytics

Grupo elástico de Azure SQL

Informes de consulta

A través de la duración y las perspectivas de espera de las consultas, puede correlacionar el rendimiento de cualquier consulta mediante el informe de consulta. Este informe compara el rendimiento de las consultas en distintas bases de datos y facilita la identificación de las bases de datos que realizan bien la consulta seleccionada frente a las que son lentas.

Consultas de Azure SQL Analytics

Permisos

Para usar Azure SQL Analytics (versión preliminar), se debe conceder a los usuarios un permiso mínimo del rol Lector en Azure. Sin embargo, este rol no permite a los usuarios ver el texto de la consulta ni realizar ninguna acción de ajuste automático. Más roles permisivos en Azure que permiten usar Azure SQL Analytics en la medida máxima son Propietario, Colaborador, Colaborador de BASE de datos SQL o Colaborador de SQL Server. También puede considerar la posibilidad de crear un rol personalizado en el portal con permisos específicos necesarios solo para usar Azure SQL Analytics y sin acceso para administrar otros recursos.

Creación de un rol personalizado en el portal

Nota:

Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Reconociendo que algunas organizaciones aplican controles estrictos de permisos en Azure, busque el siguiente script de PowerShell que permite la creación de un rol personalizado "Operador de supervisión de SQL Analytics" en Azure Portal con los permisos mínimos de lectura y escritura necesarios para usar Azure SQL Analytics en su mayor medida.

Reemplace "{SubscriptionId}" en el siguiente script por el identificador de tu suscripción de Azure y ejecútalo habiendo iniciado sesión con el rol de propietario o colaborador en Azure.

 Connect-AzAccount
 Select-AzSubscription {SubscriptionId}
 $role = Get-AzRoleDefinition -Name Reader
 $role.Name = "SQL Analytics Monitoring Operator"
 $role.Description = "Lets you monitor database performance with Azure SQL Analytics as a reader. Does not allow change of resources."
 $role.IsCustom = $true
 $role.Actions.Add("Microsoft.SQL/servers/databases/read");
 $role.Actions.Add("Microsoft.SQL/servers/databases/topQueries/queryText/*");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/write");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/write");
 $role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/write");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/read");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/write");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/read");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/write");
 $role.Actions.Add("Microsoft.Resources/deployments/write");
 $role.AssignableScopes = "/subscriptions/{SubscriptionId}"
 New-AzRoleDefinition $role

Una vez creado el nuevo rol, asigne este rol a cada usuario que necesite conceder permisos personalizados para usar Azure SQL Analytics.

Análisis de datos y creación de alertas

El análisis de datos en Azure SQL Analytics se basa en el lenguaje log Analytics para las consultas e informes personalizados. Busque la descripción de los datos disponibles recopilados del recurso de base de datos para realizar consultas personalizadas en métricas y registros disponibles.

Las alertas automatizadas en Azure SQL Analytics se basan en la escritura de una consulta de Log Analytics que desencadena una alerta cuando se cumple una condición. A continuación encontrará varios ejemplos de consultas de Log Analytics en las que se pueden configurar alertas en Azure SQL Analytics.

Creación de alertas para Azure SQL Database

Puede crear fácilmente alertas con los datos procedentes de recursos de Azure SQL Database. Estas son algunas consultas de registro útiles que puede usar con una alerta de registro:

Uso de CPU elevado

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

Nota:

  • El requisito previo para configurar esta alerta es que las bases de datos supervisadas transmiten métricas básicas al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Reemplace el valor cpu_percent de MetricName por dtu_consumption_percent para obtener resultados altos de DTU en su lugar.

Alto uso de CPU en grupos elásticos

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

Nota:

  • El requisito previo de configurar esta alerta es que las bases de datos supervisadas transmiten métricas básicas al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Reemplace el valor cpu_percent de MetricName por dtu_consumption_percent para obtener resultados altos de DTU en su lugar.

Almacenamiento en promedio por encima de 95% en los últimos 1 h

let time_range = 1h;
let storage_threshold = 95;
AzureMetrics
| where ResourceId contains "/DATABASES/"
| where MetricName == "storage_percent"
| summarize max_storage = max(Average) by ResourceId, bin(TimeGenerated, time_range)
| where max_storage > storage_threshold
| distinct ResourceId

Nota:

  • El requisito previo para configurar esta alerta es que las bases de datos supervisadas transmiten métricas básicas al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Esta consulta requiere que se configure una regla de alerta para activar una alerta cuando existen resultados (> 0 resultados) de la consulta, lo que indica que la condición existe en algunas bases de datos. La salida es una lista de recursos de base de datos que están por encima del storage_threshold dentro del time_range especificado.
  • La salida es una lista de recursos de base de datos que están por encima del storage_threshold dentro del time_range especificado.

Alerta sobre Intelligent Insights

Importante

En caso de que una base de datos funcione bien y que no se haya generado Intelligent Insights, esta consulta producirá un error con un mensaje de error: No se pudo resolver la expresión escalar denominada rootCauseAnalysis_s. Este comportamiento se espera para todos los casos en los que no exista información inteligente para la base de datos.

let alert_run_interval = 1h;
let insights_string = "hitting its CPU limits";
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| where TimeGenerated > ago(alert_run_interval)
| where rootCauseAnalysis_s contains insights_string
| distinct ResourceId

Nota:

  • El requisito previo para configurar esta alerta es que las bases de datos supervisadas transmiten el registro de diagnóstico de SQLInsights al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Esta consulta requiere que se configure una regla de alerta para ejecutarse con la misma frecuencia que alert_run_interval para evitar resultados duplicados. La regla debe configurarse para activar la alerta cuando existan resultados (> 0 resultados) de la consulta.
  • Personalice alert_run_interval para especificar el intervalo de tiempo para comprobar si la condición se ha producido en las bases de datos configuradas para transmitir el registro de SQLInsights a Azure SQL Analytics.
  • Personalice el insights_string para capturar la salida del texto del análisis de causa raíz de Insights. Este es el mismo texto que se muestra en la interfaz de usuario de Azure SQL Analytics que puede usar a partir de los conocimientos existentes. Como alternativa, puede usar la consulta siguiente para ver el texto de todas las conclusiones generadas en la suscripción. Utiliza la salida de la consulta para recopilar las cadenas distintas para configurar las alertas en Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

Creación de alertas para SQL Managed Instance

El almacenamiento está por encima de 90%

let storage_percentage_threshold = 90;
AzureDiagnostics
| where Category =="ResourceUsageStats"
| summarize (TimeGenerated, calculated_storage_percentage) = arg_max(TimeGenerated, todouble(storage_space_used_mb_s) *100 / todouble (reserved_storage_mb_s))
   by ResourceId
| where calculated_storage_percentage > storage_percentage_threshold

Nota:

  • El requisito previo de configurar esta alerta es que la instancia administrada supervisada tiene habilitada la transmisión del registro ResourceUsageStats al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Esta consulta requiere que se configure una regla de alerta para activar una alerta cuando exista un resultado (> 0 resultados) de la consulta, lo que indica que la condición existe en la instancia administrada. La salida es el porcentaje de consumo de almacenamiento en la instancia administrada.

El consumo promedio de CPU es superior a 95% en los últimos 1 h

let cpu_percentage_threshold = 95;
let time_threshold = ago(1h);
AzureDiagnostics
| where Category == "ResourceUsageStats" and TimeGenerated > time_threshold
| summarize avg_cpu = max(todouble(avg_cpu_percent_s)) by ResourceId
| where avg_cpu > cpu_percentage_threshold

Nota:

  • El requisito previo de configurar esta alerta es que la instancia administrada supervisada tiene habilitada la transmisión del registro ResourceUsageStats al área de trabajo de Log Analytics que usa Azure SQL Analytics.
  • Esta consulta requiere que se configure una regla de alerta para activar una alerta cuando exista un resultado (> 0 resultados) de la consulta, lo que indica que la condición existe en la instancia administrada. La salida es el consumo medio del porcentaje de uso de CPU en el período definido en la instancia administrada.

Precios

Aunque Azure SQL Analytics (versión preliminar) es gratuito de usar, se aplica el consumo de telemetría de diagnóstico por encima de las unidades gratuitas de ingesta de datos asignadas cada mes, consulte Precios de Log Analytics. Las unidades gratuitas de ingesta de datos proporcionadas permiten la supervisión gratuita de varias bases de datos cada mes. Las bases de datos más activas con cargas de trabajo más pesadas ingieren más datos frente a las bases de datos inactivas. Para supervisar fácilmente el consumo de ingesta de datos en Azure SQL Analytics, seleccione Área de trabajo de OMS en el menú de navegación de Azure SQL Analytics y, a continuación, seleccione Uso y costos estimados.

Pasos siguientes