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 간 네트워크 연결 sqlcmdLinux 시스템에 설치된 유틸리티
뉴렐릭 OTLP 엔드포인트에 대한 네트워크 연결
미리보기에 등록하십시오
이 통합은 뉴렐릭 공개 프리뷰 프로그램의 일환으로 제공됩니다. Previews & Trials 페이지에서 옵트인하려면 조직 관리자에게 문의하십시오.
NRDOT Collector설치하세요
Linux 배포판용 NRDOT 패키지를 다운로드하고 설치하십시오. <NRDOT_VERSION>을(를) nrdot-collector-releases 페이지의 최신 릴리스 태그로 교체하십시오.
팁
쿼리 성능 모니터링을 위한 인프라 수준 메트릭을 보려면 SQL Server 인스턴스와 동일한 호스트에 NRDOT Collector를 설치하는 것을 권장합니다.
모니터링 사용자 생성
루트 사용자로 이 스크립트를 실행하여 newrelic 모니터링 사용자를 생성하고 SQL Server 메트릭 수집에 필요한 권한을 부여하십시오.
nr-grant-permission.sql이라는 이름으로 설정 파일을 생성하십시오.다음 SQL 스크립트를 붙여넣어
newrelic모니터링 사용자를 생성하고<YOUR_PASSWORD>을(를) 원하는 비밀번호로 변경하십시오:USE [master];GOCREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_PASSWORD>';GO-- Instance-level permissionsGRANT 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 databasesDECLARE @name SYSNAME;DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FORSELECT [name]FROM [master].[sys].[databases]WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')AND [state] = 0; -- Only online databasesOPEN db_cursor;FETCH NEXT FROM db_cursor INTO @name;WHILE @@FETCH_STATUS = 0BEGINBEGIN TRYEXEC('USE [' + @name + '];IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')BEGINCREATE USER [newrelic] FOR LOGIN [newrelic];END;GRANT VIEW DATABASE STATE TO [newrelic];');END TRYBEGIN CATCHPRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();END CATCHFETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOsqlcmd을(를) 사용하여 스크립트를 실행하십시오.<YOUR_SA_PASSWORD>을(를) SQL Server 관리자 비밀번호로 바꾸십시오:bash$sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_PASSWORD>' -C -i nr-grant-permission.sql(선택 사항) 올바른 권한을 가진 사용자가 성공적으로 생성되었는지 확인하십시오:
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구성
모니터링 요구 사항에 따라 설정 옵션을 선택하십시오:
이름이
mssql-config.yaml인 설정 파일을 생성합니다:bash$sudo nano /etc/nrdot-collector/mssql-config.yaml이전 단계에서 생성한
mssql-config.yaml파일에 다음 설정을 추가하십시오:전체 설정
이 최소 설정은 호스트 인프라 메트릭 없이 데이터베이스 모니터링에만 중점을 둡니다. 전체 기능 모니터링을 활성화하려면 설정 참조를 확인하십시오.
mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4# Direct connection to SQL Server5username: newrelic6password: YOUR_PASSWORD7server: sqlserver.example.com8port: 1433910# Enable comprehensive database metrics11metrics:12sqlserver.database.count:13enabled: true14sqlserver.database.io:15enabled: true16sqlserver.database.latency:17enabled: true18sqlserver.database.operations:19enabled: true20sqlserver.database.tempdb.space:21enabled: true22sqlserver.database.tempdb.version_store.size:23enabled: true24sqlserver.deadlock.rate:25enabled: true26sqlserver.os.wait.duration:27enabled: true28sqlserver.processes.blocked:29enabled: true30sqlserver.memory.grants.pending.count:31enabled: true32sqlserver.database.file.size:33enabled: true34sqlserver.memory.area:35enabled: true3637# Enable top query and query sample log collection38events:39db.server.query_sample:40enabled: true41db.server.top_query:42enabled: true4344# Top query collection configuration45top_query_collection:46lookback_time: 60s47max_query_sample_count: 100048top_query_count: 25049collection_interval: 60s5051collect_full_query_text: true52allowed_comment_keys:53- nr_service_guid5455# Query sample collection configuration56query_sample_collection:57max_rows_per_query: 1005859processors:60memory_limiter:61check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}62limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}63spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}6465batch:6667exporters:68otlp:69endpoint: https://otlp.nr-data.net:431870headers:71api-key: YOUR_LICENSE_KEY72tls:73insecure: false74compression: gzip7576service:77telemetry:78metrics:79level: none8081pipelines:82metrics:83receivers: [nrsqlserver]84processors: [memory_limiter, batch]85exporters: [otlp]8687logs:88receivers: [nrsqlserver]89processors: [memory_limiter, batch]90exporters: [otlp]
NRDOT Collector 설정 업데이트
위의 대화형 입력으로 YAML 파일을 구성한 후, NRDOT Collector 설정을 완료하십시오:
서비스 설정 파일을 편집하십시오:
bash$sudo nano /etc/nrdot-collector/nrdot-collector.conf새
mssql-config.yaml파일을 가리키도록 설정 경로를 업데이트하십시오:bash$OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"(선택 사항) NRDOT Collector 설정을 확인하십시오:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yaml팁
애플리케이션 성능을 데이터베이스 작업과 연관시키려면 데이터베이스 서비스 식별을 설정할 수 있습니다. 자세한 내용은 데이터베이스 서비스 식별 설정 가이드를 참조하십시오.
NRDOT Collector를 다시 시작하십시오
설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:
$sudo systemctl restart nrdot-collector팁
새로운 설정이 적용되도록 설정 변경 후에는 항상 NRDOT Collector 서비스를 다시 시작하십시오.
데이터 찾기 및 사용
데이터가 수집되면 뉴렐릭 UI를 통해 포괄적인 SQL Server 데이터베이스 모니터링에 액세스할 수 있습니다.
뉴렐릭에서 SQL Server 데이터베이스를 찾으려면 다음을 수행하세요.
one.newrelic.com > All capabilities > Databases 으)로 이동합니다.
Entity type 드롭다운 메뉴에서 MSSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
모임 목록에서 SQL Server 데이터베이스를 선택합니다.
NRDOT로 SQL Server 모니터링을 설정한 후 다음을 수행할 수 있습니다:
- 사용자 정의 대시보드를 만들어 데이터베이스 지표를 시각화하세요.
- 중요한 데이터베이스 성능에 대한 알림 설정, 참조 값
- 뉴렐릭 쿼리 기능을 사용하여 데이터 탐색