다음을 통해 공유


SQL 인사이트 사용(프리뷰)

적용 대상: Azure SQL Database Azure SQL Managed Instance

중요

SQL 인사이트(프리뷰)는 2024년 12월 31일에 사용이 중지됩니다. 이 날짜까지 Azure SQL용 데이터베이스 Watcher(프리뷰) 또는 다른 데이터베이스 모니터링 솔루션으로 전환하는 것이 좋습니다.

데이터베이스 Watcher를 낮은 데이터 수집 대기 시간, 자산 수준 모니터링, 쿼리 수준 세부 정보를 포함한 포괄적인 모니터링 데이터, 수집된 모니터링 데이터에 대한 고급 분석 지원을 제공하는 관리형 모니터링 솔루션으로 사용하는 것이 좋습니다. 현재 데이터베이스 Watcher는 Azure SQL Database 및 Azure SQL Managed Instance를 지원합니다.

2024년 12월 31일 이후에는 SQL 인사이트(프리뷰)가 지원되지 않으며 Azure Portal에서 이용할 수 없게 됩니다. SQL 인사이트(프리뷰)가 수집한 기존 모니터링 데이터는 모두 Log Analytics 작업 영역에 보관됩니다.

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

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

Log Analytics 작업 영역 만들기

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

모니터링 사용자 만들기

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

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

참고 사항

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을 모니터링하는 데 사용할 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의 배포 유형에 따른 옵션을 다룹니다.

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

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

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

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

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

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

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

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

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

중요

네트워크 및 보안 구성을 통해 모니터링 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
  • Azure VM의 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 리소스의 각 유형에 따라 달라집니다.

모니터링 컴퓨터에서 데이터베이스에 사용되는 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는 단일 보조 모니터링을 지원합니다. 수집된 데이터는 기본 또는 보조를 반영하도록 태그가 지정됩니다.