설정하기
1. 지원 버전
- SQL Server 2012 이상 버전을 지원합니다.
Cloud 환경 SQL Server 지원 현황
| Cloud 환경 | SQL Server 지원 여부 |
|---|---|
| AWS | ✅ 지원 |
| Azure | ✅ 지원 |
| OCI | ❌ 미지원 |
| NCP | ✅ 지원 |
| GCP | ✅ 지원 |
| SCP | ✅ 지원 |
2. 필수 권한
인스턴스 등록 시 사용할 모니터링 계정(예: exemone)에 다음 권한을 부여해야 합니다. Setting > Database에서 인스턴스를 등록하거나 편집할 때 이 계정 정보를 입력합니다.
2-1. 기본 모니터링 권한
master DB에 권한 부여
-- SQL Server 2022 이상 / Azure
ALTER SERVER ROLE ##MS_serverStateReader## ADD MEMBER exemone;
-- tablesizeinfomessage 수집을 위해 추가 권한 필요
GRANT VIEW DEFINITION TO exemone;
-- SQL Server 2012 ~ 2019
GRANT VIEW SERVER STATE TO exemone;
각 DB에 권한 부여
GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone; -- 변경 데이터 캡처(CDC) 관련 함수 실행 권한 부여
GRANT VIEW DEFINITION TO exemone; -- SQL Server 시스템 카탈로그 뷰 접근 권한 부여 (sysindexes, sysobjects)
2-2. Session Kill 권한
GRANT KILL DATABASE CONNECTION TO exemone;
2-3. 모니터링 방식(sqlserver.mode)에 따른 추가 권한
| 모드 | 설명 | 필요 권한 |
|---|---|---|
| procedure (기본값) | 수집 쿼리를 프로시저로 생성 | create any database 권한 필요 (maxgauge DB 자동 생성 시) |
| query | 수집 쿼리를 프로시저로 생성하지 않음 (Azure 환경 등에 사용) | create database 권한 불필요 |
procedure 모드 - maxgauge DB 자동 생성 시
GRANT CREATE ANY DATABASE TO exemone;
procedure 모드 - maxgauge DB 수동 생성 시
USE maxgauge;
CREATE USER [exemone] FOR LOGIN [exemone]; -- maxgauge DB 내 사용자 생성
GRANT CREATE PROCEDURE TO exemone;
GRANT CONTROL ON SCHEMA::dbo TO exemone;
GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone;
query 모드 - fn_cdc_hexstrtobin 함수 오류 발생 시
GRANT EXECUTE ON dbo.fn_cdc_hexstrtobin TO exemone;
3. 사전 설정
exemONE 모니터링 옵션 설정
SQL Server 인스턴스는 Setting > Database의 Instance 등록/편집 화면에서 Custom Configuration에 아래 키 값을 설정해 지표 수집 방식을 세부적으로 조정할 수 있습니다.
경로: Setting > Database > Edit Instance > Custom Configuration
| 옵션 | 설명 |
|---|---|
sqlserver.mode | 수집 방식 설정 - procedure (기본값): 수집 쿼리를 프로시저로 생성- query: 수집 쿼리를 프로시저로 생성하지 않음 (Azure처럼 procedure 생성 불가한 환경에서 사용) |
sqlserver.active_session_procedure_arg | Active Session 수집 옵션 - 0 (기본값): sqltext 수집- 1: sqltext 미수집- 2: sqltext, inputbuffer 수집- 3: sqltext, inputbuffer, parameter list 수집 (SQL Server 2019 이상 지원) |
job_info_procedure_interval | job info 정보 수집 유무 - on (기본값): job_info 데이터를 인터벌 값 10으로 수집- off: 미수집 |
sqlserver.onpremise_process_port | 다중 인스턴스 CPU 수집 옵션 - false (기본값): 다중 인스턴스의 CPU 사용량을 모두 더해서 수집- true: 설정된 인스턴스의 CPU 사용량만 수집 |
sqlserver.activesessionmessage_azure_xadmin | Azure DB 연결의 admin 계정 여부 설정 - admin 계정이 아닐 경우 true 설정 |