Le gestionnaire de charges de travail pour Microsoft SQL Server utilise l'agent de Google Cloudpour SQL Server afin de détecter et de collecter des métadonnées pour évaluer vos configurations SQL Server. L'agent pour SQL Server est obligatoire sur toutes les VM exécutant SQL Server.
Ce document explique comment installer, configurer et vérifier l'agent Google Cloudpour SQL Server.
Prérequis pour installer l'agent
Avant d'installer l'Agent pour SQL Server, vous devez vous assurer que les conditions préalables suivantes sont remplies et créer une évaluation de la charge de travail SQL Server.
Attribuer des rôles IAM au compte de service
L'agentGoogle Cloudpour SQL Server utilise le compte de service IAM (Identity and Access Management) associé à la VM pour l'authentification avec Google Cloud et pour l'autorisation d'accès aux ressources Google Cloud . Pour la collecte des métriques de validation du gestionnaire de charges de travail, utilisez un nouveau compte de service qui inclut les rôles IAM suivants:
- Lecteur Compute (
roles/compute.viewer
) - Accesseur de secret Secret Manager (
roles/secretmanager.secretAccessor
) - Administrateur Workload Manager (
roles/workloadmanager.admin
) - Rédacteur de journaux (
roles/logging.logWriter
), si vous utilisez la fonctionnalité Cloud Logging
Pour ajouter un rôle requis à votre compte de service, procédez comme suit :
Dans la console Google Cloud, accédez à la page IAM.
Sélectionnez votre projet Google Cloud.
Identifiez le compte de service auquel vous souhaitez ajouter un rôle.
- Si ce compte de service ne figure pas déjà sur la liste des comptes principaux, cela signifie qu'aucun rôle ne lui a encore été attribué. Cliquez sur Ajouter, puis saisissez l'adresse e-mail du compte de service.
- Si le compte de service figure déjà sur la liste des comptes principaux, il possède des rôles. Cliquez sur le bouton Modifier correspondant au compte de service que vous souhaitez modifier.
Sélectionnez le rôle requis dans la liste des rôles disponibles :
- Compute Engine > Lecteur Compute
- Secret Manager > Accesseur de secrets de Secret Manager
Cliquez sur Ajouter ou sur Enregistrer pour appliquer le ou les rôles sélectionnés au compte de service.
Activer l'accès aux API Google Cloud
Compute Engine recommande de configurer vos instances de VM de façon à accorder un niveau d'accès complet à toutes les API Cloud et à n'utiliser que les autorisations IAM du compte de service de l'instance pour contrôler les accès aux ressources Google Cloud . Pour en savoir plus, consultez la page Créer une VM qui utilise un compte de service géré par l'utilisateur.
Si vous limitez l'accès aux API Cloud, l'Agent pour SQL Server nécessite au minimum les niveaux d'accès suivants aux API Cloud sur l'instance de VM hôte:
https://www.googleapis.com/auth/cloud-platform
Pour en savoir plus, consultez la section Bonnes pratiques concernant les champs d'application.
Si vous exécutez des applications SQL Server sur une instance de VM qui ne possède pas d'adresse IP externe, vous devez activer l'accès privé à Google sur le sous-réseau de la VM afin que l'Agent pour SQL Server puisse accéder aux API et services Google. Pour savoir comment activer l'accès privé à Google sur un sous-réseau, consultez la section Configurer l'accès privé à Google.
Autorisations requises sur SQL Server
Utilisez le script suivant pour attribuer les autorisations requises au compte utilisateur configuré dans l'agent.
USE [master] GO
GRANT VIEW SERVER STATE TO [user_name] GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user EXEC sp_MSForEachDB ' USE ? IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'') BEGIN CREATE USER [user_name] FOR LOGIN [user_name] END EXEC sp_addrolemember ''db_datareader'', ''user_name'' '
Installer l'agent
Windows
Sous Windows, vous installez l'Agent pour SQL Server à l'aide de la commande de gestion des packages GooGet googet
. La commande de gestion des packages effectue les tâches suivantes :
- Télécharge la dernière version de l'agent pour SQL Server.
- Elle crée un service Windows nommé
google-cloud-sql-server-agent
et une tâche planifiée qui s'exécute toutes les minutes pour vérifier si le service est toujours en cours d'exécution et, si nécessaire, le redémarrer.
Pour installer l'agent sur une VM, procédez comme suit:
- Connectez-vous à l'instance de VM Windows à l'aide de RDP.
- En tant qu'administrateur, exécutez les commandes suivantes à partir de PowerShell:
googet addrepo google-cloud-sql-server-agent-windows https://packages.cloud.google.com/yuck/repos/google-cloud-sql-server-agent-windows googet install google-cloud-sql-server-agent
- Examinez le fichier de configuration situé sous
%ProgramFiles%\Google\google-cloud-sql-server-agent
et mettez à jour la sectioncredential_configuration
à l'aide des informations fournies dans les propriétés de configuration. - Redémarrez l'agent pour que cette modification soit prise en compte.
Linux
Sous Linux, vous installez l'Agent pour SQL Server à l'aide des commandes standards de gestion des packages du système d'exploitation:
- Sur RHEL, utiliser la commande
yum
- Sous SLES, utilisez la commande
zypper
La commande de gestion des packages effectue les tâches suivantes :
- Télécharge la dernière version de l'agent pour SQL Server.
- Elle crée l'agent en tant que service
systemd
Linux nommégoogle-cloud-sql-server-agent
. - Elle active et démarre le service
google-cloud-sql-server-agent
.
Pour installer l'agent sur une VM, procédez comme suit:
- Établissez une connexion SSH avec votre VM hôte.
- Dans votre terminal, installez l'agent en exécutant la commande spécifique à votre système d'exploitation :
RHEL
sudo tee /etc/yum.repos.d/google-cloud-sql-server-agent.repo << EOM [google-cloud-sql-server-agent] name=Google Cloud Agent for SQL Server baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9) enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM sudo yum install google-cloud-sql-server-agent
SLES 15
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-sles15 google-cloud-sql-server-agent sudo zypper install google-cloud-sql-server-agent
SLES 12
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-sles12 google-cloud-sql-server-agent sudo zypper install google-cloud-sql-server-agent
- Examinez le fichier de configuration situé sous
\etc\google-cloud-sql-server-agent
et mettez à jour la sectioncredential_configuration
à l'aide des informations fournies dans les propriétés de configuration. - Redémarrez l'agent pour que cette modification soit prise en compte.
Propriétés de configuration
Le tableau suivant décrit les propriétés du fichier de configuration de l'agent.
Propriétés | |
---|---|
collection_configuration.collect_guest_os_metrics |
Pour activer la collecte des métriques de l'OS, définissez la valeur sur |
collection_configuration.guest_os_metrics_collection_interval_in_seconds |
Fréquence de collecte des métriques de l'OS du gestionnaire de charges de travail, en secondes.
La valeur par défaut est de |
collection_configuration.collect_sql_metrics |
Pour activer la collecte des métriques SQL Server, spécifiez |
collection_configuration.collect_sql_metrics_collection_interval_in_seconds |
Fréquence de collecte des métriques SQL Server du gestionnaire de charges de travail, en secondes.
La valeur par défaut est de |
log_level |
INFO . Ne modifiez pas le niveau de journalisation, sauf indication contraire de Cloud Customer Care.
|
log_to_cloud |
Pour rediriger les journaux de l'agent vers Cloud Logging, spécifiez |
disable_log_usage |
Pour désactiver la journalisation des métriques d'état de l'agent, spécifiez |
remote_collection |
Spécifiez |
credential_configuration[].sql_configurations[].user_name |
Spécifiez le compte utilisateur utilisé pour interroger l'instance SQL Server. Pour configurer les autorisations de compte, passez en revue les autorisations requises dans le script d'autorisation et accordez-les conformément à vos stratégies internes. Remarque:Si vous utilisez l'authentification Windows, veillez à spécifier le nom d'utilisateur au format suivant : |
credential_configuration[].sql_configurations[].host |
Nom d'hôte de SQL Server. |
credential_configuration[].sql_configurations[].secret_name |
Pour fournir le mot de passe du compte utilisateur de base de données utilisé par l'agent pour interroger SQL Server de manière sécurisée, spécifiez le nom du secret dans Secret Manager contenant les identifiants de sécurité du compte utilisateur de base de données. Remarque:Le secret et l'instance de VM hôte doivent se trouver dans le même projet Google Cloud. |
credential_configuration[].sql_configurations[].port_number |
Spécifiez le port sur lequel votre instance SQL Server accepte les requêtes. |
credential_configuration[].remote_win.server_name |
Adresse IP ou nom de domaine complet de la VM distante |
credential_configuration[].remote_win.guest_user_name |
Spécifiez le compte utilisateur utilisé pour se connecter à distance à la VM. |
credential_configuration[].remote_win.guest_secret_name |
Pour fournir le mot de passe du compte utilisateur utilisé par l'agent pour se connecter à distance à la VM de manière sécurisée, spécifiez le nom du secret dans Secret Manager qui contient les identifiants de sécurité du compte utilisateur. Remarque:Le secret et l'instance de VM hôte doivent se trouver dans le même projet Google Cloud. |
credential_configuration[].remote_linux.server_name |
Adresse IP ou nom de domaine complet de la VM distante |
credential_configuration[].remote_linux.guest_user_name |
Spécifiez le compte utilisateur utilisé pour se connecter à distance à la VM. |
credential_configuration[].remote_linux.guest_port_number |
Spécifiez le numéro de port SSH de la VM distante. |
credential_configuration[].remote_linux.linux_ssh_private_key_path |
Chemin d'accès au fichier de clé privée SSH. |
credential_configuration[].instance_name |
Indiquez le nom de votre instance de VM Compute Engine. Remarque:Facultatif pour la collection locale. |
credential_configuration[].instance_id |
Spécifiez l'ID de votre instance de VM Compute Engine. Remarque:Facultatif pour la collection locale. |
L'exemple suivant montre un fichier de configuration pour l'Agent pour SQL Server:
Collection locale
{ "collection_configuration": { "collect_guest_os_metrics":true, "guest_os_metrics_collection_interval_in_seconds":3600, "collect_sql_metrics":true, "sql_metrics_collection_interval_in_seconds":3600 }, "credential_configuration": [ { "sql_configurations": [ { "host":".", "user_name":"db_user_name", "secret_name":"db_pwd_secret_name", "port_number":1433 } ], } ], "log_level":"INFO", "log_to_cloud":true, "collection_timeout_seconds":10, "max_retries":5, "retry_interval_in_seconds":3600 }
Collecte à distance
{ "collection_configuration": { "collect_guest_os_metrics":true, "guest_os_metrics_collection_interval_in_seconds":3600, "collect_sql_metrics":true, "sql_metrics_collection_interval_in_seconds":3600 }, "credential_configuration": [ { "sql_configurations": [ { "host":"sql_server_instance", "user_name":"db_user_name", "secret_name":"db_pwd_secret_name", "port_number":1433 } ], "remote_win":{ "server_name":"sql_server_instance", "guest_user_name":"user_name", "guest_secret_name":"pwd_secret_name" }, "instance_name":"db01", "instance_id":"9999999999999999999" } ], "remote_collection":true, "log_level":"INFO", "log_to_cloud":true, "collection_timeout_seconds":10, "max_retries":5, "retry_interval_in_seconds":3600 }
Vérifier l'installation de l'agent
Windows
- Connectez-vous à l'instance de VM Windows à l'aide de RDP.
Exécutez la commande suivante à partir de PowerShell en tant qu'administrateur:
$(Get-Service -Name 'google-cloud-sql-server-agent' -ErrorAction Ignore).Status
Si l'agent est en cours d'exécution, l'état indique
Running
.
Linux
- Établissez une connexion SSH avec votre instance de VM hôte.
Exécutez la commande suivante :
systemctl status google-cloud-sql-server-agent
Si l'agent fonctionne correctement, la sortie contient
active (running)
. Exemple :google-cloud-sql-server-agent.service - Google Cloud Agent for SQL Server Loaded: loaded (/usr/lib/systemd/system/google-cloud-sql-server-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2023-12-31 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-sql-server-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run
Vérifier la version de l'agent
Pour afficher la version de l'agent, procédez comme suit :
Windows
- Utilisez RDP pour vous connecter à la machine hôte.
- En tant qu'administrateur, exécutez la commande suivante à partir de PowerShell :
googet installed google-cloud-sql-server-agent
RHEL
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
yum info google-cloud-sql-server-agent
SUSE
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
zypper info google-cloud-sql-server-agent
Redémarrer l'agent
Si l'agent pour SQL Server cesse de fonctionner ou si vous mettez à jour sa configuration, redémarrez-le.
Sélectionnez votre système d'exploitation, puis procédez comme suit :
Windows
- Utilisez RDP pour vous connecter à la machine hôte.
- En tant qu'administrateur, exécutez la commande suivante à partir de PowerShell :
Restart-Service -Name 'google-cloud-sql-server-agent' -Force
Linux
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
sudo systemctl restart google-cloud-sql-server-agent
Mettre à jour l'agent
Pour vous assurer que vous disposez de la dernière version de l'agent, vous devez régulièrement vérifier si des mises à jour sont disponibles et mettre à jour l'agent.
Rechercher des mises à jour
Sélectionnez votre système d'exploitation, puis procédez comme suit :
Windows
- Utilisez RDP pour vous connecter à la machine hôte.
- En tant qu'administrateur, exécutez la commande suivante à partir de PowerShell :
googet latest google-cloud-sql-server-agent
RHEL
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
sudo yum check-update google-cloud-sql-server-agent
SLES
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
sudo zypper list-updates -r google-cloud-sql-server-agent
Installer une mise à jour
Sélectionnez votre système d'exploitation, puis procédez comme suit :
Windows
- Utilisez RDP pour vous connecter à la machine hôte.
- En tant qu'administrateur, exécutez la commande suivante à partir de PowerShell :
googet install google-cloud-sql-server-agent
RHEL
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
sudo yum --nogpgcheck update google-cloud-sql-server-agent
SLES
- Utilisez SSH pour vous connecter à la machine hôte.
- Exécutez la commande suivante :
sudo zypper --no-gpg-checks update google-cloud-sql-server-agent
Afficher les journaux de l'agent dans Cloud Logging
Par défaut, les journaux de l'agent pour SQL Server sont redirigés depuis vos instances de VM vers Cloud Logging.
Pour afficher les journaux de l'agent dans Logging, procédez comme suit :
Dans Google Cloud Console, accédez à la page Explorateur de journaux.
Accédez au volet Requête.
Dans le menu déroulant Ressources, sélectionnez Global, puis cliquez sur Appliquer.
Dans l'éditeur de requêtes, saisissez
google-cloud-sql-server-agent
.Cliquez sur Exécuter la requête.
Vous devriez voir les journaux générés par les instances d'agent s'exécutant sur l'ensemble de vos instances de VM. Pour filtrer les journaux d'une machine spécifique, utilisez les filtres disponibles dans l'interface.
Désactiver les journaux de l'agent dans Cloud Logging
Pour désactiver la redirection par défaut des journaux de l'agent vers Cloud Logging, procédez comme suit:
Établissez une connexion RDP ou SSH avec votre instance de VM hôte.
Modifiez le fichier de configuration de l'agent :
Windows
%ProgramFiles%\Google\google-cloud-sql-server-agent\configuration.json
Linux
/etc/google-cloud-sql-server-agent/configuration.json
Pour la propriété
log_to_cloud
, remplacez la valeur parfalse
.Enregistrez le fichier de configuration.
Redémarrez l'agent pour que cette modification soit prise en compte.
Dépannage
Les sections suivantes fournissent des informations sur les problèmes courants liés à l'utilisation de l'Agent pour SQL Server, leurs causes et leur résolution.
Champs d'application d'authentification insuffisants
Problème:si vous limitez les champs d'application d'accès sur votre instance de VM hôte, les journaux de l'agent pour SQL Server peuvent afficher une erreur d'autorisation IAM insuffisante.
googleapi: Error 403: Request had insufficient authentication scopes. Details: [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "googleapis.com", "metadata": { "method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight", "service": "workloadmanager.googleapis.com" }, "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT" } ]More details: Reason: insufficientPermissions, Message: Insufficient Permission
Cause:l'agent pour SQL Server nécessite un minimum de niveaux d'accès aux API Cloud sur l'instance de VM hôte.
Solution:Pour résoudre ce problème, activez les champs d'application d'accès requis.
Échec du chargement du fichier de configuration
Problème:si le fichier de configuration contient des valeurs non valides, l'erreur suivante s'affiche.
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"
Résolution:Pour résoudre ce problème, mettez à jour le fichier de configuration à l'aide des informations de la section Propriétés de configuration.
Échec de l'initialisation de la collecte des données
Problème:si le fichier de configuration n'est pas mis à jour après l'installation de l'agent, l'erreur suivante s'affiche:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
Solution:Pour résoudre ce problème, initialisez la configuration des identifiants à l'aide des propriétés de configuration.
Étape suivante
- En savoir plus sur les évaluations des charges de travail