Partager via


Activer SQL Insights (préversion)

S’applique à : Azure SQL Database Azure 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.

Remarque

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

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.

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.

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
  • SQL Server sur machines virtuelles Azure

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 :

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.