Compartir a través de


Habilitación de SQL Insights (versión preliminar)

Se aplica a:Azure SQL DatabaseAzure SQL Managed Instance

En este artículo se describe cómo habilitar SQL Insights (versión preliminar) para supervisar las implementaciones de SQL. La supervisión se realiza desde una máquina virtual de Azure que establece una conexión con las implementaciones de SQL y usa vistas de administración dinámica para recopilar datos de supervisión. Puede controlar qué conjuntos de datos se recopilan y la frecuencia de recopilación mediante un perfil de supervisión.

Nota

Para habilitar SQL Insights (versión preliminar) mediante la creación del perfil de supervisión y la máquina virtual mediante una plantilla de Resource Manager, consulte Ejemplos de plantilla de Resource Manager para SQL Insights (versión preliminar).

Para aprender a habilitar SQL Insights (versión preliminar), también puede consultar este episodio de Data Exposed.

Creación de un área de trabajo de Log Analytics

SQL Insights almacena sus datos en una o varias áreas de trabajo de Log Analytics. Antes de poder habilitar SQL Insights, debe crear un área de trabajo o seleccionar una existente. Se puede usar una sola área de trabajo con varios perfiles de supervisión, pero el área de trabajo y los perfiles deben estar ubicados en la misma región de Azure. Para habilitar las características de SQL Insights y acceder a ellas, debe tener el rol de Colaborador de Log Analytics en el área de trabajo.

Creación de un usuario de supervisión

Necesita un usuario (inicio de sesión) en las implementaciones de SQL que desea supervisar. Siga los procedimientos que se indican a continuación para los diferentes tipos de implementaciones de SQL.

Las instrucciones siguientes cubren el proceso por tipo de implementación de SQL que puede supervisar. Para lograr esto con un script en varios recursos de SQL a la vez, consulte el archivo LÉAME y el script de ejemplo siguientes.

Nota:

SQL Insights (versión preliminar) no admite los siguientes escenarios de Azure SQL Database:

  • Grupos elásticos: no se pueden recopilar métricas para grupos elásticos. Asimismo, no se pueden recopilar métricas para bases de datos de grupos elásticos.
  • Niveles de servicio bajos: no se pueden recopilar métricas para bases de datos en los niveles de servicio Básico, S0 y S1

SQL Insights (versión preliminar) tiene compatibilidad limitada con los siguientes escenarios de Azure SQL Database:

  • Nivel sin servidor: se pueden recopilar métricas para base de datos que usan el nivel de proceso sin servidor. Sin embargo, el proceso de recopilación de métricas restablecerá el temporizador de retraso de pausa automática, lo que impide que la base de datos entre en un estado de pausa automática.

Conéctese a una base de datos de Azure SQL con SQL Server Management Studio, Editor de Power Query (versión preliminar) en Azure Portal o cualquier otra herramienta cliente SQL.

Ejecute el siguiente script para crear un usuario con los permisos necesarios. Reemplace user por un nombre de usuario y mystrongpassword por una contraseña segura.

CREATE USER [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW DATABASE STATE TO [user]; 
GO 

Captura de pantalla del editor de consultas con un script de creación de usuario de telegraf.

Compruebe que se ha creado el usuario.

Captura de pantalla de la ventana de consulta del editor de consultas verificando el script de usuario de telegraf.

select name as username,
       create_date,
       modify_date,
       type_desc as type,
       authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
       and sid is not null
order by username

Creación de una máquina virtual de Azure

Tendrá que crear una o varias máquinas virtuales de Azure que se usarán para recopilar datos para supervisar SQL.

Nota

Los perfiles de supervisión especifican qué datos se van a recopilar de los diferentes tipos de SQL que desea supervisar. Cada máquina virtual de supervisión solo puede tener un perfil de supervisión asociado. Si necesita varios perfiles de supervisión, debe crear una máquina virtual para cada uno.

Requisitos para las máquinas virtuales de Azure

La máquina virtual de Azure tiene los siguientes requisitos:

  • Sistema operativo: Ubuntu 18.04 con la imagen de Azure Marketplace. No se admiten las imágenes personalizadas. A fin de obtener el mantenimiento de seguridad extendido (ESM) para esta versión de Ubuntu, se recomienda usar la imagen de marketplace Ubuntu Pro 18.04 LTS. Para más información, vea Soporte técnico para Linux y la tecnología de código abierto en Azure.
  • Tamaños recomendados de máquina virtual de Azure: Standard_B2s (2 CPU, 4 GiB de memoria)
  • Se implementa en cualquier región de Azure compatible con el agente de Azure Monitor y cumple todos los requisitos previos del agente de Azure Monitor.

Nota

El tamaño de máquina virtual Standard_B2s (2 CPU, 4 GiB) admitirá hasta 100 cadenas de conexión. No debe asignar más de 100 conexiones a una sola máquina virtual.

Según la configuración de red de los recursos de SQL, es posible que las máquinas virtuales deban colocarse en la misma red virtual que los recursos de SQL. De este modo, podrán establecer conexiones de red para recopilar datos de supervisión.

Configuración de la red

Cada tipo de SQL ofrece métodos para que la máquina virtual de supervisión tenga acceso de forma segura a SQL. En las secciones siguientes se tratan las opciones basadas en el tipo de implementación de SQL.

SQL Insights admite el acceso a su instancia de Azure SQL Database a través de su punto de conexión público, así como de su red virtual.

Para el acceso a través del punto de conexión público, debe agregar una regla en la página Configuración de firewall y en la sección de configuración del firewall de IP en el Azure Portal. Para especificar el acceso desde una red virtual, puede establecer reglas de firewall de red virtual y establecer las etiquetas de servicio que necesita el agente de Azure Monitor.

Captura de pantalla de una página de Azure SQL Database en el portal de Azure. El botón Establecer el firewall del servidor está resaltado.

Captura de pantalla de una página de configuración del Firewall de Azure SQL Database en el Azure Portal. Configuración del Firewall.

Almacenamiento de la contraseña de supervisión en Azure Key Vault

Como procedimiento recomendado de seguridad, se aconseja almacenar las contraseñas de usuario (inicio de sesión) de SQL en una instancia de Key Vault, en lugar de escribirlas directamente en las cadenas de conexión del perfil de supervisión.

Cuando configure el perfil para la supervisión de SQL, necesitará uno de los siguientes permisos en el recurso de Key Vault que va a usar:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.Authorization/roleAssignments/delete

Si tiene estos permisos, se creará automáticamente una nueva directiva de acceso de Key Vault como parte de la creación del perfil de SQL Monitoring que usa el almacén de claves especificado.

Importante

Debe asegurarse de que la configuración de red y seguridad permite que la máquina virtual de supervisión acceda a Key Vault. Para más información, consulte Acceso de Azure Key Vault desde detrás de un firewall y Configuración de las redes de Azure Key Vault.

Creación de un perfil de SQL Monitoring

Para abrir SQL Insights (versión preliminar), seleccione SQL (preview) [SQL (versión preliminar)], en la sección Insights del menú de Azure Monitor en Azure Portal. Seleccione Crear nuevo perfil.

Captura de pantalla de la página de Azure Monitor en el Azure Portal. El botón para crear un nuevo perfil está resaltado.

El perfil almacenará la información que desea recopilar de los sistemas SQL. Tiene una configuración específica para:

  • Azure SQL Database
  • Instancia administrada de Azure SQL
  • SQL Server en máquinas virtuales de Azure

Por ejemplo, puede crear un perfil denominado SQL Production y otro llamado SQL Staging con diferentes configuraciones para la frecuencia de recopilación de datos, los datos que se van a recopilar y el área de trabajo a la que se van a enviar los datos.

El perfil se almacena como un recurso de la regla de recopilación de datos en la suscripción y el grupo de recursos que seleccione. Cada perfil necesita lo siguiente:

  • Name (Nombre). No se puede editar una vez creado.
  • Ubicación. Es una región de Azure.
  • Área de trabajo de Log Analytics en la que se van a almacenar los datos de supervisión.
  • Opciones de recopilación relacionadas con la frecuencia y el tipo de datos de SQL Monitoring que se van a recopilar.

Nota

La ubicación del perfil debe ser la misma ubicación que la del área de trabajo de Log Analytics a la que se van a enviar los datos de supervisión.

Captura de pantalla de la página de detalles de Crear nuevo perfil en el Azure Portal.

Seleccione Crear perfil de supervisión una vez que haya especificado los detalles del perfil de supervisión. Puede que el perfil tarde hasta un minuto en implementarse. Si no ve el nuevo perfil que aparece en el cuadro combinado Perfil de supervisión, seleccione el botón actualizar y debería aparecer una vez completada la implementación. Una vez que haya seleccionado el nuevo perfil, seleccione la pestaña Administrar perfil para agregar una máquina de supervisión que se asociará con el perfil.

Incorporación de máquina de supervisión

Seleccione Agregar máquina de supervisión para abrir un panel contextual Add monitoring virtual machine y elegir la máquina virtual desde la que supervisar las instancias de SQL y proporcionar las cadenas de conexión.

Seleccione la suscripción y el nombre de la máquina virtual de supervisión. Si usa Key Vault para almacenar contraseñas para los inicios de sesión de supervisión (se recomienda encarecidamente), seleccione la suscripción de ese almacén de claves en Key vault subscriptions y, después, seleccione el almacén de claves que almacena los secretos en KeyVault. En el campo Connection strings, escriba el URI del almacén y el nombre del secreto para cada contraseña que se usará en los cadena de conexión.

Por ejemplo, si el URI de Key Vault es https://mykeyvault.vault.azure.net/ y los nombres de secreto son sqlPassword1 y sqlPassword2, el código JSON del campo Connection strings contendrá lo siguiente:

{
   "secrets": {
      "telegrafPassword1": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword1"
      },
      "telegrafPassword2": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword2"
      }
   }
}

Ahora puede hacer referencia a estos secretos más adelante en el campo Connection strings. En el ejemplo siguiente, los dos cadenas de conexión hacen referencia a los secretos telegrafPassword1 y telegrafPassword2 definidos anteriormente:

{
   "sqlAzureConnections": [
      "Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword1;"
   ],
   "sqlVmConnections": [
      "Server=mysqlserver1;Port=1433;Database=master;User Id=telegraf;Password=$telegrafPassword2;"
   ]
}

Captura de pantalla de la página del Azure Portal Añadir máquina virtual de supervisión. Elija la máquina virtual, especifique la url de la KV (si se utiliza) y el nombre secreto. Introduzca las cadenas de conexión para cada sistema a supervisar. Elija el KV donde creó el secreto utilizado en las cadenas de conexión.

Consulte la sección siguiente para más información sobre cómo identificar la cadena de conexión para las diferentes implementaciones de SQL.

Incorporación de cadenas de conexión

La cadena de conexión especifica el nombre de inicio de sesión que SQL Insights (versión preliminar) debe usar al iniciar sesión en SQL para recopilar datos de supervisión. Si utiliza una instancia de Key Vault para almacenar la contraseña del usuario de supervisión, proporcione el URI de Key Vault y el nombre del secreto que se va a usar.

Las cadenas de conexión varían según el tipo de recurso de SQL:

Los firewalls o grupos de seguridad de red (NSG) que puedan existir en la ruta de acceso de red deben permitir las conexiones TCP desde la máquina de supervisión a la dirección IP y el puerto usados por la base de datos. Para obtener más información sobre las direcciones IP y los puertos, consulte Arquitectura de conectividad de Azure SQL Database.

Especifique la cadena de conexión de esta forma:

"sqlAzureConnections": [
   "Server=mysqlserver1.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;",
   "Server=mysqlserver2.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;"
]

Obtenga los detalles de la página Cadenas de conexión y el punto de conexión ADO.NET adecuado para la base de datos.

Para supervisar una réplica secundaria legible, anexe ;ApplicationIntent=ReadOnly a la cadena de conexión. SQL Insights admite la supervisión de una única réplica secundaria. Los datos recopilados se etiquetarán para reflejar la réplica principal o secundaria.