• /
  • 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 e configurar o NRDOT para monitoramento do MSSQL com Linux auto-hospedado

|View as Markdown (English)

Obtenha insights abrangentes sobre o desempenho do seu SQL Server com o 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

Se você estiver usando o SQL Server em um ambiente Linux RDS, consulte a Instrumentação Linux para RDS.

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 SQL Server:

    • SQL Server 2017 ou posterior.
    • Acesso administrativo ao SQL Server (função sysadmin ou equivalente).
    • Conectividade de rede entre o coletor e o SQL Server na porta 1433 ou em uma porta personalizada.
    • 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.

Dica

Recomendamos instalar o NRDOT Collector no mesmo host que a instância do SQL Server para visualizar métricas de nível de infraestrutura para monitoramento de desempenho de consultas.

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 SQL Server.

  1. Crie um arquivo de configuração chamado nr-grant-permission.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
  1. Execute o script usando sqlcmd com qualquer login que tenha permissão para criar logins e conceder permissões no nível do servidor (por exemplo, o login sa ou outra conta com a função sysadmin). Substitua <YOUR_ADMIN_USERNAME> e <YOUR_ADMIN_PASSWORD> pelas credenciais desse login:
bash
$
sqlcmd -S <YOUR_DB_ENDPOINT> -U <YOUR_ADMIN_USERNAME> -P '<YOUR_ADMIN_PASSWORD>' -C -i nr-grant-permission.sql
  1. (Opcional) Verifique se o usuário foi criado com sucesso e possui as permissões corretas:
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';"

Saída esperada:

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

Esta saída confirma que seu usuário foi criado com sucesso com as permissões necessárias em nível de servidor.

Dica

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
  1. Adicione a seguinte configuração ao arquivo mssql-config.yaml criado na etapa anterior:

    configuração completa

    Esta configuração concentra-se no monitoramento essencial de banco de dados para o seu ambiente SQL Server. 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
    # 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]

    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:
bash
$
sudo nano /etc/nrdot-collector/nrdot-collector.conf
  1. Atualize o caminho da configuração para apontar para o novo arquivo mssql-config.yaml:
bash
$
OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  1. (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

Saiba como solucionar problemas na sua configuração de monitoramento do MSSQL 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.