Configure el monitoreo de Microsoft SQL Server mediante el NRDOT Collector en entornos de Windows para monitorear instancias de AWS RDS for SQL Server, mediante la autenticación de dominio de Windows. Para monitorear en un entorno autohospedado, consulte la instrumentación autohospedada de Windows.
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.
Esta página cubre la autenticación de dominio de Windows. Si el entorno usa un método de autenticación diferente, consulte Autenticación de SQL Server o gMSA.
Requisitos previos
Antes de monitorear Microsoft SQL Server con NRDOT mediante la autenticación de dominio de Windows, asegúrese de que el entorno cumpla con estos requisitos:
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 SQL Server:
- SQL Server 2017 o posterior en Amazon RDS.
- Credenciales de usuario maestro de RDS o credenciales para un inicio de sesión de SQL Server con el rol
rds_superuser. - Grupo de seguridad de RDS configurado para permitir conexiones en el puerto
1433o en un puerto personalizado. - SQL Server Management Studio (SSMS) o la utilidad
sqlcmd. - Instancia de RDS asociada al servicio AWS Active Directory.
Requisitos de autenticación de dominio de Windows:
- Un entorno de dominio de Windows con Active Directory.
- Una instancia EC2 de Windows unida a un dominio.
- RDS SQL Server configurado para aceptar la autenticación de Windows.
- Una cuenta de usuario de dominio para que la utilice el NRDOT Collector.
La URL del extremo de su servidor SQL de RDS, que se puede encontrar en su consola de AWS RDS en Conectividad y seguridad. Para obtener más información, consulte la documentación de AWS RDS.
Instalar NRDOT Collector
Instale el Collector de NRDOT en una instancia EC2 de Windows unida al dominio o en una máquina local de Windows que sea parte del mismo dominio y pueda conectarse a su instancia de RDS SQL Server.
Importante
Para el monitoreo de RDS, instale el Collector NRDOT en una instancia EC2 en la misma VPC que su instancia de RDS para obtener una conectividad de red óptima y una menor latencia.
- Descarga e instala el NRDOT Collector usando 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 SilentlyContinueCrear inicio de sesión de dominio de Windows
Conéctese a la instancia de RDS SQL Server mediante SQL Server Management Studio (SSMS) o sqlcmd con privilegios administrativos.
En SQL Server Management Studio (SSMS), ejecute el siguiente script para crear un inicio de sesión para la cuenta gMSA y otorgar los permisos necesarios. Reemplace todas las apariciones de <YOUR_DOMAIN>\<YOUR_DOMAIN_USER> con el nombre de dominio y cuenta real.
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;GOSugerencia
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.
Ejecutar como usuario de dominio
Configure el servicio NRDOT Collector para que se ejecute como su usuario de dominio usando PowerShell. Reemplace
YOUR_DOMAIN\YOUR_USER_ACCOUNTcon el nombre de su dominio y cuenta:# 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 la identidad del servicio:
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName# Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNT
Configurar el Colector NRDOT
Cree un archivo de configuración llamado
mssql-config.yamlen PowerShell como administrador:New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType FileAgregue la siguiente configuración al archivo
mssql-config.yamlcreado en el paso anterior:
Importante
La autenticación de dominio de Windows utiliza seguridad integrada, que usa el mismo enfoque de configuración que la autenticación gMSA. Actualice el valor del servidor datasource a su extremo de RDS. El servicio NRDOT se autenticará mediante la cuenta de dominio que configuró en Crear inicio de sesión de dominio de Windows.
configuración completa
Esta configuración se centra en el monitoreo esencial de la base de datos para el entorno RDS. Para habilitar un monitoreo integral con todas las métricas disponibles, consulte la referencia de configuración.
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]Sugerencia
El pipeline
logsno 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 receptornrsqlservercaptura esta telemetría a través de los eventosdb.server.query_sample,db.server.top_query,db.server.query_planydb.server.top_procedureemitidos como registros de log de OpenTelemetry.El evento
db.server.top_procedurerequiere SQL Server 2017 CU3 o posterior, que introdujo la compatibilidad consys.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 asys.dm_exec_procedure_statsrequiereVIEW SERVER STATE(oVIEW SERVER PERFORMANCE STATE, según la versión de SQL Server). Además, se requiereVIEW ANY DEFINITIONpara queOBJECT_NAMEyOBJECT_SCHEMA_NAMEse resuelvan correctamente en todas las bases de datos de usuario, y se necesitaCONNECT SQLpara configurar las sesiones iniciales. La cuenta que configuró en Crear inicio de sesión de dominio de Windows ya tiene los 3 permisos.
Actualizar el registro del servicio de Windows
Actualice el registro de servicios de Windows para usar el nuevo archivo
mssql-config.yamlmediante uno de los siguientes métodos:Para PowerShell: ejecute el siguiente 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 el símbolo del sistema: si PowerShell no está disponible, use el símbolo del sistema en su lugar y ejecute el siguiente 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 la configuración del NRDOT Collector para asegurarse de que tenga el formato correcto y funcione correctamente:
bash$& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\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:
$net stop nrdot-collector$net start nrdot-collectorVerifique que el servicio se esté ejecutando bajo la cuenta de dominio comprobando los servicios de Windows (services.msc). La columna Log On As debería mostrar su cuenta de dominio. Por ejemplo, CORP\SQLMonitor.
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:
Vaya a https://one.newrelic.com > All Capabilities > Databases.
En el menú desplegable Entity type, seleccione MSSQL instance y luego haga clic en Apply.
Seleccione su base de datos SQL Server de la lista de entidades.
Después de configurar el monitoreo de SQL Server con NRDOT, puede:
- Crea dashboards personalizados para visualizar las métricas de tu base de datos
- Configura alertas para umbrales críticos de rendimiento de la base de datos
- Explore los datos con las capacidades de consulta de New Relic
Documentación relacionada
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 Windows en New Relic.
Referencia de métricas
Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.