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

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

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

문제 신고

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

|View as Markdown (English)

시사

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

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

OpenTelemetry의 뉴렐릭 배포판(NRDOT) 수집기를 사용하여 데이터베이스 모니터링, 쿼리 분석 및 시스템 상태 메트릭을 통해 SQL Server 성능에 대한 포괄적인 인사이트를 얻으십시오.

대신 뉴렐릭 UI를 통해 이를 설치하려면 one.newrelic.com > Integrations & Agents > MSSQL (OpenTelemetry) 로 이동하십시오. 화면의 지시에 따라 통합을 설정하십시오. 이 페이지는 CLI 설치 경로만 다룹니다.

Linux RDS 환경에서 SQL Server를 사용하는 경우 RDS용 Linux 계측을 참조하십시오.

전제 조건

  • 유효한 라이선스 키가 있는 뉴렐릭 계정

  • 해당 리전의 뉴렐릭 OTLP 엔드포인트

  • SQL Server 요구 사항, 다음이 필요합니다:

    • SQL Server 2017 이상
    • SQL Server에 대한 관리자 액세스 권한(sysadmin 역할 또는 동등한 권한)
    • 포트 1433 또는 사용자 지정 포트에서의 수집기와 SQL Server 간 네트워크 연결
    • sqlcmd Linux 시스템에 설치된 유틸리티
  • 뉴렐릭 OTLP 엔드포인트에 대한 네트워크 연결

미리보기에 등록하십시오

이 통합은 뉴렐릭 공개 프리뷰 프로그램의 일환으로 제공됩니다. Previews & Trials 페이지에서 옵트인하려면 조직 관리자에게 문의하십시오.

NRDOT Collector설치하세요

Linux 배포판용 NRDOT 패키지를 다운로드하고 설치하십시오. <NRDOT_VERSION>을(를) nrdot-collector-releases 페이지의 최신 릴리스 태그로 교체하십시오.

쿼리 성능 모니터링을 위한 인프라 수준 메트릭을 보려면 SQL Server 인스턴스와 동일한 호스트에 NRDOT Collector를 설치하는 것을 권장합니다.

모니터링 사용자 생성

루트 사용자로 이 스크립트를 실행하여 newrelic 모니터링 사용자를 생성하고 SQL Server 메트릭 수집에 필요한 권한을 부여하십시오.

  1. nr-grant-permission.sql이라는 이름으로 설정 파일을 생성하십시오.

  2. 다음 SQL 스크립트를 붙여넣어 newrelic 모니터링 사용자를 생성하고 <YOUR_PASSWORD>을(를) 원하는 비밀번호로 변경하십시오:

    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. sqlcmd을(를) 사용하여 스크립트를 실행하십시오. <YOUR_SA_PASSWORD>을(를) SQL Server 관리자 비밀번호로 바꾸십시오:

    bash
    $
    sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_PASSWORD>' -C -i nr-grant-permission.sql
  4. (선택 사항) 올바른 권한을 가진 사용자가 성공적으로 생성되었는지 확인하십시오:

    bash
    $
    sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_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';"

    예상 출력:

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

    이 출력은 필요한 서버 수준 권한을 가지고 사용자가 성공적으로 생성되었음을 확인시켜 줍니다.

    데이터베이스 자격 증명과 같은 민감한 정보를 안전하게 관리하려면 비밀 관리 도구에 저장하십시오.

NRDOT Collector구성

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

  1. 이름이 mssql-config.yaml인 설정 파일을 생성합니다:

    bash
    $
    sudo nano /etc/nrdot-collector/mssql-config.yaml
  2. 이전 단계에서 생성한 mssql-config.yaml 파일에 다음 설정을 추가하십시오:

    전체 설정

    이 최소 설정은 호스트 인프라 메트릭 없이 데이터베이스 모니터링에만 중점을 둡니다. 전체 기능 모니터링을 활성화하려면 설정 참조를 확인하십시오.

    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 top query and query sample log collection
    38
    events:
    39
    db.server.query_sample:
    40
    enabled: true
    41
    db.server.top_query:
    42
    enabled: true
    43
    44
    # Top query collection configuration
    45
    top_query_collection:
    46
    lookback_time: 60s
    47
    max_query_sample_count: 1000
    48
    top_query_count: 250
    49
    collection_interval: 60s
    50
    51
    collect_full_query_text: true
    52
    allowed_comment_keys:
    53
    - nr_service_guid
    54
    55
    # Query sample collection configuration
    56
    query_sample_collection:
    57
    max_rows_per_query: 100
    58
    59
    processors:
    60
    memory_limiter:
    61
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    62
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    63
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    64
    65
    batch:
    66
    67
    exporters:
    68
    otlp:
    69
    endpoint: https://otlp.nr-data.net:4318
    70
    headers:
    71
    api-key: YOUR_LICENSE_KEY
    72
    tls:
    73
    insecure: false
    74
    compression: gzip
    75
    76
    service:
    77
    telemetry:
    78
    metrics:
    79
    level: none
    80
    81
    pipelines:
    82
    metrics:
    83
    receivers: [nrsqlserver]
    84
    processors: [memory_limiter, batch]
    85
    exporters: [otlp]
    86
    87
    logs:
    88
    receivers: [nrsqlserver]
    89
    processors: [memory_limiter, batch]
    90
    exporters: [otlp]

NRDOT Collector 설정 업데이트

위의 대화형 입력으로 YAML 파일을 구성한 후, NRDOT Collector 설정을 완료하십시오:

  1. 서비스 설정 파일을 편집하십시오:

    bash
    $
    sudo nano /etc/nrdot-collector/nrdot-collector.conf
  2. mssql-config.yaml 파일을 가리키도록 설정 경로를 업데이트하십시오:

    bash
    $
    OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  3. (선택 사항) NRDOT Collector 설정을 확인하십시오:

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

    애플리케이션 성능을 데이터베이스 작업과 연관시키려면 데이터베이스 서비스 식별을 설정할 수 있습니다. 자세한 내용은 데이터베이스 서비스 식별 설정 가이드를 참조하십시오.

NRDOT Collector를 다시 시작하십시오

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

bash
$
sudo systemctl restart nrdot-collector

새로운 설정이 적용되도록 설정 변경 후에는 항상 NRDOT Collector 서비스를 다시 시작하십시오.

데이터 찾기 및 사용

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

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

  1. one.newrelic.com > All capabilities > Databases 으)로 이동합니다.

  2. Entity type 드롭다운 메뉴에서 MSSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.

  3. 모임 목록에서 SQL Server 데이터베이스를 선택합니다.

    NRDOT로 SQL Server 모니터링을 설정한 후 다음을 수행할 수 있습니다:

APM-데이터베이스 상관관계 설정

뉴렐릭에서 애플리케이션 성능을 데이터베이스 작업과 연관시키는 방법을 알아보십시오.

문제점 해결

뉴렐릭에서 MSSQL Windows 모니터링 설정 문제를 해결하는 방법을 알아보십시오.

지표 참조

NRDOT Collector가 수집하는 사용 가능한 메트릭에 대해 알아보십시오.

Copyright © 2026 New Relic Inc.

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