Microsoft SQL Server 데이터 소스 구성
Microsoft SQL Server 데이터 소스 구성 (Configure)
이 문서는 Microsoft SQL Server 데이터 소스를 구성하는 방법과 사용 가능한 구성 옵션을 설명해요. Grafana에서 기존 SQL Server 데이터베이스를 질의하고 결과를 시각화할 수 있어요. 데이터 소스 추가·관리 일반 정보는 Grafana 데이터 소스와 Data source management을 참고하세요.
본문
참고: 이 페이지는 기존 SQL Server 데이터베이스를 질의하고 Grafana에서 결과를 시각화하는 Microsoft SQL Server 데이터 소스를 다뤄요. 이는 Grafana Alloy로 SQL Server 인스턴스 자체의 성능 지표(CPU, 메모리, 연결 등)를 수집하는 Microsoft SQL Server integration(Grafana Cloud에서 사용 가능)과 다르다는 점을 유의하세요. SQL Server 자체의 상태를 모니터링하려면 그 통합 문서를 참고하세요.
시작하기 전에
Microsoft SQL Server 데이터 소스를 구성하기 전에 다음을 확인해요.
- Grafana 권한: 데이터 소스를 추가·구성하려면
Organization administrator역할이 있어야 해요.Editor또는Viewer역할 사용자는 RBAC로 추가 권한을 부여받지 않는 한 데이터 소스 구성 양식에 접근할 수 없어요. 조직 관리자는 Grafana 프로비저닝 시스템으로 YAML을 통해 데이터 소스를 구성할 수도 있어요. - 실행 중인 SQL Server 인스턴스: Microsoft SQL Server 2012 이상, Azure SQL Database, 또는 Azure SQL Managed Instance.
- 네트워크 접근: Grafana가 SQL Server에 도달할 수 있어야 해요. 기본 포트는
1433. - 인증 자격 증명: 인증 방법에 따라 다음 중 하나가 필요해요.
- SQL Server 로그인 자격 증명(사용자 이름과 비밀번호)
- Windows/Kerberos 자격 증명 및 구성(Grafana Cloud에서 지원 안 함)
- Azure Entra ID 앱 등록 또는 관리 ID
- 보안 인증서: 암호화된 연결을 사용한다면 필요한 TLS/SSL 인증서를 준비해요.
참고: Microsoft SQL Server 데이터 소스 플러그인은 Grafana에 기본 설치되어 있어 별도 설치는 필요 없어요. Grafana 13.2부터 Grafana 릴리스와 무관하게 업데이트되는 독립 플러그인으로 패키징돼요. Plugin updates 참고. 팁: Grafana Cloud 사용자: SQL Server가 프라이빗 네트워크에 있다면 Private data source connect로 연결을 구성할 수 있어요.
MSSQL 데이터 소스 추가
- 왼쪽 메뉴에서 Connections를 클릭해요.
- Add new connection을 클릭해요.
- 검색창에
Microsoft SQL Server를 입력해요. - 데이터 소스 아래에서 Microsoft SQL Server를 선택해요.
- 오른쪽 위에서 Add new data source를 클릭해요.
Grafana가 Microsoft SQL Server 구성을 설정하는 Settings 탭으로 이동해요.
UI에서 데이터 소스 구성
경고: Kerberos는 Grafana Cloud에서 지원되지 않아요.
| 설정 | 설명 |
|---|---|
| Name | 데이터 소스 이름. 패널과 쿼리에서 데이터 소스를 참조할 때 쓰는 이름. 예: MSSQL-1, MSSQL_Sales1 |
| Default | 대시보드 패널에서 기본 이름으로 선택할지 토글. 대시보드 패널로 가면 기본 선택되는 데이터 소스 |
Connection(연결):
| 설정 | 설명 |
|---|---|
| Host | MSSQL 인스턴스의 IP 주소나 호스트 이름(선택적 포트 포함)을 설정. 기본 포트는 0이며 드라이버 기본값을 사용해요. 세미콜론(;)으로 구분해 추가 연결 속성(예: ApplicationIntent)을 포함할 수 있어요. |
| Database | 연결할 MSSQL 데이터베이스 이름. |
주의: 쿼리를 읽기 전용 복제본으로 라우팅하려고 Host 필드에
ApplicationIntent=ReadOnly를 추가한다면, 읽기 전용 복제본이 기본보다 크게 느릴 수 있다는 점을 알아두세요. 이로 인해 대시보드 로드가 몇 분 걸릴 수 있어요. 복제본이 쿼리 워크로드에 맞게 크기 조정되고 성능을 테스트했다면ApplicationIntent=ReadOnly만 사용하세요.
TLS/SSL 암호화:
Encrypt 설정은 서버와 보안 TLS/SSL 연결을 협상할지, 어느 정도로 협상할지 결정해요.
| Encrypt 설정 | 설명 | 사용 시점 |
|---|---|---|
| Disable | 클라이언트-서버 사이에 전송되는 데이터가 암호화되지 않음. | 암호화를 지원하지 않거나 요구하지 않는 레거시 환경. 프로덕션에는 권장하지 않음. |
| False | 기본 설정. 로그인 패킷만 암호화되고 다른 모든 데이터는 암호화 없이 전송됨. | 개발 환경 또는 SQL Server에 유효한 인증서가 없을 때. |
| True | 클라이언트-서버 사이에 전송되는 모든 데이터가 암호화됨. | 프로덕션 환경. Azure SQL Database에 필요. |
Encrypt를 True로 설정하면 다음 추가 TLS 옵션을 사용할 수 있어요.
| 설정 | 설명 | 기본값 |
|---|---|---|
| Skip TLS Verify | 활성화하면 서버의 인증서 체인과 호스트 이름이 검증되지 않음. 연결 문자열의 trustServerCertificate=true와 동일. |
비활성화 |
| TLS/SSL Root Certificate | 서버 인증서를 검증하는 데 사용되는 PEM 인코딩 CA 인증서 파일 경로. SQL Server가 프라이빗 CA가 서명한 인증서를 사용할 때 필요. | 시스템 CA 번들 |
| Hostname in server certificate | 서버 TLS 인증서에서 기대하는 호스트 이름. 인증서의 Common Name(CN)이나 Subject Alternative Name(SAN)이 구성된 호스트 이름과 일치하지 않을 때 사용(예: 로드 밸런서나 PDC로 연결할 때). | Host 필드 값 |
올바른 암호화 구성 선택:
| 시나리오 | Encrypt | Skip TLS Verify | Root Certificate | 참고 |
|---|---|---|---|---|
| Azure SQL Database | True | No | 불필요 | Azure SQL은 항상 암호화를 요구하고 공개 신뢰 인증서 사용 |
| 공개 CA 인증서가 있는 SQL Server | True | No | 불필요 | 인증서가 이미 시스템 신뢰 저장소에 있음 |
| 프라이빗/자체 서명 인증서가 있는 SQL Server | True | No | CA 인증서 경로 | SQL Server 인증서를 서명한 CA 인증서를 업로드·참조 |
| 검증되지 않은 인증서가 있는 SQL Server(테스트 전용) | True | Yes | 불필요 | 인증서 검증을 완전히 건너뜀. 프로덕션에서 사용하지 말 것 |
| 유효한 인증서가 없는 SQL Server 2008/2008R2 | Disable 또는 False | N/A | N/A | 구버전은 TLS 협상을 지원하지 않을 수 있음 |
| PDC가 있는 Grafana Cloud | True | No | (보통)불필요 | PDC 터널은 SSH 레이어에서 암호화되고, TLS 인증서는 PDC 에이전트 관점에서 여전히 유효해야 함 |
참고: SQL Server 2008이나 2008R2 같은 구버전을 사용한다면 연결하려면 Encrypt를 Disable 또는 False로 설정해야 할 수 있어요. 주의: BoringCrypto(FIPS 준수 빌드)를 사용하는 Grafana 빌드는 FIPS 140-3 암호화 요구 사항을 적용해요. SQL Server가 오래된 암호화 제품군(TLS 1.0 또는 RC4 기반 등)만 지원한다면 FIPS 활성 Grafana 인스턴스의 연결이 TLS 핸드셰이크 오류로 실패해요. SQL Server TLS 구성을 FIPS 승인 암호화 제품군과 함께 TLS 1.2를 지원하도록 업그레이드하세요.
인증(Authentication):
| 인증 유형 | 설명 | 자격 증명/필드 |
|---|---|---|
| SQL Server Authentication | MSSQL에 연결하는 기본 방법. DOMAIN\User 형식의 SQL Server 또는 Windows 로그인 사용. |
Username: SQL Server 사용자 이름. Password: SQL Server 비밀번호. |
| Windows Authentication (Integrated Security) | 단일 로그온으로 로그인된 Windows 사용자의 자격 증명 사용. SQL Server가 Windows 인증을 허용할 때만 사용 가능. | 입력 불필요. 로그인된 Windows 사용자 자격 증명 사용. |
| Windows AD (Username/Password) | Active Directory 사용자 이름과 비밀번호로 도메인 사용자 인증. | Username: [email protected]. Password: Active Directory 비밀번호. |
| Windows AD (Keytab) | keytab 파일로 도메인 사용자 인증. | Username: [email protected]. Keytab file path: keytab 파일 경로. |
| Windows AD (Credential Cache) | 메모리에 이미 로드된 Kerberos 자격 증명 캐시 사용(예: 이전 kinit 명령). 파일 불필요. |
Credential cache path: 메모리 내 자격 증명 경로(예: /tmp/krb5cc_1000). |
| Windows AD (Credential Cache File) | 자격 증명 캐시 파일(.ccache)로 도메인 사용자 인증. |
Username: [email protected]. Credential cache file path: 예: /home/grot/cache.json. |
| Azure Entra ID (이전 Azure AD) Authentication | Azure 인증 방법으로 데이터 소스 인증. UI 라벨은 Azure AD Authentication. | 지원 방법과 설정 단계는 Azure Entra ID authentication 참고. |
참고: Grafana v13.0부터 세미콜론(
;)이나 닫는 중괄호(})가 포함된 비밀번호와 사용자 이름이 올바르게 처리돼요. 이전에 자격 증명의 특수 문자로 연결 실패를 겪었다면 Grafana v13.0 이상으로 업그레이드하세요.
추가 설정(Additional settings):
추가 설정은 데이터 소스를 더 세밀하게 제어하기 위해 구성하는 선택적 설정이에요. 연결 한도, 연결 타임아웃, group-by 시간 간격, Secure Socks Proxy가 포함돼요.
연결 한도(Connection limits):
Grafana는 구성된 각 MSSQL 데이터 소스에 대한 연결 풀을 유지해요. 이 설정은 풀 동작을 제어하며 대시보드와 알림의 동시 부하에서 특히 성능에 직접 영향을 줘요.
| 설정 | 설명 |
|---|---|
| Max open | 데이터베이스에 대한 최대 열린 연결 수. 0이면 제한 없음. max open이 0보다 크고 max idle보다 작으면 max idle이 일치하도록 조정돼요. |
| Auto max idle | 활성화되면 max idle을 자동으로 max open과 일치시켜요. max open이 설정되지 않으면 기본값 100. |
| Max idle | 풀의 최대 유휴 연결 수. max open이 설정되고 max idle보다 낮으면 max idle이 일치하도록 줄어들어요. 0이면 유휴 연결을 보관하지 않아요. |
| Max lifetime | 연결이 닫히고 교체되기 전에 재사용될 수 있는 최대 시간(초). 0이면 연결이 무기한 재사용돼요. |
주의: Max open이 너무 낮게 설정되면 동시 대시보드 패널과 알림 규칙 평가가 연결을 두고 경쟁해요. 알림 평가는 별도 실행 경로를 사용해 빈 연결을 무기한 기다리지 못하므로, 대시보드는 계속 작동하는데 알림 쿼리가 "failed to connect to server"로 실패할 수 있어요. 간헐적 알림 실패가 보이면 Max open을 늘리세요.
연결 세부 정보:
| 설정 | 설명 |
|---|---|
| Min time interval | 자동 생성된 GROUP BY 시간 간격의 하한을 지정. Grafana는 이 값을 데이터 쓰기 빈도와 일치시키는 것을 권장해요. 예를 들어 데이터가 매분 쓰이면 1m 사용. Min time interval 참고. |
| Connection timeout | 데이터베이스 연결 시도 시 타임아웃되기 전까지 기다릴 최대 초 수. 0(기본값)은 타임아웃을 비활성화해요. |
Windows AD 고급 설정:
| 설정 | 설명 | 기본값 |
|---|---|---|
| UDP Preference Limit | Kerberos 라이브러리가 TCP로 재시도하기 전에 UDP로 보내려는 최대 패킷 크기(바이트). 1이면 모든 통신에 TCP를 강제. |
1 (항상 TCP 사용) |
| DNS Lookup KDC | 영역에 대해 DNS SRV 레코드로 Key Distribution Centers (KDCs) 및 기타 서버를 찾을지 제어. |
true |
| krb5 config file path | MIT krb5 패키지가 사용하는 Kerberos 구성 파일 경로. | /etc/krb5.conf |
참고: Windows AD(Kerberos) 인증은 셀프 관리 Grafana 설치에서만 사용할 수 있어요. Grafana Cloud에서는 지원되지 않아요. Grafana Cloud 배포에서 SQL Server에 연결하려면 SQL Server Authentication 또는 Azure Entra ID를 사용하세요.
Kerberos SPN 요구 사항:
Kerberos 인증이 성공하려면 Grafana가 연결에 사용하는 호스트 이름과 일치하는 Service Principal Name(SPN)이 SQL Server 인스턴스에 등록되어 있어야 해요. 이는 Availability Group Listener나 DNS 별칭으로 연결할 때 특히 중요해요.
SQL Server 호스트에서 setspn 명령으로 SPN을 등록해요:
setspn -S MSSQLSvc/<SQL_SERVER_FQDN>:1433 <DOMAIN>\<SERVICE_ACCOUNT>
setspn -S MSSQLSvc/<SQL_SERVER_FQDN> <DOMAIN>\<SERVICE_ACCOUNT>
Grafana가 Listener나 별칭으로 연결한다면 그 이름에 대한 추가 SPN을 등록해요. 등록된 SPN은 setspn -L <DOMAIN>\<SERVICE_ACCOUNT>로 확인해요.
Grafana Cloud에서 온프레미스 SQL Server 연결
SQL Server 인스턴스가 프라이빗 네트워크(온프레미스, VPN, VPC)에 있다면 Grafana Cloud가 인터넷으로 직접 도달할 수 없어요. Grafana Cloud 스택과 프라이빗 네트워크 사이에 보안 터널을 구축하려면 **Private data source connect (PDC)**를 사용해야 해요.
참고: 인터넷에서 공개적으로 접근할 수 없는 모든 SQL Server에는 PDC가 필요해요. Grafana Cloud는 데이터 소스 연결에 고정 IP 주소를 사용하지 않으므로 방화벽 허용 목록만으로는 충분하지 않아요.
네트워크 전제 조건:
- 포트 22(SSH): 네트워크의 PDC 에이전트가 SSH 터널을 위해 포트 22로 Grafana Cloud PDC 엔드포인트에 도달할 수 있어야 해요.
- 포트 1433(SQL Server): PDC 에이전트가 포트 1433(또는 커스텀 SQL Server 포트)에서 SQL Server 인스턴스에 도달할 수 있어야 해요.
- DNS 해석: PDC 에이전트가 프라이빗 네트워크 내에서 SQL Server 호스트 이름을 해석할 수 있어야 해요.
Microsoft SQL Server용 PDC 설정:
- Grafana Cloud 스택에서 Connections > Private data source connect로 이동해요.
- 새 PDC 연결을 만들거나 기존 것을 사용해요.
- SQL Server 인스턴스에 접근할 수 있는 프라이빗 네트워크의 호스트에 PDC 에이전트를 설치·구성해요. 자세한 지침은 Configure Grafana private data source connect (PDC) 참고.
- Microsoft SQL Server 데이터 소스 구성으로 돌아가요.
- Private data source connect 아래에서 드롭다운으로 PDC 연결을 선택해요.
- 프라이빗 네트워크 내에서 해석 가능한 SQL Server 호스트 이름을 입력해요(공개 DNS 이름 아님).
- Save & test를 클릭해 연결을 확인해요.
Manage private data source connect를 클릭해 PDC 연결 페이지를 열고 구성 세부 정보를 확인해요. PDC에 대한 자세한 내용은 Private data source connect (PDC) 참고.
주의: 이전에 셀프 관리 Grafana 인스턴스로 연결했고 Grafana Cloud로 마이그레이션한다면, 프라이빗 SQL Server에 접근하기 전에 PDC를 구성해야 해요. 셀프 관리 Grafana에서 동작했던 직접 네트워크 접근 방법(VPN 피어링, 프라이빗 엔드포인트)은 Grafana Cloud에 적용되지 않아요.
MSSQL 데이터 소스 옵션을 구성한 뒤 하단의 Save & test를 클릭해 연결을 테스트해요. 다음 확인 대화 상자가 표시돼야 해요:
Database Connection OK
Azure Entra ID (이전 Azure AD) 인증
다음 Azure 인증 방법이 지원돼요.
- App Registration (서비스 주체)
- Managed Identity
- Current User 인증
- Azure Entra Password
연결하는 Azure SQL Server가 Azure Entra 인증을 지원해야 해요. 구성 세부 정보는 Azure SQL 문서를 참고하세요.
필수 서버 구성
어떤 Azure Entra ID 인증 방법을 사용하기 전에 Grafana 서버 구성에서 Azure 인증을 활성화해야 해요. grafana.ini 또는 custom.ini 파일에 다음을 추가해요:
[azure]
azure_auth_enabled = true
선택한 방법에 따라 추가 플래그가 필요해요(각 섹션에 문서화됨). .ini 파일을 변경한 후 Grafana 서버를 다시 시작해 변경 사항을 적용해요.
Current User 인증
Azure에 호스팅된 SQL Server 인스턴스에서 작업할 때 권장되는 인증 메커니즘이에요. 오래 지속되는 자격 증명 대신 사용자 자신의 자격 증명으로 데이터베이스에 인증·질의할 수 있게 해요.
이 인증 방법은 로그인을 위해 Grafana 인스턴스가 Azure Entra ID(이전 Active Directory) 인증으로 구성되어 있어야 해요. Azure Entra ID 로그인을 사용하면 현재 로그인한 사용자의 자격 증명을 데이터 소스로 전달할 수 있어요. 사용자의 자격 증명은 데이터 소스에서 데이터를 요청할 때 사용돼요. Azure Entra로 Grafana 인스턴스를 구성하는 방법은 문서 참고.
참고: Azure를 통해 사용자를 로그인하는 데 사용되는 App Registration이 데이터 소스가 요구하는 권한이 있는 액세스 토큰을 제공하도록 추가 구성이 필요해요.
App Registration은 Access Tokens와 ID Tokens를 모두 발급하도록 구성해야 해요.
- Azure Portal에서 구성할 App Registration을 열어요.
- 사이드 메뉴에서 Authentication을 선택해요.
- Implicit grant and hybrid flows 아래에서 Access tokens와 ID tokens 상자를 모두 체크해요.
- 저장해 App Registration이 업데이트되게 해요.
App Registration은 인증된 사용자에게 데이터 소스가 사용하는 API에 대한 접근을 제공하도록 추가 API Permissions로도 구성해야 해요.
- Azure Portal에서 구성할 App Registration을 열어요.
- 사이드 메뉴에서 API Permissions을 선택해요.
- Microsoft Graph 섹션 아래에
openid,profile,offline_access권한이 있는지 확인해요. 없으면 추가해야 해요.- Add a permission을 선택하고 다음 권한을 골라요. 각각 개별적으로 추가해야 해요. 자세한 내용은 Azure documentation 참고.
- APIs my organization uses 선택 > Azure SQL 검색·선택 > Delegated permissions >
user_impersonation> Add permissions모든 권한이 추가된 후 Grafana의 Azure 인증 섹션을 업데이트해야 해요.
scopes섹션에.default스코프를 포함시켜 App Registration에 선언된 모든 API에 대한 접근이 있는 토큰을 Grafana가 요청하도록 해야 해요. scopes 값은 다음과 같아야 해요:.default openid email profile.
이 인증 방법은 사용자 자격 증명이 범위에 없으므로 모든 백엔드 기능을 본질적으로 지원하지 않아요. 영향을 받는 기능은 알림, 보고, 기록 쿼리가 포함돼요. 또한 현재 사용자 인증을 사용하는 데이터 소스에서는 쿼리·리소스 캐싱이 기본적으로 비활성화된다는 점도 알아두세요.
Grafana에 대한 현재 사용자 인증 활성화:
- Grafana 서버 구성의
[azure]섹션에서user_identity_enabled플래그를 설정해요.
[azure]
user_identity_enabled = true
- SQL Server 데이터 소스 구성에서 Authentication을 Azure AD Authentication으로, Azure 인증 유형을 Current User로 설정해요.
App Registration
클라이언트 ID와 시크릿으로 데이터 소스를 인증하려면 앱 등록(서비스 주체)을 사용해요. Azure SQL에 대한 자동화된 비대화형 접근의 권장 방법이에요.
전제 조건:
- Azure Entra에 생성된 앱 등록. 지침은 서비스 주체용 Azure 문서 참고.
- 앱 등록의 테넌트 ID, 클라이언트(애플리케이션) ID, 클라이언트 시크릿.
1단계: 앱 등록을 데이터베이스 사용자로 추가
- 관리 권한이 있는 사용자로 Azure SQL 데이터베이스에 연결해요(사용자가 Azure Entra 디렉터리를 읽을 수 있어야 함. 예:
Directory Readers역할 보유). - 앱 등록에 대한 사용자를 만들려면 다음 SQL을 실행해요:
CREATE USER [<APP_REGISTRATION_NAME>] FROM EXTERNAL PROVIDER;
- 생성된 사용자에게 적절한 권한을 부여해요. Grafana는 읽기 전용 접근을 권장해요:
ALTER ROLE db_datareader ADD MEMBER [<APP_REGISTRATION_NAME>];
2단계: Grafana 서버 구성
grafana.ini에 azure_auth_enabled가 설정되어 있는지 확인해요:
[azure]
azure_auth_enabled = true
3단계: 데이터 소스 구성
- SQL Server 데이터 소스 구성에서 Authentication을 Azure AD Authentication으로, Azure 인증 유형을 App Registration으로 설정해요.
- Azure Cloud를 Azure(Azure 공개 클라우드용)로 설정해요.
- 앱 등록의 Directory (tenant) ID, Application (client) ID, Client Secret을 입력해요.
Managed Identity
참고: Managed Identity는 Azure Managed Grafana 또는 Azure에 배포된 셀프 관리 Grafana에서만 사용할 수 있어요. Grafana Cloud에서는 사용할 수 없어요.
Grafana를 Azure에 호스팅하고(예: App Service 또는 Azure Virtual Machines) VM에 managed identity를 활성화했다면 managed identity로 SQL Server를 구성할 수 있어요. 이렇게 하면 자격 증명을 수동으로 구성하지 않고 데이터 소스를 안전하게 인증할 수 있어요. Azure 관리 ID에 대한 자세한 내용은 Azure 문서 참고.
Grafana에 대한 managed identity 활성화:
- Grafana 서버 구성의
[azure]섹션에서azure_auth_enabled와managed_identity_enabled를 모두 설정해요:
[azure]
azure_auth_enabled = true
managed_identity_enabled = true
- SQL Server 데이터 소스 구성에서 Authentication을 Azure AD Authentication으로, Azure 인증 유형을 Managed Identity로 설정해요.
이렇게 하면 디렉터리 ID, 애플리케이션 ID, 클라이언트 시크릿 필드가 숨겨지고 데이터 소스가 managed identity로 SQL Server에 인증해요.
- (선택) 기본 system-assigned identity 대신 user-assigned managed identity를 사용하려면
[azure]섹션에서managed_identity_client_id를 설정해요.
managed identity가 Azure SQL 인스턴스에 사용자로 추가되어 있는지 확인해요.
Azure Entra Password
경고: Azure Entra Password는 단일 사용자의 비밀번호로 구성해야 하므로 권장되는 인증 메커니즘이 아니에요. current user authentication이나 app registration 같은 대안 인증 방법을 고려하세요.
원하는 데이터베이스에 권한이 있는 사용자의 사용자 이름과 비밀번호로 Azure SQL 데이터베이스에 연결할 수 있어요. 여기에는 데이터베이스에 접근하도록 구성된 앱 등록도 필요해요.
Grafana에 대한 Azure Entra 비밀번호 활성화:
- Grafana 서버 구성의
[azure]섹션에서azure_entra_password_credentials_enabled플래그를 설정해요.
[azure]
azure_entra_password_credentials_enabled = true
- SQL Server 데이터 소스 구성에서 Authentication을 Azure AD Authentication으로, Azure 인증 유형을 Azure Entra Password로 설정해요.
- User ID 값을 Azure SQL 데이터베이스의 사용자 이름으로 설정해요.
- Application Client ID를 Azure SQL 데이터베이스에 추가된 앱 등록의 클라이언트 ID로 설정해요.
- Password 값을 Azure SQL 데이터베이스의 사용자 비밀번호로 설정해요.
Min time interval
Min time interval 설정은 $__interval과 $__interval_ms 변수의 하한을 정의해요.
이 값 반드시 숫자 다음에 유효한 시간 식별자가 오는 형식이어야 해요.
| 식별자 | 설명 |
|---|---|
y |
year |
M |
month |
w |
week |
d |
day |
h |
hour |
m |
minute |
s |
second |
ms |
millisecond |
Grafana는 이 값을 Microsoft SQL Server 쓰기 빈도와 일치시키는 것을 권장해요. 예를 들어 MSSQL이 매분 데이터를 쓰면 1m을 사용해요. 이 설정은 대시보드 패널의 데이터 소스 옵션에서도 재정의할 수 있어요.
데이터베이스 사용자 권한
데이터 소스를 추가할 때 지정하는 데이터베이스 사용자가 관련 데이터베이스와 테이블에 대해 SELECT 권한만 갖도록 확인해요. Grafana는 쿼리의 안전성을 검증하지 않으므로, USE otherdb;나 DROP TABLE user; 같은 잠재적으로 유해한 SQL 문을 포함할 수 있고 실행될 수 있어요. 이 위험을 최소화하기 위해 Grafana는 권한이 제한된 전용 MSSQL 사용자를 만들 것을 강력히 권장해요.
CREATE USER grafanareader WITH PASSWORD 'password'
GRANT SELECT ON dbo.YourTable3 TO grafanareader
또한 사용자에게 public 역할의 원하지 않는 권한이 없는지 확인해요.
연결 문제 진단
SQL Server 2008, 2008R2 같은 구버전을 사용한다면 데이터 소스에 연결하기 전에 암호화를 비활성화해야 할 수 있어요. Grafana는 최적의 호환성을 위해 최신 서비스 팩 사용을 권장해요.
데이터 소스 프로비저닝
Grafana 프로비저닝 시스템의 일부로 YAML 파일에서 데이터 소스를 정의·구성할 수 있어요. 프로비저닝과 사용 가능한 구성 옵션에 대한 자세한 내용은 Provision Grafana 참고.
예시
apiVersion: 1
datasources:
- name: MSSQL
type: mssql
url: localhost:1433
user: grafana
jsonData:
database: grafana
maxOpenConns: 100
maxIdleConns: 100
maxIdleConnsAuto: true
connMaxLifetime: 14400
connectionTimeout: 0
encrypt: 'false'
secureJsonData:
password: 'Password!'
Terraform으로 구성
Terraform과 Grafana Terraform provider로 Microsoft SQL Server 데이터 소스를 구성할 수 있어요. Terraform으로 리소스를 프로비저닝하는 방법은 Grafana as code using Terraform 문서 참고.
Terraform 예시
다음 예시는 기본 Microsoft SQL Server 데이터 소스를 만들어요.
resource "grafana_data_source" "mssql" {
name = "MSSQL"
type = "mssql"
url = "localhost:1433"
user = "grafana"
json_data_encoded = jsonencode({
database = "grafana"
maxOpenConns = 100
maxIdleConns = 100
maxIdleConnsAuto = true
connMaxLifetime = 14400
connectionTimeout = 0
encrypt = "false"
})
secure_json_data_encoded = jsonencode({
password = "Password!"
})
}
사용 가능한 모든 구성 옵션은 Grafana provider data source resource documentation을 참고하세요.
다음 단계
Microsoft SQL Server 데이터 소스를 구성한 뒤에는:
- 쿼리 편집기로 쿼리 작성해 데이터를 탐색·시각화
- 동적 재사용 대시보드를 위한 템플릿 변수 생성
- 그래프에 SQL Server 이벤트를 겹치는 어노테이션 추가
- SQL Server 데이터 기반 알림 설정
- 데이터 소스 문제 시 문제 해결
더 알아보기 (Learn more)
- Microsoft SQL Server data source overview - 데이터 소스 개요
- MSSQL query editor - 쿼리 편집기
- Azure SQL authentication - Azure SQL 인증
- Data source management - 데이터 소스 관리
- Configure the Microsoft SQL Server data source - 원문 문서