Configure o monitoramento do Microsoft SQL Server usando o NRDOT Collector em ambientes Windows para monitorar instâncias do AWS RDS for SQL Server, usando a autenticação de domínio do Windows. Para monitorar em um ambiente auto-hospedado, consulte a instrumentação auto-hospedada do Windows.
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.
Esta página aborda a autenticação de domínio do Windows. Se o seu ambiente usa um método de autenticação diferente, consulte Autenticação do SQL Server ou gMSA.
Pré-requisitos
Antes de monitorar seu Microsoft SQL Server com o NRDOT usando a autenticação de domínio do Windows, certifique-se de que seu ambiente atenda a estes 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 no Amazon RDS.
- Credenciais de usuário mestre do RDS ou credenciais para um login do SQL Server com a função
rds_superuser. - Grupo de segurança do RDS configurado para permitir conexões na porta
1433ou em uma porta personalizada. - SQL Server Management Studio (SSMS) ou o utilitário
sqlcmd. - Instância RDS associada ao serviço AWS Active Directory.
Requisitos de autenticação de domínio do Windows:
- Um ambiente de domínio Windows com Active Directory.
- Uma instância de EC2 do Windows associada ao domínio.
- RDS SQL Server configurado para aceitar Autenticação do Windows.
- Uma conta de usuário de domínio para uso do NRDOT Collector.
A URL do endpoint do seu RDS SQL Server, que pode ser encontrada no seu AWS RDS Console em Connectivity & security. Para obter mais informações, consulte a documentação do AWS RDS.
Instalar o NRDOT Collector
Instale o NRDOT Collector em uma instância de EC2 do Windows ingressada no domínio ou em uma máquina local do Windows que faça parte do mesmo domínio e possa se conectar à sua instância do SQL Server do RDS.
Importante
Para o monitoramento do RDS, instale o NRDOT Collector em uma instância de EC2 na mesma VPC que a sua instância do RDS para obter conectividade de rede ideal e menor latência.
- Baixe e instale o NRDOT Collector usando o PowerShell:
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'$NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name$WebClient = New-Object System.Net.WebClient$WebClient.Headers.Add("User-Agent", "Mozilla/5.0")$WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi")Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -WaitGet-Service nrdot-collector -ErrorAction SilentlyContinueCriar login de domínio do Windows
Conecte-se à sua instância do RDS SQL Server usando o SQL Server Management Studio (SSMS) ou sqlcmd com privilégios administrativos.
No seu SQL Server Management Studio (SSMS), execute o seguinte script para criar um login para a sua conta gMSA e conceder as permissões necessárias. Substitua todas as ocorrências de <YOUR_DOMAIN>\<YOUR_DOMAIN_USER> pelo seu domínio e nome de conta reais.
USE [master];GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FROM WINDOWS;GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];GO
-- Grant access to all databases (required for query monitoring and tempdb metrics)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;OPEN db_cursor;FETCH NEXT FROM db_cursor INTO @name;WHILE @@FETCH_STATUS = 0BEGIN BEGIN TRY EXEC('USE [' + @name + ']; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>'') BEGIN CREATE USER [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>]; END; GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];'); END TRY BEGIN CATCH PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE(); END CATCH FETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GODica
Para gerenciar informações confidenciais com segurança, como credenciais de banco de dados, armazene-as em ferramentas de gerenciamento de segredos.
Executar como usuário de domínio
Configure o serviço NRDOT Collector para ser executado como seu usuário de domínio usando o PowerShell. Substitua
YOUR_DOMAIN\YOUR_USER_ACCOUNTpelo seu domínio e nome de conta:# Configure service to use domain account# The space after obj= and password= is required syntax for sc.exesc.exe config "nrdot-collector" obj= "YOUR_DOMAIN\YOUR_USER_ACCOUNT" password= "<YOUR_PASSWORD>"# Restart the serviceRestart-Service nrdot-collectorValide a identidade do serviço:
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName# Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNT
Configurar o NRDOT Collector
Crie um arquivo de configuração chamado
mssql-config.yamlno PowerShell como administrador:New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType FileAdicione a seguinte configuração ao arquivo
mssql-config.yamlcriado na etapa anterior:
Importante
A Autenticação de domínio do Windows usa segurança integrada, que usa a mesma abordagem de configuração da autenticação gMSA. Atualize o valor do servidor datasource para o seu endpoint do RDS. O serviço NRDOT será autenticado usando a conta de domínio que você configurou em Criar login de domínio do Windows.
configuração completa
Esta configuração concentra-se 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.
1receivers:2nrsqlserver:3 collection_interval: 15s4 datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"5
6 # Enable comprehensive database metrics7 metrics:8 sqlserver.database.count:9 enabled: true10 sqlserver.database.io:11 enabled: true12 sqlserver.database.latency:13 enabled: true14 sqlserver.database.operations:15 enabled: true16 sqlserver.database.tempdb.space:17 enabled: true18 sqlserver.database.tempdb.version_store.size:19 enabled: true20 sqlserver.deadlock.rate:21 enabled: true22 sqlserver.os.wait.duration:23 enabled: true24 sqlserver.processes.blocked:25 enabled: true26 sqlserver.memory.grants.pending.count:27 enabled: true28 sqlserver.database.file.size:29 enabled: true30 sqlserver.memory.area:31 enabled: true32
33 # Enable query sample, top query, query plan, and top procedure log collection34 events:35 db.server.query_sample:36 enabled: true37 db.server.top_query:38 enabled: true39 db.server.query_plan:40 enabled: true41 db.server.top_procedure:42 enabled: true43
44 # Top query collection configuration45 top_query_collection:46 lookback_time: 60s47 max_query_sample_count: 100048 top_query_count: 25049 collection_interval: 60s50 collect_full_query_text: true51 allowed_comment_keys:52 - nr_service_guid53
54 # Query sample collection configuration55 query_sample_collection:56 max_rows_per_query: 10057 collect_full_query_text: true58 allowed_comment_keys:59 - nr_service_guid60
61 # Top stored procedure collection configuration62 top_procedure_collection:63 max_procedure_sample_count: 100064 top_procedure_count: 25065 collection_interval: 60s66
67 resource_attributes:68 db.system.version:69 enabled: true70 sqlserver.db.edition:71 enabled: true72
73processors:74memory_limiter:75 check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}76 limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}77 spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}78
79exporters:80otlp:81 endpoint: https://otlp.nr-data.net:431882 headers:83 api-key: YOUR_LICENSE_KEY84 tls:85 insecure: false86 compression: gzip87
88 sending_queue:89 enabled: true90 sizer: bytes91 queue_size: 100_000_00092 num_consumers: 1093 batch:94 sizer: bytes95 max_size: 1_000_00096 min_size: 097 flush_timeout: 5s98
99service:100telemetry:101 metrics:102 level: none103
104pipelines:105 metrics:106 receivers: [nrsqlserver]107 processors: [memory_limiter]108 exporters: [otlp]109
110 logs:111 receivers: [nrsqlserver]112 processors: [memory_limiter]113 exporters: [otlp]Dica
O pipeline
logsnã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 receptornrsqlservercaptura essa telemetria por meio dos eventosdb.server.query_sample,db.server.top_query,db.server.query_planedb.server.top_procedureemitidos como registros de log do OpenTelemetry.O evento
db.server.top_procedurerequer o SQL Server 2017 CU3 ou posterior, que introduziu suporte parasys.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 asys.dm_exec_procedure_statsrequerVIEW SERVER STATE(ouVIEW SERVER PERFORMANCE STATE, dependendo da versão do SQL Server). Além disso,VIEW ANY DEFINITIONé necessário para queOBJECT_NAMEeOBJECT_SCHEMA_NAMEsejam resolvidos corretamente em todos os bancos de dados de usuário, eCONNECT SQLé necessário para configurar as sessões iniciais. A conta que você configurou em Criar login de domínio do Windows já possui todas as 3 permissões.
Atualizar Registro de Serviço do Windows
Atualize o Registro de Serviço do Windows para usar o novo arquivo
mssql-config.yamlusando um dos seguintes métodos:Para PowerShell: execute o seguinte comando como administrador:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'Para prompt de comando: se o PowerShell não estiver disponível, use o prompt de comando e execute o seguinte comando como administrador:
bash$sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""Valide a configuração do Collector NRDOT para garantir que esteja formatada corretamente e funcione adequadamente:
bash$& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\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:
$net stop nrdot-collector$net start nrdot-collectorVerifique se o serviço está sendo executado na conta de domínio verificando os Serviços do Windows (services.msc). A coluna Log On As deve mostrar sua conta de domínio. Por exemplo, CORP\SQLMonitor.
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:
Vá para https://one.newrelic.com > All Capabilities > Databases.
Na dropdown Entity type, selecione MSSQL instance e clique em Apply.
Selecione seu banco de dados SQL Server na lista de entidades.
Após configurar o monitoramento do SQL Server com o NRDOT, você pode:
- Crie dashboards personalizados para visualizar suas métricas de banco de dados
- Configure alertas para limites críticos de desempenho do banco de dados
- Explore seus dados usando os recursos de consulta do New Relic
Documentação relacionada
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 Windows no New Relic.
Referência de métricas
Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.