Share via


Activer SQL Insights (préversion)

S’applique à : Azure SQL DatabaseAzure SQL Managed Instance

Cet article explique comment activer SQL Insights (préversion) pour analyser vos déploiements SQL. L’analyse est effectuée à partir d’une machine virtuelle Azure qui établit une connexion à vos déploiements SQL et utilise des vues de gestion dynamique (DMV) pour collecter les données d’analyse. Vous pouvez contrôler les jeux de données qui sont collectés et la fréquence de collecte à l’aide d’un profil d’analyse.

Notes

Pour activer SQL Insights (préversion) en créant le profil de surveillance et la machine virtuelle à l’aide d’un modèle Resource Manager, consultez Exemples de modèles Resource Manager pour SQL Insights (préversion).

Pour en savoir plus sur l’activation de SQL Insights (préversion), vous pouvez également vous référer à cet épisode de Data Exposed.

Créer un espace de travail Log Analytics

SQL Insights stocke ses données dans un ou plusieurs espaces de travail Log Analytics. Avant de pouvoir activer SQL Insights, vous devez créer un espace de travail ou en sélectionner un existant. Un seul espace de travail peut être utilisé avec plusieurs profils d’analyse, mais l’espace de travail et les profils doivent se trouver dans la même région Azure. Pour activer les fonctionnalités et y accéder dans SQL Insights, vous devez avoir le rôle de contributeur Log Analytics dans l’espace de travail.

Créer des règles d’analyse

Vous avez besoin d’un utilisateur (ID de connexion) sur les déploiements SQL que vous souhaitez surveiller. Suivez les procédures ci-dessous pour les différents types de déploiements SQL.

Les instructions ci-dessous décrivent le processus par type de SQL que vous pouvez surveiller. Pour effectuer cette opération avec un script sur plusieurs ressources SQL à la fois, reportez-vous au fichier LISEZMOI et à l’exemple de script suivants.

Azure SQL Database

Notes

SQL Insights (préversion) ne prend pas en charge les scénarios Azure SQL Database suivants :

  • Pools élastiques : Les métriques ne peuvent pas être collectées pour les pools élastiques. Les métriques ne peuvent pas être collectées pour les bases de données dans des pools élastiques.
  • Niveaux de service bas : Les métriques ne peuvent pas être collectées pour les bases de données sur les objectifs de service De base, S0 et S1

SQL Insights (préversion) offre une prise en charge limitée des scénarios Azure SQL Database suivants :

  • Niveau serverless : Les métriques peuvent être collectées pour les bases de données à l’aide du niveau de calcul serverless. Toutefois, le processus de collecte des métriques réinitialise le minuteur de délai de pause automatique, ce qui empêche la base de données d’entrer dans un état de pause automatique.

Connectez-vous à une base de données Azure SQL avec SQL Server Management Studio ou l’Éditeur de requête (préversion) dans le portail Azure ou tout autre outil client SQL.

Exécutez le script suivant pour créer un utilisateur avec les autorisations requises. Remplacez utilisateur par un nom d’utilisateur et mystrongpassword par un mot de passe fort.

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

Capture d’écran de l’éditeur de requête avec un script utilisateur de création Telegraf.

Vérifiez que l’utilisateur a été créé.

Capture d’écran de l’éditeur de requête - Fenêtre de requête vérifiant le script utilisateur 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

Azure SQL Managed Instance

Connectez-vous à votre Azure SQL Managed Instance en utilisant SQL Server Management Studio ou un outil similaire, puis exécutez le script suivant afin de créer l’utilisateur surveillant avec les autorisations nécessaires. Remplacez utilisateur par un nom d’utilisateur et mystrongpassword par un mot de passe fort.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO 

SQL Server

Connectez-vous à SQL Server sur votre machine virtuelle Azure, et utilisez SQL Server Management Studio ou un outil similaire pour exécuter le script suivant afin de créer l’utilisateur surveillant avec les autorisations nécessaires. Remplacez utilisateur par un nom d’utilisateur et mystrongpassword par un mot de passe fort.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO

Vérifiez que l’utilisateur a été créé.

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

Créer une machine virtuelle Azure

Vous devrez créer une ou plusieurs machines virtuelles Azure qui seront utilisées pour collecter des données afin d’analyser SQL.

Notes

Les profils d’analyse spécifient les données que vous recueillerez parmi les différents types de SQL que vous souhaitez analyser. Chaque ordinateur virtuel d’analyse ne peut être associé qu’à un seul profil d’analyse. Si vous avez besoin de plusieurs profils d’analyse, vous devez créer une machine virtuelle pour chacun d’entre eux.

Configuration requise des machines virtuelles Azure

La configuration requise pour la machine virtuelle Azure est la suivante :

  • Système d’exploitation : Ubuntu 18.04 à l’aide d’une image de la Place de marché Azure. Les images personnalisées ne sont pas prises en charge. Pour obtenir la maintenance de sécurité étendue (ESM) pour cette version d’Ubuntu, nous vous recommandons d’utiliser l’image du marketplace Ubuntu Pro 18.04 LTS. Consultez Prise en charge de la technologie Linux et open source dans Azure pour plus d’informations.
  • Tailles de machines virtuelles Azure minimales recommandées : Standard_B2s (2 processeurs, 4 Gio de mémoire)
  • Déployé dans une région Azure prise en charge par l’agent Azure Monitor et répondant à tous les prérequis d’agent Azure Monitor.

Notes

La taille de machine virtuelle Standard_B2s (2 processeurs, 4 Gio de mémoire) prend en charge jusqu’à 100 chaînes de connexion. Vous ne devez pas allouer plus de 100 connexions à une seule machine virtuelle.

En fonction des paramètres réseau de vos ressources SQL, les machines virtuelles devront peut-être être placées dans le même réseau virtuel que vos ressources SQL afin qu’elles puissent établir des connexions réseau pour collecter les données d’analyse.

Configurer les paramètres réseau

Chaque type de SQL offre des méthodes pour que votre machine virtuelle d’analyse accède en toute sécurité à SQL. Les sections ci-dessous couvrent les options basées sur le type de déploiement SQL.

Azure SQL Database

SQL Insights prend en charge l’accès à votre Azure SQL Database via son point de terminaison public, ainsi qu’à partir de son réseau virtuel.

Pour accéder via le point de terminaison public, vous devez ajouter une règle dans la page Paramètres de pare-feu et dans la section Paramètres du pare-feu IP du portail Azure. Pour spécifier l’accès à partir d’un réseau virtuel, vous pouvez définir des règles de pare-feu de réseau virtuel et définir les balises de service requises par l’agent de Azure Monitor.

Capture d’écran d’une page Azure SQL Database dans le portail Azure. Le bouton Définir le pare-feu du serveur est mis en évidence.

Capture d’écran d’une page de paramètres du Pare-feu Azure SQL Database dans le portail Azure. Paramètres de pare-feu.

Azure SQL Managed Instance

Si votre machine virtuelle d’analyse se trouve dans le même réseau virtuel que vos ressources SQL MI, consultez Se connecter à l’intérieur du même réseau virtuel. Si votre machine virtuelle d’analyse se trouve dans le réseau virtuel différent de vos ressources SQL MI, consultez Se connecter à l’intérieur d’un autre réseau virtuel.

SQL Server

Si votre machine virtuelle d’analyse se trouve dans le même réseau virtuel que les ressources de votre machine virtuelle SQL, consultez Se connecter à SQL Server au sein d’un réseau virtuel. Si votre machine virtuelle d’analyse se trouve dans le même réseau virtuel que les ressources de votre machine virtuelle SQL, consultez Se connecter à SQL Server via Internet.

Stocker le mot de passe de surveillance dans Azure Key Vault

En guise de meilleure pratique de sécurité, nous vous recommandons vivement de stocker vos mots de passe d’utilisateur (ID de connexion) SQL dans un coffre de clés, au lieu de les entrer directement dans vos chaînes de connexion de profil surveillant.

Lorsque vous configurez votre profil pour l’analyse SQL, vous devez disposer de l’une des autorisations suivantes sur la ressource Key Vault que vous souhaitez utiliser :

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

Si vous disposez de ces autorisations, une nouvelle stratégie d’accès au coffre de clés sera automatiquement créée dans le cadre de la création de votre profil SQL Monitoring qui utilise le coffre de clés que vous avez spécifié.

Important

Vous devez vous assurer que la configuration du réseau et de la sécurité permet à la machine virtuelle de surveillante d’accéder au coffre de clés. Pour plus d’informations, consultez Accès à Azure Key Vault derrière un pare-feu et Configurer les paramètres de mise en réseau Azure Key Vault.

Créer un profil d’analyse SQL

Ouvrez SQL Insights (préversion) en sélectionnant SQL (préversion) dans la section Insight du menu Azure Monitor du portail Azure. Cliquez sur Créer un profil.

Capture d’écran de la page Azure Monitor sur le portail Azure. Le bouton Créer un profil est en évidence.

Le profil stocke les informations que vous souhaitez collecter à partir de vos systèmes SQL. Il dispose de paramètres spécifiques pour :

  • Azure SQL Database
  • Azure SQL Managed Instance
  • Exécution de SQL Server sur des machines virtuelles

Par exemple, vous pouvez créer un profil nommé Production SQL et un autre nommé Mise en lots SQL avec des paramètres différents pour la fréquence de collecte des données, les données à collecter et l’espace de travail auquel les données doivent être envoyées.

Le profil est stocké en tant que ressource de règle de collecte de données dans l’abonnement et le groupe de ressources que vous sélectionnez. Chaque profil a besoin des éléments suivants :

  • Nom. Ne peut pas être modifié une fois créé.
  • Lieu. Il s’agit d’une région Azure.
  • Espace de travail Log Analytics pour stocker les données d’analyse.
  • Paramètres de collecte pour la fréquence et le type de données d’analyse SQL à collecter.

Notes

L’emplacement du profil doit se trouver au même emplacement que l’espace de travail Log Analytics auquel vous envisagez d’envoyer les données d’analyse.

Capture d’écran de la page des détails de Créer un profil sur le portail Azure.

Cliquez sur Créer un profil de surveillance après avoir entré les détails de votre profil de surveillance. Le déploiement du fichier peut prendre jusqu’à une minute. Si vous ne voyez pas le nouveau profil répertorié dans la zone de liste modifiable Profil d’analyse, sélectionnez le bouton Actualiser. il doit apparaître une fois le déploiement terminé. Une fois que vous avez sélectionné le nouveau profil, sélectionnez l’onglet Gérer le profil pour ajouter une machine d’analyse qui sera associée au profil.

Ajouter une machine d’analyse

Sélectionnez Ajouter une machine d’analyse pour ouvrir un panneau contextuel Add monitoring virtual machine et choisir la machine virtuelle à partir de laquelle surveiller vos instances SQL et fournir les chaînes de connexion.

Sélectionnez l’abonnement et le nom de votre machine virtuelle d’analyse. Si vous utilisez un coffre de clés pour stocker les mots de passe pour les connexions de surveillance (fortement recommandé), sélectionnez l’abonnement de ce coffre de clés sous Key vault subscriptions, puis sélectionnez le coffre de clés qui stocke les secrets sous KeyVault. Dans le champ Connection strings, entrez l’URI du coffre et le nom du secret pour chaque mot de passe à utiliser dans les chaînes de connexion.

Par exemple, si l’URI du coffre de clés est https://mykeyvault.vault.azure.net/ et que les noms de secret sont sqlPassword1 et sqlPassword2, le code JSON dans le champ Connection strings contient les éléments suivants :

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

Vous pouvez maintenant référencer ces secrets dans le champ Connection strings. Dans l’exemple suivant, les deux chaînes de connexion référencent les secrets telegrafPassword1 et telegrafPassword2 définis précédemment :

{
   "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;"
   ]
}

Capture d’écran de la page Ajouter une machine d’analyse du portail Azure. Choisissez la machine virtuelle, spécifiez l’URL de KV (si utilisé) et le nom du secret. Saisissez les chaînes de connexion pour chaque système à surveiller. Choisissez le KV où vous avez créé le secret utilisé dans les chaînes de connexion.

Pour plus d’informations sur l’identification de la chaîne de connexion pour différents déploiements SQL, consultez la section suivante.

Ajouter des chaînes de connexion

La chaîne de connexion spécifie le nom de connexion que SQL Insights (préversion) doit utiliser pour se connecter à SQL afin de collecter des données de surveillance. Si vous utilisez un coffre de clés pour stocker le mot de passe de votre utilisateur surveillant, indiquez l’URI du coffre de clés et le nom du secret contenant le mot de passe.

La chaîne de connexions varie en fonction de chaque type de ressource SQL :

Azure SQL Database

Les connexions TCP depuis la machine d’analyse vers l’adresse IP et le port utilisés par la base de données doivent être autorisées par les pare-feux ou groupes de sécurité réseau qui peuvent exister sur le chemin d’accès réseau. Pour plus d’informations sur les adresses IP et les ports, consultez Architecture de connectivité Azure SQL Database.

Entrer la chaîne de connexion dans le formulaire :

"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;"
]

Obtenez les détails de la page Chaînes de connexion et du point de terminaison ADO.NET approprié pour la base de données.

Pour surveiller un secondaire accessible en lecture, ajoutez ;ApplicationIntent=ReadOnly à la chaîne de connexion. SQL Insights prend en charge l’analyse d’un seul secondaire. Les données collectées seront marquées pour refléter le primaire ou le secondaire.

Azure SQL Managed Instance

Les connexions TCP depuis la machine d’analyse vers l’adresse IP et le port utilisés par l’instance gérée doivent être autorisées par les pare-feux ou groupes de sécurité réseau qui peuvent exister sur le chemin d’accès réseau. Pour plus d’informations sur les adresses IP et les ports, consultez Types de connexion Azure SQL Managed Instance.

Entrer la chaîne de connexion dans le formulaire :

"sqlManagedInstanceConnections": [
   "Server= mysqlserver1.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;",
   "Server= mysqlserver2.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;" 
] 

Obtenez les détails de la page Chaînes de connexion et du point de terminaison ADO.NET approprié pour l’instance gérée. Si vous utilisez un point de terminaison public d’instance gérée, remplacez le port 1433 par 3342.

Pour surveiller un secondaire accessible en lecture, ajoutez ;ApplicationIntent=ReadOnly à la chaîne de connexion. SQL Insights prend en charge la surveillance d’un réplica secondaire haute disponibilité unique pour une base de données primaire donnée. Les données collectées seront étiquetées pour refléter le Primaire ou le Secondaire.

SQL Server

Le protocole TCP/IP doit être activé pour l’instance SQL Server que vous souhaitez analyser. Les connexions TCP depuis la machine d’analyse vers l’adresse IP et le port utilisés par l’instance SQL Server doivent être autorisées par les pare-feux ou groupes de sécurité réseau qui peuvent exister sur le chemin d’accès réseau.

Si vous souhaitez surveiller l’instance SQL Server configurée pour la haute disponibilité (à l’aide de groupes de disponibilité ou d’instances de cluster de basculement), nous vous recommandons de surveiller chaque instance SQL Server dans le cluster individuellement au lieu de vous connecter via un écouteur de groupe de disponibilité ou un nom de cluster de basculement. Cela permet de s’assurer que les données d’analyse sont collectées quel que soit le rôle de l’instance actuelle (principal ou secondaire).

Entrer la chaîne de connexion dans le formulaire :

"sqlVmConnections": [
   "Server=SQLServerInstanceIPAddress1;Port=1433;User Id=$username;Password=$password;",
   "Server=SQLServerInstanceIPAddress2;Port=1433;User Id=$username;Password=$password;"
] 

Utilisez l’adresse IP sur laquelle l’instance SQL Server écoute.

Si votre instance SQL Server est configurée pour écouter sur un port autre que celui par défaut, remplacez 1433 par ce numéro de port dans la chaîne de connexion. Si vous utilisez SQL Server sur une machine virtuelle Azure SQL, vous pouvez voir le port à utiliser sur la page Sécurité de la ressource.

Capture d’écran de la page Sécurité de la machine virtuelle SQL dans le portail Azure. La page Sécurité de la machine virtuelle SQL contient une section Sécurité + mise en réseau avec un champ Port.

Pour n’importe quelle instance SQL Server, vous pouvez déterminer l’ensemble des adresses IP et ports qu’elle écoute en vous connectant à l’instance et en exécutant la requête T-SQL suivante, tant qu’il y a au moins une connexion TCP à l’instance :

SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE net_transport = 'TCP'
      AND
      protocol_type = 'TSQL';

Création d’un profil d’analyse

Sélectionnez Ajouter une analyse de machine virtuelle pour configurer la machine virtuelle afin de collecter les données de vos ressources SQL. Ne revenez pas à l’onglet Vue d’ensemble. Dans quelques minutes, la colonne État doit changer pour indiquer « En cours de collecte », et vous devez voir les données des ressources SQL que vous avez choisi d’analyser.

Si vous ne voyez pas les données, consultez Résolution des problèmes liés à SQL Insights (préversion) pour identifier le problème.

Capture d’écran de la page du portail Azure pour Azure Monitor pour SQL. Dans le menu Insights, SQL est sélectionné. Un profil est affiché comme ayant été créé.

Notes

Si vous devez mettre à jour votre profil d’analyse ou les chaînes de connexion sur vos machines virtuelles d’analyse, vous pouvez le faire via l’onglet Gérer le profil de SQL Insights (préversion). Une fois que vos mises à jour ont été enregistrées, les modifications sont appliquées dans les 5 minutes.

Étapes suivantes