물리적 서버, 가상 머신 및 컨테이너화된 Linux 배포를 포함한 Linux 자체 호스팅 환경에서 NRDOT 수집기를 사용하여 Microsoft SQL Server 모니터링을 설정합니다.
전제 조건
환경이 호환성 및 필수 조건을 충족하는지 확인하세요.
NRDOT Collector 설정
Linux 버전에 NRDOT Collector를 설치합니다:
중요
쿼리 성능 모니터링을 위한 인프라 수준 메트릭을 보려면 SQL Server 인스턴스와 동일한 호스트에 NRDOT Collector를 설치하는 것이 좋습니다.
Debian/Ubuntu
AMD64(x86_64) 아키텍처의 경우:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_amd64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debARM64 아키텍처의 경우:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debRHEL/CentOS
AMD64(x86_64) 아키텍처의 경우:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_x86_64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpmARM64 아키텍처의 경우:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpm
데이터베이스 사용자 구성
다음 스크립트를 root user/sysadmin 사용자 권한으로 실행하여 newrelic 모니터링 사용자를 생성하고 전역 읽기 권한을 부여하십시오.
Linux에서
newrelic모니터링 사용자를 생성하려면 Linux 인스턴스에 다음 내용이 포함된nr-grant-permission.sql이라는 파일을 생성하십시오.USE [master];GOCREATE LOGIN [newrelic] WITH PASSWORD = '<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 = 0BEGINEXEC('USE [' + @name + '];IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')CREATE USER [newrelic] FOR LOGIN [newrelic];');END TRYBEGIN CATCHPRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();END CATCHFETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GO스크립트를 실행하려면 다음 명령어를 실행하십시오.
<Your_SA_Password>SQL Server 관리자 암호로 바꾸십시오.bash$sqlcmd -S localhost -U sa -P '<Your_SA_Password>' -C -i nr-grant-permission.sql(선택 사항) 사용자가 성공적으로 생성되었고 올바른 권한을 가졌는지 확인하려면 다음 명령을 실행하십시오.
<Your_SA_Password>SQL Server 관리자 암호로 바꾸십시오.bash$sqlcmd -S localhost -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';"예상 출력:
User Permission_Granted-------------------------------------------------------------------------------------<your_username> CONNECT SQL<your_username> VIEW ANY DEFINITION<your_username> VIEW ANY DATABASE<your_username> VIEW SERVER STATE이 출력은 필요한 서버 수준 권한을 가지고 사용자가 성공적으로 생성되었음을 확인시켜 줍니다.
NRDOT Collector구성
모니터링 요구 사항에 따라 설정 유형을 선택하십시오:
팁
참고: max_concurrent_queries 옵션은 각 스크랩 주기 동안 수신기가 SQL Server에 대해 병렬로 실행하는 메트릭 쿼리 수를 제어합니다.
receivers: nrsqlserver: max_concurrent_queries: 4 # default is 4 if omitted or set to 0구성 매개변수
다음 표는 nrsqlserver 수신기의 주요 설정 파라미터를 설명합니다:
| 매개변수 | 설명 |
|---|---|
<YOUR_USERNAME> | 인증을 위해 데이터베이스 사용자 이름을 입력하세요. |
<YOUR_PASSWORD> | 인증을 위해 데이터베이스 비밀번호를 입력하세요. |
<YOUR_SERVER> | SQL Server 호스트명 또는 IP 주소를 입력하십시오. |
port | SQL Server 포트 번호를 입력합니다. 기본값은 1433입니다. |
<YOUR_OTLP_ENDPOINT> | 뉴렐릭 OTLP 엔드포인트를 입력하세요(예: https://otlp.nr-data.net). 자세한 내용은 뉴렐릭 OTLP 엔드포인트 문서를 참조하세요. |
<YOUR_LICENSE_KEY> | 귀하의 블루 클러스터 키를 입력하세요. |
collection_interval | 데이터베이스 메트릭을 수집하는 간격(초)입니다. 기본: 15s |
팁
참고: 사용 가능한 모든 메트릭을 활성화하는 경우 메모리 제한기가 데이터를 삭제하지 않도록 limit_mib 값(예: 1,000)을 늘리세요.
수집기 설정 파일 업데이트
다음 명령을 실행하여 서비스 설정을 편집합니다:
bash$sudo nano /etc/nrdot-collector/nrdot-collector.conf새 mssql-config.yaml 파일을 가리키도록 설정 경로를 업데이트합니다:
bash$OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"NRDOT Collector 설정 유효성 검사
NRDOT Collector 설정을 검증하여 형식이 올바르고 제대로 작동하는지 확인합니다:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yaml
NRDOT 수집기 재시작
설정을 업데이트한 후 NRDOT Collector 서비스를 다시 시작하십시오:
$sudo systemctl restart nrdot-collector팁
설정을 변경한 후에는 반드시 NRDOT 수집기 서비스를 다시 시작하여 새 설정이 적용되도록 하십시오.
다음 단계
Linux 자체 호스팅 모니터링을 설정한 후: