• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Instalar & configurar o NRDOT para monitoramento do MSSQL com Linux RDS

|View as Markdown (English)

Obtenha insights abrangentes sobre o desempenho do seu AWS RDS SQL Server com monitoramento de banco de dados, análise de consulta e métricas de integridade do sistema usando o coletor New Relic Distribution of OpenTelemetry (NRDOT).

Instalação guiada

Para instalar isso pela interface da New Relic, acesse one.newrelic.com > Integrations & Agents > Microsoft SQL Server (Database 360) . Siga as instruções na tela para configurar a integração. Esta página aborda apenas a instalação manual.

Dica

Caso esteja utilizando o SQL Server em um ambiente Linux auto-hospedado, consulte Instrumentação do Linux para SQL Server auto-hospedado.

Pré-requisitos

  • Uma conta New Relic com uma chave de licença válida.

  • Conectividade de rede para o endpoint OTLP da New Relic para sua região.

  • Requisitos do AWS RDS SQL Server:

    • AWS RDS SQL Server 2017 ou posterior.
    • Nome de usuário e senha mestre do RDS.
    • Grupo de segurança que permite conexões de entrada na porta 1433 ou em uma porta personalizada.
  • Requisitos do sistema Linux:

    • O utilitário sqlcmd instalado no seu sistema Linux.

Instalar o NRDOT Collector

Baixe e instale o pacote NRDOT para sua distribuição Linux. Substitua <NRDOT_VERSION> pela tag de versão mais recente da página nrdot-collector-releases.

Importante

Instale o NRDOT Collector em uma instância de EC2 ou máquina local com conectividade de rede com a sua instância do RDS SQL Server. Certifique-se de que o seu grupo de segurança permita conexões de entrada na porta 1433 (ou em uma porta personalizada).

Criar usuário de monitoramento

Execute este script como usuário root para criar o usuário de monitoramento newrelic e conceder as permissões necessárias para coletar métricas do RDS SQL Server.

  1. Crie um arquivo chamado nr-grant-permission-rds.sql.

  2. Cole o seguinte script SQL para criar o usuário de monitoramento newrelic e substitua <YOUR_PASSWORD> pela senha desejada:

    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
  3. Execute o script usando sqlcmd com qualquer login que tenha permissão para criar logins e conceder permissões em nível de servidor (por exemplo, o login sa ou outra conta com a função sysadmin). Substitua <YOUR-RDS-ENDPOINT> pelo seu endpoint do RDS e <YOUR_MASTER_PASSWORD> pela sua senha mestra:

bash
$
sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<YOUR_MASTER_PASSWORD>' -C -i nr-grant-permission-rds.sql
  1. (Opcional) Verifique se o usuário foi criado com sucesso e possui as permissões corretas:
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';"

Dica

  • Use seu nome de usuário e senha mestre do RDS para executar estes comandos. O script exclui automaticamente o banco de dados rdsadmin, que é reservado pela AWS.
  • Para gerenciar informações confidenciais com segurança, como credenciais de banco de dados, armazene-as em ferramentas de gerenciamento de segredos.

Configurar o NRDOT Collector

Escolha sua opção de configuração com base nos seus requisitos de monitoramento:

  1. Crie um arquivo de configuração chamado mssql-config.yaml:

    bash
    $
    sudo nano /etc/nrdot-collector/mssql-config.yaml
  2. Adicione a seguinte configuração ao arquivo mssql-config.yaml criado na etapa anterior:

configuração completa

Esta configuração se concentra no monitoramento essencial de banco de dados para o seu ambiente RDS. Para habilitar o monitoramento abrangente com todas as métricas disponíveis, consulte a referência de configuração.

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]

Dica

  • O pipeline logs não transporta logs de depuração do coletor ou logs internos do agente. Ele transmite a telemetria de consulta do SQL Server, incluindo texto da consulta, planos de execução e dados de amostra. O receptor nrsqlserver captura essa telemetria por meio dos eventos db.server.query_sample, db.server.top_query, db.server.query_plan e db.server.top_procedure emitidos como registros de log do OpenTelemetry.

  • O evento db.server.top_procedure requer o SQL Server 2017 CU3 ou posterior, que introduziu suporte para sys.dm_exec_procedure_stats.total_spills. Em versões anteriores, esse evento não emite dados e registra um erro. Outros eventos não são afetados. O acesso a sys.dm_exec_procedure_stats requer VIEW SERVER STATE (ou VIEW SERVER PERFORMANCE STATE, dependendo da versão do SQL Server). Além disso, VIEW ANY DEFINITION é necessário para que OBJECT_NAME e OBJECT_SCHEMA_NAME sejam resolvidos corretamente em todos os bancos de dados de usuário, e CONNECT SQL é necessário para configurar as sessões iniciais. O usuário de monitoramento criado em Criar usuário de monitoramento inclui todas as 3 permissões.

Atualize a configuração do NRDOT Collector

Após configurar seu arquivo YAML com as entradas interativas acima, conclua a configuração do NRDOT Collector:

  1. Edite o arquivo de configuração do serviço usando o seguinte comando:

    bash
    $
    sudo nano /etc/nrdot-collector/nrdot-collector.conf
  2. Atualize o caminho da configuração para apontar para o novo arquivo mssql-config.yaml:

    bash
    $
    OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  3. (Opcional) Valide a configuração do Collector NRDOT:

    bash
    $
    sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yaml

    Dica

    Para correlacionar o desempenho do seu aplicativo com as operações de banco de dados, você pode configurar a identificação de serviço de banco de dados. Para mais informações, consulte o guia de configuração da identificação de serviço de banco de dados.

Reiniciar o NRDOT Collector

Após atualizar sua configuração, reinicie o serviço NRDOT Collector:

bash
$
sudo systemctl restart nrdot-collector

Dica

Sempre reinicie o serviço do NRDOT Collector após fazer alterações na configuração para garantir que as novas configurações entrem em vigor.

Encontre e use seus dados

Assim que os dados estiverem sendo coletados, será possível acessar o monitoramento abrangente do banco de dados SQL Server por meio da interface do New Relic.

Para encontrar sua entidade de banco de dados SQL Server no New Relic:

  1. Vá para one.newrelic.com > All capabilities > Databases.

  2. Na dropdown Entity type, selecione MSSQL instance e clique em Apply.

  3. Selecione seu banco de dados SQL Server na lista de entidades.

    Após configurar o monitoramento do SQL Server com o NRDOT, você pode:

Configurar a correlação entre APM e banco de dados

Aprenda a correlacionar o desempenho do seu aplicativo com as operações de banco de dados no New Relic.

Resolução de problemas

Aprenda a solucionar problemas na sua configuração de monitoramento do MSSQL Linux RDS no New Relic.

Referência de métricas

Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.

Copyright © 2026 New Relic Inc.

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