Configurez le monitoring de Microsoft SQL Server à l’aide du NRDOT Collector sur des environnements Windows pour monitorer les instances AWS RDS for SQL Server, en utilisant l’authentification de domaine Windows. Pour monitorer dans un environnement auto-hébergé, reportez-vous à l’ instrumentation auto-hébergée Windows.
Installation guidée
Pour installer ceci via l’UI de New Relic à la place, accédez à one.newrelic.com > Integrations & Agents > Microsoft SQL Server (Database 360) . Suivez les instructions à l’écran pour configurer l’intégration. Cette page couvre uniquement l’installation manuelle.
Cette page traite de l’authentification de domaine Windows. Si votre environnement utilise une méthode d’authentification différente, consultez Authentification SQL Server ou gMSA.
Prérequis
Avant de monitorer votre Microsoft SQL Server avec NRDOT à l’aide de l’authentification de domaine Windows, assurez-vous que votre environnement répond à ces exigences :
Un compte New Relic avec une clé de licence valide.
Connectivité réseau vers le point de terminaison OTLP New Relic pour votre région.
Prérequis SQL Server :
- SQL Server 2017 ou version ultérieure sur Amazon RDS.
- Identifiants de l'utilisateur principal RDS ou identifiants pour une connexion SQL Server avec le rôle
rds_superuser. - Groupe de sécurité RDS configuré pour autoriser les connexions sur le port
1433ou un port personnalisé. - SQL Server Management Studio (SSMS) ou l'utilitaire
sqlcmd. - Instance RDS associée au service AWS Active Directory.
Exigences d'authentification de domaine Windows :
- Un environnement de domaine Windows avec Active Directory.
- Une instance EC2 Windows jointe à un domaine.
- RDS SQL Server configuré pour accepter l'authentification Windows.
- Un compte utilisateur de domaine à utiliser par le Collector NRDOT.
L'URL de votre point de terminaison RDS SQL Server, qui se trouve dans votre console AWS RDS sous Connectivité & sécurité. Pour plus d'informations, consultez la documentation AWS RDS.
Installer le collecteur NRDOT
Installez le Collector NRDOT sur une instance EC2 Windows jointe au domaine ou une machine Windows locale qui fait partie du même domaine et peut se connecter à votre instance RDS SQL Server.
Important
Pour le monitoring RDS, installez le Collector NRDOT sur une instance EC2 dans le même VPC que votre instance RDS pour une connectivité réseau optimale et une latence plus faible.
- Téléchargez et installez le NRDOT Collector à l'aide de PowerShell :
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls' $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name $WebClient = New-Object System.Net.WebClient $WebClient.Headers.Add("User-Agent", "Mozilla/5.0") $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi") Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait Get-Service nrdot-collector -ErrorAction SilentlyContinueCréer une connexion de domaine Windows
Connectez-vous à votre instance RDS SQL Server à l'aide de SQL Server Management Studio (SSMS) ou de sqlcmd avec des privilèges administratifs.
Dans votre SQL Server Management Studio (SSMS), exécutez le script suivant pour créer une connexion pour votre compte gMSA et accorder les autorisations nécessaires. Remplacez toutes les occurrences de <YOUR_DOMAIN>\<YOUR_DOMAIN_USER> par votre véritable nom de domaine et de compte.
USE [master]; GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FROM WINDOWS; GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>]; GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>]; GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>]; GO
-- Grant access to all databases (required for query monitoring and tempdb metrics) DECLARE @name SYSNAME; DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR SELECT [name] FROM [master].[sys].[databases] WHERE [name] NOT IN ('master','msdb','model','rdsadmin','distribution') AND [state] = 0; OPEN db_cursor; FETCH NEXT FROM db_cursor INTO @name; WHILE @@FETCH_STATUS = 0 BEGIN BEGIN TRY EXEC('USE [' + @name + ']; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>'') BEGIN CREATE USER [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>]; END; GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];'); END TRY BEGIN CATCH PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE(); END CATCH FETCH NEXT FROM db_cursor INTO @name; END CLOSE db_cursor; DEALLOCATE db_cursor; GOConseil
Pour gérer en toute sécurité les informations sensibles, telles que les identifiants de base de données, stockez-les dans des outils de gestion des secrets.
Exécuter en tant qu'utilisateur de domaine
- Configurez le service NRDOT Collector pour qu’il s’exécute en tant qu’utilisateur de votre domaine à l’aide de PowerShell. Remplacez
YOUR_DOMAIN\YOUR_USER_ACCOUNTpar votre domaine et votre nom de compte :
# Configure service to use domain account # The space after obj= and password= is required syntax for sc.exe sc.exe config "nrdot-collector" obj= "YOUR_DOMAIN\YOUR_USER_ACCOUNT" password= "<YOUR_PASSWORD>"
# Restart the service Restart-Service nrdot-collector- Validez l’identité du service :
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName # Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNTConfigurer le collecteur NRDOT
- Créez un fichier de configuration nommé
mssql-config.yamldans PowerShell en tant qu'administrateur :
New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType FileAjoutez la configuration suivante au fichier
mssql-config.yamlcréé à l’étape précédente :Important
L’authentification de domaine Windows utilise la sécurité intégrée, qui utilise la même approche de configuration que l’authentification gMSA. Mettez à jour la valeur du serveur
datasourceavec votre point de terminaison RDS. Le service NRDOT s’authentifiera en utilisant le compte de domaine que vous avez configuré dans Créer une connexion de domaine Windows.configuration complète
Cette configuration se concentre sur le monitoring essentiel de la base de données pour votre environnement RDS. Pour activer un monitoring complet avec toutes les métriques disponibles, reportez-vous à la référence de configuration.
mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"56# Enable comprehensive database metrics7metrics:8sqlserver.database.count:9enabled: true10sqlserver.database.io:11enabled: true12sqlserver.database.latency:13enabled: true14sqlserver.database.operations:15enabled: true16sqlserver.database.tempdb.space:17enabled: true18sqlserver.database.tempdb.version_store.size:19enabled: true20sqlserver.deadlock.rate:21enabled: true22sqlserver.os.wait.duration:23enabled: true24sqlserver.processes.blocked:25enabled: true26sqlserver.memory.grants.pending.count:27enabled: true28sqlserver.database.file.size:29enabled: true30sqlserver.memory.area:31enabled: true3233# Enable query sample, top query, query plan, and top procedure log collection34events:35db.server.query_sample:36enabled: true37db.server.top_query:38enabled: true39db.server.query_plan:40enabled: true41db.server.top_procedure:42enabled: true4344# Top query collection configuration45top_query_collection:46lookback_time: 60s47max_query_sample_count: 100048top_query_count: 25049collection_interval: 60s50collect_full_query_text: true51allowed_comment_keys:52- nr_service_guid5354# Query sample collection configuration55query_sample_collection:56max_rows_per_query: 10057collect_full_query_text: true58allowed_comment_keys:59- nr_service_guid6061# Top stored procedure collection configuration62top_procedure_collection:63max_procedure_sample_count: 100064top_procedure_count: 25065collection_interval: 60s6667resource_attributes:68db.system.version:69enabled: true70sqlserver.db.edition:71enabled: true7273processors:74memory_limiter:75check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}76limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}77spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}7879exporters:80otlp:81endpoint: https://otlp.nr-data.net:431882headers:83api-key: YOUR_LICENSE_KEY84tls:85insecure: false86compression: gzip8788sending_queue:89enabled: true90sizer: bytes91queue_size: 100_000_00092num_consumers: 1093batch:94sizer: bytes95max_size: 1_000_00096min_size: 097flush_timeout: 5s9899service:100telemetry:101metrics:102level: none103104pipelines:105metrics:106receivers: [nrsqlserver]107processors: [memory_limiter]108exporters: [otlp]109110logs:111receivers: [nrsqlserver]112processors: [memory_limiter]113exporters: [otlp]Conseil
Le pipeline
logsne transporte ni les logs de débogage du collecteur, ni les logs internes de l’agent. Il transmet la télémétrie des requêtes SQL Server, y compris le texte des requêtes, les plans d’exécution, et les données d’exemple. Le Récepteurnrsqlservercapture cette télémétrie via les événementsdb.server.query_sample,db.server.top_query,db.server.query_plan, etdb.server.top_procedureémis sous forme d’enregistrements de log OpenTelemetry.L’événement
db.server.top_procedurenécessite SQL Server 2017 CU3 ou une version ultérieure, qui a introduit la prise en charge desys.dm_exec_procedure_stats.total_spills. Sur les versions antérieures, cet événement n’émet pas de données et log une erreur. Les autres événements ne sont pas affectés. L’accès àsys.dm_exec_procedure_statsnécessiteVIEW SERVER STATE(ouVIEW SERVER PERFORMANCE STATE, selon la version de SQL Server). De plus,VIEW ANY DEFINITIONest requis pour queOBJECT_NAMEetOBJECT_SCHEMA_NAMEse résolvent correctement sur toutes les bases de données utilisateur, etCONNECT SQLest nécessaire pour configurer les sessions initiales. Le compte que vous avez configuré dans Créer une connexion de domaine Windows possède déjà les 3 permissions.
Mettre à jour le registre des services Windows
Mettez à jour le registre des services Windows pour utiliser le nouveau fichier
mssql-config.yamlà l'aide de l'une des méthodes suivantes :- Pour PowerShell : Exécutez la commande suivante en tant qu'administrateur :
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'- Pour l’invite de commande : si PowerShell n’est pas disponible, utilisez plutôt l’invite de commande et exécutez la commande suivante en tant qu’administrateur :
$sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""- Validez la configuration du Collector NRDOT pour vous assurer qu'elle est correctement formatée et qu'elle fonctionnera correctement :
$& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"Conseil
Pour corréler les performances de votre application avec les opérations de base de données, vous pouvez configurer l’identification du service de bases de données. Pour plus d’informations, reportez-vous au guide de configuration de l’identification du service de bases de données.
Redémarrer NRDOT Collector
Après avoir mis à jour votre configuration, redémarrez le service NRDOT Collector :
$net stop nrdot-collector$ net start nrdot-collectorVérifiez que le service s’exécute sous le compte de domaine en consultant les services Windows (services.msc). La colonne Log On As doit afficher votre compte de domaine. Par exemple, CORP\SQLMonitor.
Trouvez et utilisez vos données
Une fois vos données collectées, vous pouvez accéder à un monitoring complet de la base de données SQL Server via l'UI de New Relic.
Pour trouver votre entité de base de données SQL Server dans New Relic :
Allez à https://one.newrelic.com > All Capabilities > Databases.
Dans la liste déroulante Entity type, sélectionnez MSSQL instance, puis cliquez sur Apply.
Sélectionnez votre base de données SQL Server dans la liste des entités.
Après avoir configuré le monitoring SQL Server avec NRDOT, vous pouvez :
- Créez des dashboards personnalisés pour visualiser les métriques de votre base de données
- Configurer des alertes pour les seuils critiques de performances des bases de données
- Explorez vos données à l’aide des fonctionnalités de requête de New Relic
Documentation associée
Configurer la corrélation APM-base de données
Découvrez comment corréler les performances des applications avec les opérations de base de données dans New Relic.
Dépannage
Découvrez comment dépanner votre configuration de monitoring MSSQL Windows dans New Relic.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.