Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un aperçu conformément à nos politiques de pré-sortie.
Configurez le monitoring Microsoft SQL Server à l'aide du collecteur NRDOT dans les environnements Linux pour monitorer les instances AWS RDS pour SQL Server.
Prérequis
Assurez-vous que votre environnement répond à nos exigences de compatibilité et prérequis.
Configurer le Collector NRDOT
Installez le Collector NRDOT sur votre instance EC2 Linux ou votre machine Linux locale qui peut se connecter à votre instance RDS SQL Server.
Important
Installez le Collector NRDOT sur une instance EC2 ou une machine locale qui a une connectivité réseau à votre instance RDS SQL Server. Assurez-vous que votre groupe de sécurité autorise les connexions entrantes sur le port 1433 (ou votre port personnalisé).
Debian/Ubuntu
Pour l'architecture AMD64 (x86_64) :
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_amd64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debPour l'architecture ARM64 :
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debRHEL/CentOS
Pour l'architecture AMD64 (x86_64) :
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_x86_64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpmPour l'architecture ARM64 :
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpm
Configurer l'utilisateur de la base de données
Connectez-vous à votre instance RDS SQL Server et créez l'utilisateur de monitoring newrelic avec les autorisations appropriées.
Créez un fichier nommé
nr-grant-permission-rds.sqlsur votre instance Linux avec le contenu suivant :USE [master];GOCREATE LOGIN [newrelic] WITH PASSWORD = '<PASSWORD>';GO-- Instance-level permissionsGRANT VIEW SERVER STATE TO [newrelic];GRANT VIEW ANY DEFINITION TO [newrelic];GRANT VIEW ANY DATABASE TO [newrelic];GO-- Grant read access privileges to all user databasesDECLARE @name SYSNAME;DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FORSELECT [name]FROM [master].[sys].[databases]WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')AND [state] = 0; -- Only online databasesOPEN db_cursor;FETCH NEXT FROM db_cursor INTO @name;WHILE @@FETCH_STATUS = 0BEGINEXEC('USE [' + @name + '];IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')CREATE USER [newrelic] FOR LOGIN [newrelic];');END TRYBEGIN CATCHPRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();END CATCHFETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOExécutez le script en utilisant vos identifiants d’utilisateur maître RDS. Remplacez
<YOUR-RDS-ENDPOINT>par votre point de terminaison RDS réel et<Your_Master_Password>par votre mot de passe maître :bash$sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<Your_Master_Password>' -C -i nr-grant-permission-rds.sql(Facultatif) Vérifiez que l’utilisateur a été créé avec succès :
bash$sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<Your_Master_Password>' -C -Q "SELECT sp.name AS [User], p.permission_name AS [Permission_Granted] FROM sys.server_permissions p JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id WHERE sp.name = 'newrelic';"Conseil
Pour RDS : utilisez votre nom d’utilisateur et votre mot de passe principal RDS pour exécuter ces commandes. Le script exclut automatiquement la base de données
rdsadminqui est réservée par AWS.
Configurer le collecteur NRDOT
Créez le fichier de configuration. Le nom du fichier doit être
mssql-config.yaml:sudo nano /etc/nrdot-collector/mssql-config.yamlAjoutez le contenu de configuration ci-dessous au fichier mssql-config.yaml que vous avez créé à l'étape précédente.
Important
Si vous êtes déjà utilisateur de NRDOT Collector, assurez-vous de fusionner la configuration avec votre fichier
mssql-config.yamlexistant. Cela inclut l’ajout des nouveaux récepteurs, processeurs et exportateurs pour le monitoring de la base de données MSSQL tout en conservant vos configurations actuelles.Utilisez la configuration ci-dessous avec votre point de terminaison RDS :
receivers:nrsqlserver:collection_interval: 15s# Connection details - Use your RDS endpointusername: <YOUR_USERNAME>password: <YOUR_NEWRELIC_PASSWORD>server: <YOUR-RDS-ENDPOINT>port: 1433# Enable comprehensive database metricsmetrics:sqlserver.database.count:enabled: truesqlserver.database.io:enabled: truesqlserver.database.latency:enabled: truesqlserver.database.operations:enabled: truesqlserver.database.tempdb.space:enabled: truesqlserver.database.tempdb.version_store.size:enabled: truesqlserver.deadlock.rate:enabled: truesqlserver.os.wait.duration:enabled: truesqlserver.processes.blocked:enabled: truesqlserver.memory.grants.pending.count:enabled: truesqlserver.database.file.size:enabled: truesqlserver.memory.area:enabled: true# Enable top query and query sample log collectionevents:db.server.query_sample:enabled: truedb.server.top_query:enabled: true# Top query collection configurationtop_query_collection:lookback_time: 60smax_query_sample_count: 1000top_query_count: 250collection_interval: 60scollect_full_query_text: trueallowed_comment_keys:- nr_service_guid# Query sample collection configurationquery_sample_collection:max_rows_per_query: 100processors:memory_limiter:check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}batch:exporters:otlphttp:endpoint: <YOUR_OTLP_ENDPOINT>headers:api-key: <YOUR_LICENSE_KEY>tls:insecure: falsecompression: gzipservice:telemetry:metrics:level: nonepipelines:metrics:receivers: [nrsqlserver]processors: [memory_limiter, batch]exporters: [otlphttp]logs:receivers: [nrsqlserver]processors: [memory_limiter, batch]exporters: [otlphttp]Conseil
Remplacez les valeurs des espaces réservés :
<YOUR_USERNAME>: saisissez votre nom d’utilisateur de base de données pour l’authentification<YOUR-RDS-ENDPOINT>: votre point de terminaison RDS SQL Server (par ex.,mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com)<YOUR_NEWRELIC_PASSWORD>: le mot de passe que vous avez défini pour l'utilisateur newrelic<YOUR_OTLP_ENDPOINT>: votre point de terminaison OTLP New Relic (par ex.,https://otlp.nr-data.net)<YOUR_LICENSE_KEY>: votre clé de licence New Relic
Conseil
Remarque : L'option
max_concurrent_queriescontrôle le nombre de requêtes de métriques que le récepteur exécute en parallèle sur SQL Server lors de chaque cycle de collecte.receivers:nrsqlserver:max_concurrent_queries: 4 # default is 4 if omitted or set to 0Conseil
Remarque : Si vous activez toutes les métriques disponibles, augmentez la valeur
limit_mib(par ex., 1000) pour éviter que le limiteur de mémoire ne supprime des données.
Mettez à jour le fichier de configuration du collecteur
Exécutez la commande suivante pour modifier la configuration du service :
bash$sudo nano /etc/nrdot-collector/nrdot-collector.confMettez à jour le chemin de configuration pour qu'il pointe vers votre nouveau fichier mssql-config.yaml :
bash$OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
Valider la configuration du Collector NRDOT
Validez la configuration du Collector NRDOT pour vous assurer qu’elle est correctement formatée et qu’elle fonctionnera correctement.
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yamlRedémarrer le collecteur NRDOT
Après avoir mis à jour votre configuration, redémarrez le service NRDOT Collector :
$sudo systemctl restart nrdot-collectorConseil
Redémarrez toujours le service de collecte NRDOT après avoir modifié la configuration pour vous assurer que les nouveaux paramètres soient pris en compte.
Prochaines étapes
Après avoir configuré le monitoring RDS Linux :