• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

NRDOT를 사용한 Windows 자체 호스팅 MSSQL 모니터링

시사

이 기능은 아직 개발 중이지만 꼭 사용해 보시기 바랍니다!

이 기능은 현재 사전 출시 정책 에 따라 미리보기의 일부로 제공됩니다.

물리적 서버, 가상 머신 및 독립 실행형 Windows 설치를 포함한 Windows 자체 호스팅 환경에서 NRDOT 수집기를 사용하여 Microsoft SQL Server 모니터링을 설정합니다.

SQL Server 보안 설정에 따라 세 가지 인증 방법 중 하나를 선택하여 NRDOT Collector를 SQL Server 인스턴스에 연결할 수 있습니다:

전제 조건

환경이 호환성 및 필수 조건을 충족하는지 확인하세요.

NRDOT Collector설정하세요

Windows 시스템에 NRDOT Collector를 설치합니다.

  1. PowerShell을 사용하여 NRDOT Collector를 다운로드하고 설치합니다:

    [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`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

데이터베이스 사용자 구성

다음 스크립트를 root user/sysadmin 사용자 권한으로 실행하여 newrelic 모니터링 사용자를 생성하고 전역 읽기 권한을 부여하십시오.

newrelic 모니터링 사용자를 생성하려면 SQL Server Management Studio(SSMS)를 사용하여 다음 스크립트를 실행하십시오.

USE [master];
GO
CREATE LOGIN [newrelic] WITH PASSWORD = '<PASSWORD>';
GO
GRANT VIEW SERVER STATE TO [newrelic];
GRANT VIEW ANY DEFINITION TO [newrelic];
GRANT VIEW ANY DATABASE TO [newrelic];
GO
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 = 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

NRDOT Collector구성

모니터링 요구 사항에 따라 설정 유형을 선택하십시오:

구성 매개변수

다음 표에서는 nrsqlserver 수신자에 대한 주요 설정 초기화에 대해 설명합니다.

매개변수설명
<YOUR_USERNAME>인증을 위해 데이터베이스 사용자 이름을 입력하세요.
<YOUR_PASSWORD>인증을 위해 데이터베이스 비밀번호를 입력하세요.
<YOUR_SERVER>SQL Server 호스트명 또는 IP 주소를 입력하십시오.
<YOUR_PORT>SQL Server 포트 번호를 입력합니다. 기본값은 1433입니다.
<YOUR_OTLP_ENDPOINT>뉴렐릭 OTLP 엔드포인트를 입력하세요. 자세한 내용은 뉴렐릭 OTLP 엔드포인트 문서를 참조하세요.
<YOUR_LICENSE_KEY>귀하의 블루 클러스터 키를 입력하세요.
collection_interval데이터베이스 메트릭을 수집하는 간격(초)입니다. 기본: 15s

참고: 사용 가능한 모든 메트릭을 활성화하는 경우 메모리 제한기가 데이터를 삭제하지 않도록 limit_mib 값(예: 1,000)을 늘리세요.

참고: max_concurrent_queries 옵션은 각 스크랩 주기 동안 수신기가 SQL Server에 대해 병렬로 실행하는 메트릭 쿼리 수를 제어합니다.

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windows 서비스 레지스트리 업데이트

새 mssql-config.yaml 파일을 사용하도록 Windows 서비스 레지스트리를 업데이트합니다.

방법 1: PowerShell

관리자 권한으로 PowerShell에서 다음 명령을 실행합니다:

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"'

방법 2: 명령 프롬프트(대안)

PowerShell을 사용할 수 없는 경우 대신 명령 프롬프트를 사용할 수 있습니다:

  1. 시작 메뉴를 열고 다음을 입력합니다 cmd
  2. 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 Run as administrator [관리자 권한으로 실행]을 선택합니다
  3. 검은색 CMD 창에 이 명령을 그대로 복사하여 붙여넣고 Enter를 누릅니다:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector 설정 유효성 검사

NRDOT Collector 설정의 유효성을 검사하여 형식이 올바르고 제대로 작동하는지 확인합니다.

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOT 수집기 재시작

설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

설정을 변경한 후에는 반드시 NRDOT 수집기 서비스를 다시 시작하여 새 설정이 적용되도록 하십시오.

(선택 사항) APM-데이터베이스 상관 관계 설정

애플리케이션 성능과 데이터베이스 작업 간의 상관관계를 파악하려면 데이터베이스 서비스 식별을 설정할 수 있습니다. 이를 통해 특정 데이터베이스워크로드 기능을 생성하는 기능을 정확하게 확인할 수 있습니다. 자세한 내용은 뉴렐릭에서 APM- 데이터베이스 상관 관계를 가져오기 위한 데이터베이스 서비스 식별 설정을 참조하세요.

중요

APM 에서 데이터베이스 성능 데이터를 보려면 두 가지 모두 동일한 뉴렐릭 계정에 있어야 합니다. 만약 데이터가 서로 다른 뉴럴릭 계정에 있다면, 데이터를 보려면 두 계정 모두에 접근 권한이 있어야 합니다.

(선택 사항) 비밀 관리 구성

비밀 관리 기능을 사용하면 데이터베이스 자격 증명과 같은 중요한 정보를 안전하게 관리할 수 있습니다. 이렇게 하면 구성 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화할 수 있습니다. 자세한 내용은 비밀 관리 부분 을 참조하십시오.

데이터 찾기 및 사용

데이터가 수집되면 뉴렐릭의 UI 통해 포괄적인 SQL Server 데이터베이스 모니터링에 액세스할 수 있습니다.

뉴렐릭에서 SQL Server 데이터베이스를 찾으려면 다음을 수행하세요.

  1. https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
  2. Entity type 드롭다운 메뉴에서 MSSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
  3. 모임 목록에서 SQL Server 데이터베이스를 선택합니다.

전제 조건

환경이 호환성 및 필수 조건을 충족하는지 확인하세요.

Windows 인증을 위한 추가 요구 사항:

  • Active Directory가 있는 Windows 도메인 환경
  • Windows 인증을 허용하도록 설정된 SQL Server
  • 적절한 SQL Server 권한이 있는 도메인 사용자 계정
  • 도메인 계정 컨텍스트에서 실행되는 NRDOT Collector 서비스

NRDOT Collector설정하세요

Windows 시스템에 NRDOT Collector를 설치합니다.

  1. PowerShell을 사용하여 NRDOT Collector를 다운로드하고 설치합니다:

    [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`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Windows 인증 설정 확인

SQL Server가 Windows 인증을 위해 설정되어 있는지 확인하고 연결을 확인합니다.

  1. Windows 사용자 이름 확인:

    SELECT SYSTEM_USER;
  2. 아래 명령을 실행하여 필요한 권한이 부여되었는지 확인합니다 (1단계의 사용자 이름으로 <account_name> 업데이트):

    DECLARE @TargetUser SYSNAME = '<account_name>'; -- <-- Set your Windows user here
    -- 1. Create the checklist of required permissions from your script
    DECLARE @Checklist TABLE (Scope NVARCHAR(50), [Database] SYSNAME, [Permission] NVARCHAR(128));
    INSERT INTO @Checklist VALUES
    ('Server', 'ALL', 'VIEW SERVER STATE'),
    ('Server', 'ALL', 'VIEW ANY DEFINITION'),
    ('Server', 'ALL', 'VIEW ANY DATABASE');
    INSERT INTO @Checklist
    SELECT 'Database Role', [name], 'db_datareader' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0
    UNION ALL
    SELECT 'Database Explicit', [name], 'VIEW DATABASE STATE' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0
    UNION ALL
    SELECT 'Database Explicit', [name], 'VIEW DEFINITION' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0;
    -- 2. Gather existing explicit permissions
    WITH ExplicitPerms AS (
    SELECT 'Server' AS Scope, CAST('ALL' AS NVARCHAR(128)) COLLATE DATABASE_DEFAULT AS [Database], p.permission_name COLLATE DATABASE_DEFAULT AS [Permission]
    FROM sys.server_permissions p JOIN sys.server_principals l ON p.grantee_principal_id = l.principal_id WHERE l.name = @TargetUser
    UNION ALL
    SELECT 'Database Role', d.name COLLATE DATABASE_DEFAULT, r.name COLLATE DATABASE_DEFAULT
    FROM sys.databases d CROSS APPLY (SELECT dp_role.name FROM sys.database_role_members drm JOIN sys.database_principals dp_role ON drm.role_principal_id = dp_role.principal_id JOIN sys.database_principals dp_user ON drm.member_principal_id = dp_user.principal_id JOIN sys.server_principals sp ON dp_user.sid = sp.sid WHERE sp.name = @TargetUser) r WHERE d.state = 0
    UNION ALL
    SELECT 'Database Explicit', d.name COLLATE DATABASE_DEFAULT, p.permission_name COLLATE DATABASE_DEFAULT
    FROM sys.databases d CROSS APPLY (SELECT db_p.permission_name FROM sys.database_permissions db_p JOIN sys.database_principals dp_user ON db_p.grantee_principal_id = dp_user.principal_id JOIN sys.server_principals sp ON dp_user.sid = sp.sid WHERE sp.name = @TargetUser) p WHERE d.state = 0
    )
    -- 3. Output the exact verification matrix
    SELECT
    chk.Scope,
    chk.[Database],
    chk.[Permission] AS [Required Permission],
    CASE
    WHEN exp.[Permission] IS NOT NULL THEN 'GRANTED'
    WHEN IS_SRVROLEMEMBER('sysadmin', @TargetUser) = 1 THEN 'PASSED (via SysAdmin Role)'
    ELSE 'MISSING'
    END AS [Verification Status]
    FROM @Checklist chk
    LEFT JOIN ExplicitPerms exp ON chk.Scope = exp.Scope AND chk.[Database] = exp.[Database] AND chk.[Permission] = exp.[Permission]
    ORDER BY chk.Scope, chk.[Database], chk.[Permission];
  3. 필요한 권한이 없는 경우 다음 권한 부여를 실행합니다(<account_name> 을(를) Windows 계정으로 대체):

    USE [master];
    GO
    -- 1. Grant Instance-level permissions to your Windows Account
    GRANT VIEW SERVER STATE TO [<account_name>];
    GRANT VIEW ANY DEFINITION TO [<account_name>];
    GRANT VIEW ANY DATABASE TO [<account_name>];
    GO
    -- 2. Loop through all user databases and grant read/visibility permissions
    DECLARE @name SYSNAME;
    DECLARE @sql NVARCHAR(MAX);
    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
    PRINT 'Granting permissions on database: ' + @name;
    -- Create the database user mapping if it doesn't exist, then grant roles
    SET @sql = '
    USE [' + @name + '];
    IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<account_name>'')
    BEGIN
    CREATE USER [<account_name>] FOR LOGIN [<account_name>];
    END;
    GRANT VIEW DATABASE STATE TO [<account_name>];
    GRANT VIEW DEFINITION TO [<account_name>];
    ALTER ROLE db_datareader ADD MEMBER [<account_name>];';
    EXEC sp_executesql @sql;
    PRINT 'Success: ' + @name;
    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

    중요

    중요한 참고 사항:

    • <account_name> 의 모든 인스턴스를 실제 Windows 계정 이름으로 바꿉니다(예: ComputerName\Username)
    • SQL Server Management Studio(SSMS) 또는 sqlcmd 유틸리티를 사용하여 이 스크립트를 실행합니다.
    • 확인 스크립트는 누락된 권한을 정확히 보여줍니다

NRDOT Collector구성

필요에 따라 모니터링 설정을 선택합니다:

구성 매개변수

다음 표에서는 nrsqlserver 수신자에 대한 주요 설정 초기화에 대해 설명합니다.

매개변수설명
<YOUR_HOSTNAME>SQL Server 호스트명 또는 IP 주소를 입력하십시오.
<YOUR_PORT>SQL Server 포트 번호를 입력합니다. 기본값은 1433입니다.
<YOUR_OTLP_ENDPOINT>뉴렐릭 OTLP 엔드포인트를 입력하세요. 자세한 내용은 뉴렐릭 OTLP 엔드포인트 문서를 참조하세요.
<YOUR_LICENSE_KEY>귀하의 블루 클러스터 키를 입력하세요.
collection_interval데이터베이스 메트릭을 수집하는 간격(초)입니다. 기본: 15s

참고: 사용 가능한 모든 메트릭을 활성화하는 경우 메모리 제한기가 데이터를 삭제하지 않도록 limit_mib 값(예: 1,000)을 늘리세요.

참고: max_concurrent_queries 옵션은 각 스크랩 주기 동안 수신기가 SQL Server에 대해 병렬로 실행하는 메트릭 쿼리 수를 제어합니다.

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windows 서비스 레지스트리 업데이트

새 mssql-config.yaml 파일을 사용하도록 Windows 서비스 레지스트리를 업데이트합니다.

방법 1: PowerShell

관리자 권한으로 PowerShell에서 다음 명령을 실행합니다:

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"'

방법 2: 명령 프롬프트(대안)

PowerShell을 사용할 수 없는 경우 대신 명령 프롬프트를 사용할 수 있습니다:

  1. 시작 메뉴를 열고 다음을 입력합니다 cmd
  2. 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 Run as administrator [관리자 권한으로 실행]을 선택합니다
  3. 검은색 CMD 창에 이 명령을 그대로 복사하여 붙여넣고 Enter를 누릅니다:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector 설정 유효성 검사

NRDOT Collector 설정의 유효성을 검사하여 형식이 올바르고 제대로 작동하는지 확인합니다.

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOT 수집기 재시작

설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

설정을 변경한 후에는 반드시 NRDOT 수집기 서비스를 다시 시작하여 새 설정이 적용되도록 하십시오.

(선택 사항) APM-데이터베이스 상관 관계 설정

애플리케이션 성능과 데이터베이스 작업 간의 상관관계를 파악하려면 데이터베이스 서비스 식별을 설정할 수 있습니다. 이를 통해 특정 데이터베이스워크로드 기능을 생성하는 기능을 정확하게 확인할 수 있습니다. 자세한 내용은 뉴렐릭에서 APM- 데이터베이스 상관 관계를 가져오기 위한 데이터베이스 서비스 식별 설정을 참조하세요.

중요

APM 에서 데이터베이스 성능 데이터를 보려면 두 가지 모두 동일한 뉴렐릭 계정에 있어야 합니다. 만약 데이터가 서로 다른 뉴럴릭 계정에 있다면, 데이터를 보려면 두 계정 모두에 접근 권한이 있어야 합니다.

(선택 사항) 비밀 관리 구성

비밀 관리 기능을 사용하면 데이터베이스 자격 증명과 같은 중요한 정보를 안전하게 관리할 수 있습니다. 이렇게 하면 구성 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화할 수 있습니다. 자세한 내용은 비밀 관리 부분 을 참조하십시오.

데이터 찾기 및 사용

데이터가 수집되면 뉴렐릭의 UI 통해 포괄적인 SQL Server 데이터베이스 모니터링에 액세스할 수 있습니다.

뉴렐릭에서 SQL Server 데이터베이스를 찾으려면 다음을 수행하세요.

  1. https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
  2. Entity type 드롭다운 메뉴에서 MSSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
  3. 모임 목록에서 SQL Server 데이터베이스를 선택합니다.

전제 조건

환경이 호환성 및 필수 조건을 충족하는지 확인하세요.

gMSA(그룹 관리 서비스 계정)에 대한 추가 요구 사항:

  • gMSA를 지원하는 Active Directory 환경
  • SQL Server 액세스를 위해 생성되고 구성된 gMSA 계정
  • Windows 호스트는 도메인에 가입되어 있어야 하며 gMSA 계정을 사용하도록 권한이 부여되어야 합니다

NRDOT Collector설정하세요

Windows 시스템에 NRDOT Collector를 설치합니다.

  1. PowerShell을 사용하여 NRDOT Collector를 다운로드하고 설치합니다:

    [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`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Microsoft SQL Server 활성화

SSMS를 열고, Windows 인증을 통해 로그인한 후, 새 쿼리를 열고 다음 데이터베이스 관리 스크립트를 실행합니다:

USE master;
GO
-- Provision an engine login identity for the gMSA
CREATE LOGIN [<DOMAIN>\<gMSA_NAME>$] FROM WINDOWS;
GO
-- Grant monitoring permissions
GRANT VIEW SERVER STATE TO [<DOMAIN>\<gMSA_NAME>$];
GRANT VIEW ANY DEFINITION TO [<DOMAIN>\<gMSA_NAME>$];
GRANT VIEW ANY DATABASE TO [<DOMAIN>\<gMSA_NAME>$];
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 = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<DOMAIN>\<gMSA_NAME>$'')
BEGIN
CREATE USER [<DOMAIN>\<gMSA_NAME>$] FOR LOGIN [<DOMAIN>\<gMSA_NAME>$];
END;
GRANT VIEW DATABASE STATE TO [<DOMAIN>\<gMSA_NAME>$];');
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

중요

[<DOMAIN>\<gMSA_NAME>$] 실제 gMSA 계정 이름으로 바꾸세요. 끝에 있는 $ 은(는) gMSA 계정에 필요합니다.

gMSA로 실행되도록 NRDOT Collector 서비스 구성

NRDOT Collector를 설치한 후 PowerShell을 사용하여 gMSA 계정으로 실행되도록 서비스를 설정합니다:

# Stop the NRDOT Collector service
Stop-Service nrdot-collector
# Configure service to use gMSA account
# Use cmd /c to avoid PowerShell treating $ as a variable
cmd /c 'sc config nrdot-collector obj= "DOMAIN\gMSA-Account$" password= ""'
# Verify the configuration
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, StartName
# start the NRDOT Collector service
Start-Service nrdot-collector

중요

DOMAIN\gMSA-Account$ 실제 gMSA 계정 이름으로 바꾸세요. gMSA 계정의 경우 끝에 있는 $ 이 필요합니다. gMSA가 인증을 자동으로 처리하므로 암호가 필요하지 않습니다.

NRDOT Collector구성

필요에 따라 모니터링 설정을 선택합니다:

구성 매개변수

다음 표에서는 nrsqlserver 수신자에 대한 주요 설정 초기화에 대해 설명합니다.

매개변수설명
<YOUR_HOSTNAME>SQL Server 호스트명 또는 IP 주소를 입력하십시오.
<YOUR_PORT>SQL Server 포트 번호를 입력합니다. 기본값은 1433입니다.
<YOUR_OTLP_ENDPOINT>뉴렐릭 OTLP 엔드포인트를 입력하세요. 자세한 내용은 뉴렐릭 OTLP 엔드포인트 문서를 참조하세요.
<YOUR_LICENSE_KEY>귀하의 블루 클러스터 키를 입력하세요.
collection_interval데이터베이스 메트릭을 수집하는 간격(초)입니다. 기본: 15s

참고: 사용 가능한 모든 메트릭을 활성화하는 경우 메모리 제한기가 데이터를 삭제하지 않도록 limit_mib 값(예: 1,000)을 늘리세요.

참고: max_concurrent_queries 옵션은 각 스크랩 주기 동안 수신기가 SQL Server에 대해 병렬로 실행하는 메트릭 쿼리 수를 제어합니다.

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windows 서비스 레지스트리 업데이트

새 mssql-config.yaml 파일을 사용하도록 Windows 서비스 레지스트리를 업데이트합니다.

방법 1: PowerShell

관리자 권한으로 PowerShell에서 다음 명령을 실행합니다:

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"'

방법 2: 명령 프롬프트(대안)

PowerShell을 사용할 수 없는 경우 대신 명령 프롬프트를 사용할 수 있습니다:

  1. 시작 메뉴를 열고 다음을 입력합니다 cmd
  2. 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 Run as administrator [관리자 권한으로 실행]을 선택합니다
  3. 검은색 CMD 창에 이 명령을 그대로 복사하여 붙여넣고 Enter를 누릅니다:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector 설정 유효성 검사

NRDOT Collector 설정의 유효성을 검사하여 형식이 올바르고 제대로 작동하는지 확인합니다.

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOT 수집기 재시작

설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

설정을 변경한 후에는 반드시 NRDOT 수집기 서비스를 다시 시작하여 새 설정이 적용되도록 하십시오.

(선택 사항) APM-데이터베이스 상관 관계 설정

애플리케이션 성능과 데이터베이스 작업 간의 상관관계를 파악하려면 데이터베이스 서비스 식별을 설정할 수 있습니다. 이를 통해 특정 데이터베이스워크로드 기능을 생성하는 기능을 정확하게 확인할 수 있습니다. 자세한 내용은 뉴렐릭에서 APM- 데이터베이스 상관 관계를 가져오기 위한 데이터베이스 서비스 식별 설정을 참조하세요.

중요

APM 에서 데이터베이스 성능 데이터를 보려면 두 가지 모두 동일한 뉴렐릭 계정에 있어야 합니다. 만약 데이터가 서로 다른 뉴럴릭 계정에 있다면, 데이터를 보려면 두 계정 모두에 접근 권한이 있어야 합니다.

(선택 사항) 비밀 관리 구성

비밀 관리 기능을 사용하면 데이터베이스 자격 증명과 같은 중요한 정보를 안전하게 관리할 수 있습니다. 이렇게 하면 구성 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화할 수 있습니다. 자세한 내용은 비밀 관리 부분 을 참조하십시오.

데이터 찾기 및 사용

데이터가 수집되면 뉴렐릭의 UI 통해 포괄적인 SQL Server 데이터베이스 모니터링에 액세스할 수 있습니다.

뉴렐릭에서 SQL Server 데이터베이스를 찾으려면 다음을 수행하세요.

  1. https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
  2. Entity type 드롭다운 메뉴에서 MSSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
  3. 모임 목록에서 SQL Server 데이터베이스를 선택합니다.

다음 단계

Windows 자체 호스팅 모니터링을 설정한 후:

Copyright © 2026 New Relic Inc.

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