• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Instale y configure NRDOT para el monitoreo de MSSQL con Linux RDS

|View as Markdown (English)

Obtenga información valiosa completa sobre el rendimiento de su AWS RDS SQL Server con el monitoreo de base de datos, el análisis de consultas y las métricas de estado del sistema mediante el recolector de New Relic Distribution of OpenTelemetry (NRDOT).

Instalación guiada

Para instalar esto a través de la UI de New Relic en su lugar, vaya a one.newrelic.com > Integrations & Agents > Microsoft SQL Server (Database 360) . Siga las instrucciones en pantalla para configurar la integración. Esta página solo cubre la instalación manual.

Sugerencia

If you're using SQL Server in a Linux self-hosted environment, refer to Linux instrumentation for self-hosted SQL Server.

Requisitos previos

  • Una cuenta de New Relic con una clave de licencia válida.

  • Conectividad de red al extremo OTLP de New Relic para su región.

  • Requisitos de AWS RDS SQL Server:

    • AWS RDS SQL Server 2017 o posterior.
    • Nombre de usuario y contraseña maestro de RDS.
    • Grupo de seguridad que permite conexiones entrantes en el puerto 1433 o un puerto personalizado.
  • Requisitos del sistema de Linux:

    • La utilidad sqlcmd instalada en su sistema Linux.

Instalar NRDOT Collector

Descargue e instale el paquete NRDOT para su distribución de Linux. Reemplace <NRDOT_VERSION> con la última etiqueta de versión de la página nrdot-collector-releases.

Importante

Instale el Collector de NRDOT en una instancia EC2 o máquina local con conectividad de red a la instancia de RDS SQL Server. Asegúrese de que el grupo de seguridad permita conexiones entrantes en el puerto 1433 (o un puerto personalizado).

Crear usuario de monitoreo

Ejecute este script como usuario root para crear el usuario de monitoreo newrelic y otorgar los permisos necesarios para recopilar las métricas de RDS SQL Server.

  1. Cree un archivo llamado nr-grant-permission-rds.sql.

  2. Pegue el siguiente script de SQL para crear el usuario de monitoreo de newrelic y reemplace <YOUR_PASSWORD> con la contraseña deseada:

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. Ejecute el script usando sqlcmd con cualquier inicio de sesión que tenga permiso para crear inicios de sesión y otorgar permisos a nivel de servidor (por ejemplo, el inicio de sesión sa u otra cuenta con el rol sysadmin). Reemplace <YOUR-RDS-ENDPOINT> con el extremo de RDS y <YOUR_MASTER_PASSWORD> con la contraseña maestra:
bash
$
sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<YOUR_MASTER_PASSWORD>' -C -i nr-grant-permission-rds.sql
  1. (Opcional) Verifique que el usuario se creó correctamente con los permisos correctos:
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';"

Sugerencia

Use el nombre de usuario y la contraseña maestros de RDS para ejecutar estos comandos. El script excluye automáticamente la base de datos rdsadmin, que está reservada por AWS. Para administrar información confidencial de forma segura, como las credenciales de la base de datos, almacénelas en herramientas de administración de secretos.

Configurar el Colector NRDOT

Seleccione la opción de configuración según sus requisitos de monitoreo:

  1. Cree un archivo de configuración llamado mssql-config.yaml:
bash
$
sudo nano /etc/nrdot-collector/mssql-config.yaml
  1. Agregue la siguiente configuración al archivo mssql-config.yaml creado en el paso anterior:

    configuración completa

    Esta configuración se centra en el monitoreo esencial de la base de datos para su entorno RDS. Para habilitar un monitoreo integral con todas las métricas disponibles, consulte la referencia de configuración.

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    # Connection details - Use your RDS endpoint
    5
    username: newrelic
    6
    password: YOUR_PASSWORD
    7
    server: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.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]

    Sugerencia

    El pipeline logs no transporta registros de depuración del recolector ni logs internos del agente. Transmite telemetría de consultas de SQL Server, incluido el texto de la consulta, los planes de ejecución y los datos de muestra. El receptor nrsqlserver captura esta telemetría a través de los eventos db.server.query_sample, db.server.top_query, db.server.query_plan y db.server.top_procedure emitidos como registros de log de OpenTelemetry.

    El evento db.server.top_procedure requiere SQL Server 2017 CU3 o posterior, que introdujo el soporte para sys.dm_exec_procedure_stats.total_spills. En versiones anteriores, este evento no emite datos y registra un error. Otros eventos no se ven afectados. El acceso a sys.dm_exec_procedure_stats requiere VIEW SERVER STATE (o VIEW SERVER PERFORMANCE STATE, dependiendo de la versión de SQL Server). Además, se requiere VIEW ANY DEFINITION para que OBJECT_NAME y OBJECT_SCHEMA_NAME se resuelvan correctamente en todas las bases de datos de usuario, y se necesita CONNECT SQL para configurar las sesiones iniciales. El usuario de monitoreo creado en Crear usuario de monitoreo incluye los 3 permisos.

Actualizar la configuración de NRDOT Collector

Después de configurar su archivo YAML con las entradas interactivas anteriores, complete la configuración de NRDOT Collector:

  1. Edite el archivo de configuración del servicio usando el siguiente comando:
bash
$
sudo nano /etc/nrdot-collector/nrdot-collector.conf
  1. Actualice la ruta de configuración para que apunte a su nuevo archivo mssql-config.yaml:
bash
$
OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  1. (Opcional) Valide la configuración del Collector de NRDOT:
bash
$
sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yaml

Sugerencia

Para correlacionar el rendimiento de su aplicación con las operaciones de la base de datos, puede configurar la identificación del servicio de base de datos. Para obtener más información, consulte la guía de configuración de identificación del servicio de base de datos.

Reiniciar NRDOT Collector

Después de actualizar su configuración, reinicie el servicio NRDOT Collector:

bash
$
sudo systemctl restart nrdot-collector

Sugerencia

Siempre reinicie el servicio NRDOT Collector después de realizar cambios de configuración para garantizar que los nuevos ajustes surtan efecto.

Encuentra y utiliza tus datos

Una vez que sus datos se estén recopilando, puede acceder al monitoreo integral de bases de datos SQL Server a través de la UI de New Relic.

Para encontrar su entidad de base de datos SQL Server en New Relic:

  1. Vaya a one.newrelic.com > All capabilities > Databases.

  2. En el menú desplegable Entity type, seleccione MSSQL instance y luego haga clic en Apply.

  3. Seleccione su base de datos SQL Server de la lista de entidades.

    Después de configurar el monitoreo de SQL Server con NRDOT, puede:

Configurar la correlación de APM y base de datos

Aprenda a correlacionar el rendimiento de la aplicación con las operaciones de la base de datos en New Relic.

Resolución de problemas

Aprenda a solucionar problemas de la configuración de monitoreo de MSSQL Linux RDS en New Relic.

Referencia de métricas

Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.

Copyright © 2026 New Relic Inc.

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