• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Installez & configurez NRDOT pour le monitoring MSSQL avec Linux auto-hébergé

|View as Markdown (English)

Obtenez des informations détaillées complètes sur les performances de votre SQL Server grâce au monitoring de base de données, à l'analyse des requêtes et aux métriques de santé du système à l'aide du collecteur New Relic Distribution of OpenTelemetry (NRDOT).

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.

Conseil

Si vous utilisez SQL Server dans un environnement Linux RDS, consultez l’ instrumentation Linux pour RDS.

Prérequis

  • 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.
    • Accès administrateur à SQL Server (rôle sysadmin ou équivalent).
    • Connectivité réseau entre le collecteur et SQL Server sur le port 1433 ou un port personnalisé.
    • L’utilitaire sqlcmd installé sur votre système Linux.

Installer le collecteur NRDOT

Téléchargez et installez le package NRDOT pour votre distribution Linux. Remplacez <NRDOT_VERSION> par le dernier tag de sortie de la page nrdot-collector-releases.

Conseil

Nous recommandons d'installer le NRDOT Collector sur le même hôte que l'instance SQL Server afin de visualiser les métriques au niveau de l'infrastructure pour le monitoring des performances des requêtes.

Créer un utilisateur de monitoring

Exécutez ce script en tant qu’utilisateur root pour créer l’utilisateur de monitoring newrelic et accorder les autorisations nécessaires pour la collecte des métriques SQL Server.

  1. Créez un fichier de configuration nommé nr-grant-permission.sql.

  2. Collez le script SQL suivant pour créer l’utilisateur de monitoring newrelic et remplacez <YOUR_PASSWORD> par le mot de passe souhaité :

USE [master];
GO
CREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_PASSWORD>';
GO
-- Instance-level permissions
GRANT 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 databases
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; -- Only online databases
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 = ''newrelic'')
BEGIN
CREATE USER [newrelic] FOR LOGIN [newrelic];
END;
GRANT VIEW DATABASE STATE TO [newrelic];');
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;
GO
  1. Exécutez le script en utilisant sqlcmd avec tout identifiant ayant l’autorisation de créer des identifiants et d’accorder des autorisations au niveau du serveur (par exemple, l’identifiant sa, ou un autre compte avec le rôle sysadmin). Remplacez <YOUR_ADMIN_USERNAME> et <YOUR_ADMIN_PASSWORD> par les informations d’identification de cet identifiant :
bash
$
sqlcmd -S <YOUR_DB_ENDPOINT> -U <YOUR_ADMIN_USERNAME> -P '<YOUR_ADMIN_PASSWORD>' -C -i nr-grant-permission.sql
  1. (Facultatif) Vérifiez que l’utilisateur a été créé avec succès et dispose des autorisations appropriées :
bash
$
sqlcmd -S <YOUR_DB_ENDPOINT> -U <YOUR_ADMIN_USERNAME> -P '<YOUR_ADMIN_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';"

Résultat attendu :

bash
User Permission_Granted
$
[output] -------------------------------------------------------------------------------------
$
[output] newrelic CONNECT SQL
$
[output] newrelic VIEW ANY DEFINITION
$
[output] newrelic VIEW ANY DATABASE
$
[output] newrelic VIEW SERVER STATE

Cette sortie confirme que votre utilisateur a été créé avec succès avec les permissions requises au niveau du serveur.

Conseil

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.

Configurer le collecteur NRDOT

Choisissez votre option de configuration en fonction de vos exigences de monitoring :

  1. Créez un fichier de configuration nommé mssql-config.yaml:
bash
$
sudo nano /etc/nrdot-collector/mssql-config.yaml
  1. Ajoutez la configuration suivante au fichier mssql-config.yaml créé à l’étape précédente :

    configuration complète

    Cette configuration se concentre sur le monitoring essentiel de la base de données pour votre environnement SQL Server. Pour activer un monitoring complet avec toutes les métriques disponibles, reportez-vous à la référence de configuration.

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    # Direct connection to SQL Server
    5
    username: newrelic
    6
    password: YOUR_PASSWORD
    7
    server: sqlserver.example.com
    8
    port: 1433
    9
    10
    # Enable comprehensive database metrics
    11
    metrics:
    12
    sqlserver.database.count:
    13
    enabled: true
    14
    sqlserver.database.io:
    15
    enabled: true
    16
    sqlserver.database.latency:
    17
    enabled: true
    18
    sqlserver.database.operations:
    19
    enabled: true
    20
    sqlserver.database.tempdb.space:
    21
    enabled: true
    22
    sqlserver.database.tempdb.version_store.size:
    23
    enabled: true
    24
    sqlserver.deadlock.rate:
    25
    enabled: true
    26
    sqlserver.os.wait.duration:
    27
    enabled: true
    28
    sqlserver.processes.blocked:
    29
    enabled: true
    30
    sqlserver.memory.grants.pending.count:
    31
    enabled: true
    32
    sqlserver.database.file.size:
    33
    enabled: true
    34
    sqlserver.memory.area:
    35
    enabled: true
    36
    37
    # Enable query sample, top query, query plan, and top procedure log collection
    38
    events:
    39
    db.server.query_sample:
    40
    enabled: true
    41
    db.server.top_query:
    42
    enabled: true
    43
    db.server.query_plan:
    44
    enabled: true
    45
    db.server.top_procedure:
    46
    enabled: true
    47
    48
    # Top query collection configuration
    49
    top_query_collection:
    50
    lookback_time: 60s
    51
    max_query_sample_count: 1000
    52
    top_query_count: 250
    53
    collection_interval: 60s
    54
    collect_full_query_text: true
    55
    allowed_comment_keys:
    56
    - nr_service_guid
    57
    58
    # Query sample collection configuration
    59
    query_sample_collection:
    60
    max_rows_per_query: 100
    61
    collect_full_query_text: true
    62
    allowed_comment_keys:
    63
    - nr_service_guid
    64
    65
    # Top stored procedure collection configuration
    66
    top_procedure_collection:
    67
    max_procedure_sample_count: 1000
    68
    top_procedure_count: 250
    69
    collection_interval: 60s
    70
    71
    resource_attributes:
    72
    db.system.version:
    73
    enabled: true
    74
    sqlserver.db.edition:
    75
    enabled: true
    76
    77
    processors:
    78
    memory_limiter:
    79
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    80
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    81
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    82
    83
    exporters:
    84
    otlp:
    85
    endpoint: https://otlp.nr-data.net:4318
    86
    headers:
    87
    api-key: YOUR_LICENSE_KEY
    88
    tls:
    89
    insecure: false
    90
    compression: gzip
    91
    92
    sending_queue:
    93
    enabled: true
    94
    sizer: bytes
    95
    queue_size: 100_000_000
    96
    num_consumers: 10
    97
    batch:
    98
    sizer: bytes
    99
    max_size: 1_000_000
    100
    min_size: 0
    101
    flush_timeout: 5s
    102
    103
    service:
    104
    telemetry:
    105
    metrics:
    106
    level: none
    107
    108
    pipelines:
    109
    metrics:
    110
    receivers: [nrsqlserver]
    111
    processors: [memory_limiter]
    112
    exporters: [otlp]
    113
    114
    logs:
    115
    receivers: [nrsqlserver]
    116
    processors: [memory_limiter]
    117
    exporters: [otlp]

    Conseil

    Le pipeline logs ne 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écepteur nrsqlserver capture cette télémétrie via les événements db.server.query_sample, db.server.top_query, db.server.query_plan, et db.server.top_procedure émis sous forme d’enregistrements de log OpenTelemetry.

    L’événement db.server.top_procedure nécessite SQL Server 2017 CU3 ou une version ultérieure, qui a introduit la prise en charge de sys.dm_exec_procedure_stats.total_spills. Sur les versions antérieures, cet événement n’émet pas de données et génère un log d’erreur. Les autres événements ne sont pas affectés. L’accès à sys.dm_exec_procedure_stats nécessite VIEW SERVER STATE (ou VIEW SERVER PERFORMANCE STATE, selon la version de SQL Server). De plus, VIEW ANY DEFINITION est requis pour que OBJECT_NAME et OBJECT_SCHEMA_NAME se résolvent correctement dans toutes les bases de données utilisateur, et CONNECT SQL est nécessaire pour configurer les sessions initiales. L’utilisateur de monitoring créé dans Créer un utilisateur de monitoring inclut les 3 permissions.

Mettre à jour la configuration du Collector NRDOT

Après avoir configuré votre fichier YAML avec les entrées interactives ci-dessus, terminez la configuration du Collector NRDOT :

  1. Modifiez le fichier de configuration du service :
bash
$
sudo nano /etc/nrdot-collector/nrdot-collector.conf
  1. Mettez à jour le chemin de configuration pour pointer vers votre nouveau fichier mssql-config.yaml :
bash
$
OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  1. (Facultatif) Validez la configuration du Collector NRDOT :
bash
$
sudo /usr/bin/nrdot-collector validate --config=/etc/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 :

bash
$
sudo systemctl restart nrdot-collector

Conseil

Redémarrez toujours le service NRDOT Collector après avoir modifié la configuration pour vous assurer que les nouveaux paramètres soient pris en compte.

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 :

  1. Allez à one.newrelic.com > All capabilities > Databases.

  2. Dans la liste déroulante Entity type, sélectionnez MSSQL instance, puis cliquez sur Apply.

  3. 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 :

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 dans New Relic.

Référence des métriques

Découvrez les métriques disponibles collectées par le collecteur NRDOT.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.