다음을 통해 공유


SQL 인사이트 사용(미리 보기)

적용 대상:Azure SQL DatabaseAzure SQL Managed Instance

이 문서에서는 SQL 인사이트(미리 보기)를 사용하도록 설정하여 SQL 배포를 모니터링하는 방법을 설명합니다. 모니터링은 SQL 배포에 연결하고 동적 관리 (DMV뷰)를 사용하여 모니터링 데이터를 수집하는 Azure 가상 머신에서 수행됩니다. 모니터링 프로필을 사용하여 수집되는 데이터 세트와 수집 빈도를 제어할 수 있습니다.

참고 항목

리소스 관리자 템플릿을 사용하여 모니터링 프로필과 가상 머신을 만들어 SQL 인사이트(미리 보기)를 사용하도록 설정하려면 SQL 인사이트(미리 보기)용 Resource Manager 템플릿 샘플을 참조하세요.

SQL 인사이트(미리 보기)를 사용하도록 설정하는 방법을 알아보려면 이 데이터 노출 에피소드를 참조할 수도 있습니다.

Log Analytics 작업 영역 만들기

SQL 인사이트는 하나 이상의 Log Analytics 작업 영역에 데이터를 저장합니다. SQL 인사이트를 사용하도록 설정하려면 작업 영역을 만들거나 기존 작업 영역을 선택해야 합니다. 단일 작업 영역은 여러 모니터링 프로필과 함께 사용할 수 있지만 작업 영역과 프로필은 동일한 Azure 지역에 있어야 합니다. SQL 인사이트의 기능을 활성화하고 액세스하려면 작업 영역에 Log Analytics 기여자 역할이 있어야 합니다.

모니터링 사용자 만들기

모니터링할 SQL 배포에 사용자(로그인)가 필요합니다. 다양한 유형의 SQL 배포에 대해 아래 절차를 따르세요.

아래 지침에서는 모니터링할 수 있는 SQL 유형별 프로세스를 다룹니다. 한 번에 여러 SQL 리소스에 대한 스크립트를 사용하여 이 작업을 수행하려면 다음 추가 정보 파일예제 스크립트를 참조하세요.

Azure SQL Database

참고 항목

SQL 인사이트(미리 보기)는 다음 Azure SQL Database 시나리오를 지원하지 않습니다.

  • 탄력적 풀: 탄력적 풀에 대한 메트릭을 수집할 수 없습니다. 탄력적 풀 내 데이터베이스에 대한 메트릭을 수집할 수 없습니다.
  • 낮은 서비스 계층: 기본, S0, S1 및 S2 서비스 계층의 데이터베이스에 대해서는 메트릭을 수집할 수 없습니다.

SQL 인사이트(미리 보기)는 다음과 같은 Azure SQL Database 시나리오를 제한적으로 지원합니다.

  • 서버리스 계층: 서버리스 컴퓨팅 계층을 사용하여 데이터베이스에 대한 메트릭을 수집할 수 있습니다. 그러나 메트릭을 수집하는 프로세스는 자동 일시 중지 지연 타이머를 다시 설정하여 데이터베이스가 자동 일시 중지 상태를 시작하지 않도록 합니다.

Azure Portal에서 SQL Server Management Studio, 쿼리 편집기(미리 보기) 또는 기타 SQL 클라이언트 도구를 사용하여 Azure SQL 데이터베이스에 연결합니다.

다음 스크립트를 실행하여 필요한 권한을 보유한 사용자를 만듭니다. user를 사용자 이름으로 바꾸고 mystrongpassword를 강력한 암호로 바꿉니다.

CREATE USER [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW DATABASE STATE TO [user]; 
GO 

telegraf 사용자 스크립트 만들기가 있는 쿼리 편집기의 스크린샷

사용자가 작성되었는지 확인합니다.

telegraf 사용자 스크립트를 확인하는 쿼리 편집기 쿼리 창의 스크린샷

select name as username,
       create_date,
       modify_date,
       type_desc as type,
       authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
       and sid is not null
order by username

Azure SQL Managed Instance

SQL Server Management Studio 또는 유사한 도구를 사용하여 Azure SQL Managed Instance에 연결하고, 다음 스크립트를 실행하여 필요한 권한을 보유한 모니터링 사용자를 만듭니다. user를 사용자 이름으로 바꾸고 mystrongpassword를 강력한 암호로 바꿉니다.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO 

SQL Server

Azure 가상 머신의 SQL Server에 연결하고, SQL Server Management Studio 또는 유사한 도구를 사용하여 다음 스크립트를 실행하고 필요한 권한을 보유한 모니터링 사용자를 만듭니다. user를 사용자 이름으로 바꾸고 mystrongpassword를 강력한 암호로 바꿉니다.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO

사용자가 작성되었는지 확인합니다.

select name as username,
       create_date,
       modify_date,
       type_desc as type
from sys.server_principals
where type not in ('A', 'G', 'R', 'X')
       and sid is not null
order by username

Azure 가상 머신 만들기

데이터를 수집하여 SQL을 모니터링하는 데 사용할 Azure 가상 머신을 하나 이상 만들어야 합니다.

참고 항목

모니터링 프로필은 모니터링하려는 다양한 유형의 SQL에서 수집할 데이터를 지정합니다. 각 모니터링 가상 머신에는 모니터링 프로필을 하나만 연결할 수 있습니다. 여러 모니터링 프로필이 필요한 경우 각각에 대한 가상 머신을 생성해야 합니다.

Azure 가상 머신 요구 사항

Azure 가상 머신에는 다음과 같은 요구 사항이 있습니다.

  • 운영 체제: Azure Marketplace 이미지를 사용하는 Ubuntu 18.04. 사용자 지정 이미지는 지원되지 않습니다. 이 버전의 Ubuntu에 대한 ESM(확장 보안 유지 관리)을 확보하려면 Ubuntu Pro 18.04 LTS 마켓플레이스 이미지를 사용하는 것이 좋습니다. 자세한 내용은 Azure의 Linux 및 오픈 소스 기술 지원을 참조하세요.
  • 권장되는 최소 Azure 가상 머신 크기: Standard_B2s(CPU 2개, 4GiB 메모리)
  • Azure Monitor 에이전트에서 지원하는 모든 Azure 지역에 배포되고 모든 Azure Monitor 에이전트 필수 구성 요소를 충족합니다.

참고 항목

Standard_B2s(CPU 2개, 4GiB 메모리) 가상 머신 크기는 최대 100개의 연결 문자열을 지원합니다. 단일 가상 머신에 100개가 넘는 연결을 할당해서는 안 됩니다.

SQL 리소스의 네트워크 설정에 따라 모니터링 데이터를 수집하기 위해 네트워크 연결을 생성할 수 있도록 SQL 리소스와 동일한 가상 네트워크에 가상 머신을 배치해야 할 수 있습니다.

네트워크 설정 구성

각 유형의 SQL은 모니터링 가상 머신이 SQL에 안전하게 액세스하는 방법을 제공합니다. 다음 섹션에서는 SQL의 배포 유형에 따른 옵션을 다룹니다.

Azure SQL Database

SQL 인사이트는 가상 네트워크뿐 아니라 퍼블릭 엔드포인트를 통해 Azure SQL Database에 액세스하도록 지원합니다.

퍼블릭 엔드포인트를 통해 액세스하려면 Azure Portal의 방화벽 설정 페이지와 IP 방화벽 설정 섹션에 규칙을 추가합니다. 가상 네트워크에서 액세스를 지정하려면 가상 네트워크 방화벽 규칙Azure Monitor 에이전트에 필요한 서비스 태그를 설정합니다.

Azure Portal에서 Azure SQL Database 페이지의 스크린샷입니다. 서버 방화벽 설정 단추가 강조 표시됩니다.

Azure Portal에서 Azure SQL Database 페이지의 스크린샷입니다. 서버 방화벽 설정 단추가 강조 표시됩니다.

Azure SQL Managed Instance

모니터링 가상 머신이 SQL MI 리소스와 동일한 VNet에 있는 경우 동일한 VNet 내에서 연결을 참조하세요. 모니터링 가상 머신이 SQL MI 리소스와 다른 VNet에 있는 경우 다른 VNet 내에서 연결을 참조하세요.

SQL Server

모니터링 가상 머신이 SQL 가상 머신 리소스와 동일한 VNet에 있는 경우 가상 네트워크를 통해 SQL Server에 연결을 참조하세요. 모니터링 가상 머신이 SQL 가상 머신 리소스와 다른 VNet에 있는 경우 인터넷을 통해 SQL Server에 연결을 참조하세요.

Azure Key Vault에 모니터링 암호 저장

보안을 위해 모니터링 프로필 연결 문자열에 직접 입력하기보다는 SQL 사용자(로그인) 암호를 Key Vault에 저장하는 것이 좋습니다.

SQL 모니터링을 위해 프로필을 설정하는 경우 사용하려는 Key Vault 리소스에 대해 다음 권한 중 하나가 필요합니다.

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.Authorization/roleAssignments/delete

이러한 액세스 권한이 있으면 지정한 Key Vault를 사용하는 SQL Monitoring 프로필을 만드는 과정에서 새 Key Vault 액세스 정책이 자동으로 만들어집니다.

Important

네트워크 및 보안 구성을 통해 모니터링 VM이 Key Vault에 액세스할 수 있도록 해야 합니다. 자세한 내용은 방화벽 뒤에 있는 Azure Key Vault 액세스Azure Key Vault 네트워킹 설정 구성을 참조하세요.

SQL 모니터링 프로필 만들기

Azure Portal의 Azure Monitor 메뉴에 있는 인사이트 섹션에서 SQL(미리 보기)을 선택하여 SQL 인사이트(미리 보기)를 엽니다. 새 프로필 만들기를 선택합니다.

Azure Portal에서 Azure Monitor 페이지의 스크린샷입니다. 새 프로필 만들기 단추가 강조 표시됩니다.

이 프로필은 SQL 시스템에서 수집하려는 정보를 저장합니다. 다음에 대한 특정 설정이 있습니다.

  • Azure SQL Database
  • Azure SQL Managed Instance
  • 가상 머신에서 실행 중인 SQL Server

예를 들어 데이터 수집 빈도, 수집할 데이터 및 데이터를 보낼 작업 영역에 대해 다양한 설정을 사용하여 SQL Production이라는 프로필과 SQL Staging이라는 다른 프로필을 생성할 수 있습니다.

프로필은 선택한 구독 및 리소스 그룹에서 데이터 수집 규칙 리소스로 저장됩니다. 각 프로필에는 다음이 필요합니다.

  • Name(이름): 만든 후에는 편집할 수 없습니다.
  • 위치. Azure 지역입니다.
  • Log Analytics 작업 영역에는 모니터링 데이터가 저장됩니다.
  • 수집할 sql 모니터링 데이터의 빈도 및 유형에 대한 컬렉션 설정입니다.

참고 항목

프로필 위치는 모니터링 데이터를 전송하려는 Log Analytics 작업 영역과 동일한 위치에 있어야 합니다.

Azure Portal의 새 프로필 세부 정보 만들기 페이지의 스크린샷

모니터링 프로필의 세부 정보를 입력한 후 모니터링 프로필 만들기를 선택합니다. 프로필이 배포될 때까지 최대 1분 정도 걸릴 수 있습니다. 모니터링 프로필 콤보 상자에 새 프로필이 나열되어 표시되지 않으면 새로 고침 단추를 선택합니다. 배포가 완료되면 프로필이 표시됩니다. 새 프로필을 선택한 후 프로필 관리 탭을 선택하여 프로필과 연결할 모니터링 컴퓨터를 추가합니다.

모니터링 머신 추가

모니터링 머신 추가를 선택하여 Add monitoring virtual machine 컨텍스트 패널을 열어 SQL 인스턴스를 모니터링하고 연결 문자열을 제공할 가상 머신을 선택합니다.

모니터링 가상 머신의 구독 및 이름을 선택합니다. Key Vault를 사용하여 모니터링 로그인에 대한 비밀번호를 저장하는 경우(강력하게 권장) Key vault subscriptions 아래에서 Key Vault의 구독을 선택한 다음, KeyVault 아래에서 비밀을 저장하는 Key Vault를 선택합니다. Connection strings 필드에 자격 증명 모음 URI와 연결 문자열 사용할 각 비밀번호의 비밀 이름을 입력합니다.

예를 들어 Key Vault URI가 https://mykeyvault.vault.azure.net/이고 비밀 이름이 sqlPassword1sqlPassword2인 경우 Connection strings 필드의 JSON에는 다음이 포함됩니다.

{
   "secrets": {
      "telegrafPassword1": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword1"
      },
      "telegrafPassword2": {
         "keyvault": "https://mykeyvault.vault.azure.net/",
         "name": "sqlPassword2"
      }
   }
}

이제 Connection strings 필드에서 이러한 비밀을 추가로 참조할 수 있습니다. 다음 예제에서 두 연결 문자열은 앞에서 정의한 telegrafPassword1telegrafPassword2 비밀을 참조합니다.

{
   "sqlAzureConnections": [
      "Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword1;"
   ],
   "sqlVmConnections": [
      "Server=mysqlserver1;Port=1433;Database=master;User Id=telegraf;Password=$telegrafPassword2;"
   ]
}

Azure Portal의 모니터링 가상 머신 추가 페이지의 스크린샷입니다. VM을 선택하고 KV URL(사용되는 경우) 및 비밀 이름을 지정합니다. 모니터링할 각 시스템의 연결 문자열을 입력합니다. 연결 문자열에 사용된 비밀을 만든 KV를 선택합니다.

다른 SQL 배포의 연결 문자열을 식별하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

연결 문자열 추가

연결 문자열은 모니터링 데이터를 수집하기 위해 SQL에 로그인할 때 SQL 인사이트(미리 보기)에서 사용해야 하는 로그인 이름을 지정합니다. Key Vault를 사용하여 모니터링 사용자의 암호를 저장하는 경우 Key Vault URI와 암호를 포함하는 비밀의 이름을 제공합니다.

연결 문자열은 SQL 리소스의 각 유형에 따라 달라집니다.

Azure SQL Database

모니터링 컴퓨터에서 데이터베이스에 사용되는 IP 주소 및 포트에 대한 TCP 연결은 네트워크 경로에 있을 수 있는 방화벽 또는 NSG(네트워크 보안 그룹)에서 허용되어야 합니다. IP 주소 및 포트에 대한 자세한 내용은 Azure SQL Database 연결 아키텍처를 참조하세요.

다음 양식으로 연결 문자열을 입력합니다.

"sqlAzureConnections": [
   "Server=mysqlserver1.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;",
   "Server=mysqlserver2.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;"
]

연결 문자열 페이지 및 데이터베이스의 적절한 ADO.NET 엔드포인트에서 세부 정보를 가져옵니다.

읽기 가능한 보조를 모니터링하려면 연결 문자열에 ;ApplicationIntent=ReadOnly를 추가합니다. SQL Insights는 단일 보조 모니터링을 지원합니다. 수집된 데이터는 기본 또는 보조를 반영하도록 태그가 지정됩니다.

Azure SQL Managed Instance

모니터링 컴퓨터에서 관리되는 인스턴스에 사용되는 IP 주소 및 포트에 대한 TCP 연결은 네트워크 경로에 있을 수 있는 방화벽 또는 NSG(네트워크 보안 그룹)에서 허용되어야 합니다. IP 주소 및 포트에 대한 자세한 내용은 Azure SQL Managed Instance 연결 유형을 참조하세요.

다음 양식으로 연결 문자열을 입력합니다.

"sqlManagedInstanceConnections": [
   "Server= mysqlserver1.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;",
   "Server= mysqlserver2.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;" 
] 

연결 문자열 페이지 및 관리되는 인스턴스의 적절한 ADO.NET 엔드포인트에서 세부 정보를 가져옵니다. 관리되는 인스턴스 퍼블릭 엔드포인트를 사용하는 경우 포트 1433을 3342로 대체합니다.

읽기 가능한 보조를 모니터링하려면 연결 문자열에 ;ApplicationIntent=ReadOnly를 추가합니다. SQL Insights는 지정된 주 데이터베이스에 대한 단일 HA(고가용성) 보조 복제본의 모니터링을 지원합니다. 수집된 데이터는 기본 또는 보조를 반영하도록 태그가 지정됩니다.

SQL Server

모니터링하려는 SQL Server 인스턴스에 TCP/IP 프로토콜을 사용하도록 설정해야 합니다. 모니터링 컴퓨터에서 SQL 서버 인스턴스에 사용되는 IP 주소 및 포트에 대한 TCP 연결은 네트워크 경로에 있을 수 있는 방화벽 또는 NSG(네트워크 보안 그룹)에서 허용되어야 합니다.

가용성 그룹 또는 장애 조치(failover) 클러스터 인스턴스를 사용하여 고가용성을 위해 구성된 SQL Server를 모니터링하려면 가용성 그룹 수신기 또는 장애 조치 클러스터 이름을 통해 연결하는 대신 클러스터의 각 SQL Server 인스턴스를 개별적으로 모니터링하는 것이 좋습니다. 이렇게 하면 현재 인스턴스 역할(기본 또는 보조)에 관계없이 모니터링 데이터가 수집됩니다.

다음 양식으로 연결 문자열을 입력합니다.

"sqlVmConnections": [
   "Server=SQLServerInstanceIPAddress1;Port=1433;User Id=$username;Password=$password;",
   "Server=SQLServerInstanceIPAddress2;Port=1433;User Id=$username;Password=$password;"
] 

SQL Server 인스턴스가 수신 대기하는 IP 주소를 사용합니다.

SQL Server 인스턴스가 기본이 아닌 포트에서 수신 대기하도록 구성된 경우 1433을 연결 문자열의 해당 포트 번호로 바꿉니다. Azure 가상 머신의 SQL Server를 사용하는 경우 리소스의 보안 페이지에서 사용할 포트를 확인할 수 있습니다.

Azure Portal의 SQL 가상 머신 보안 페이지의 스크린샷입니다. SQL 가상 머신 보안 페이지에는 포트 필드가 있는 보안 및 네트워킹 섹션이 있습니다.

모든 SQL Server 인스턴스에 대해 TCP 연결이 하나 이상 있는 한 인스턴스에 연결하고 다음 T-SQL 쿼리를 실행하여 수신 대기 중인 모든 IP 주소와 포트를 확인할 수 있습니다.

SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE net_transport = 'TCP'
      AND
      protocol_type = 'TSQL';

모니터링 프로필 생성됨

모니터링 가상 머신 추가를 선택하여 SQL 리소스에서 데이터를 수집하도록 가상 머신을 구성합니다. 개요 탭으로 돌아가지 마세요. 몇 분 후에 상태 열 표시가 “수집 중”으로 변경되며, 모니터링하도록 선택한 SQL 리소스의 데이터가 표시됩니다.

데이터가 표시되지 않으면 SQL 인사이트 문제 해결(미리 보기)을 참조하여 문제를 확인합니다.

SQL용 Azure Monitor의 Azure Portal 페이지의 스크린샷입니다. 인사이트 메뉴에서 SQL이 선택됩니다. 프로필이 만들어진 것으로 표시됩니다.

참고 항목

모니터링 프로필 또는 모니터링 VM의 연결 문자열을 업데이트해야 하는 경우 SQL 인사이트(미리 보기) 프로필 관리 탭을 통해 이 작업을 수행할 수 있습니다. 업데이트가 저장되면 약 5분 이내에 변경 내용이 적용됩니다.

다음 단계