진단 원격 분석 데이터의 스트리밍 내보내기 구성 - Azure SQL Database 및 SQL Managed Instance
적용 대상: Azure SQL Database Azure SQL Managed Instance
해당 문서에서는 분석을 위해 여러 대상 중 하나로 내보낼 수 있는 Azure SQL Database에 대한 성능 메트릭 및 리소스 로그에 대해 알아봅니다. Azure Portal, PowerShell, Azure CLI, REST API 및 Azure Resource Manager 템플릿을 통해 해당 진단 원격 분석 데이터의 스트리밍 내보내기를 구성하는 방법에 대해 설명합니다.
해당 진단 원격 분석 데이터를 스트림할 수 있는 대상과 선택 항목 중에서 선택하는 방법에 대해서 알아봅니다. 대상 옵션에는 다음이 포함됩니다.
내보내기 위한 진단 원격 분석 데이터
다양한 성능 메트릭 및 추가 데이터베이스 로그를 내보낼 수 있습니다. 다음 표에서는 여러 대상 중 하나로 스트리밍 내보내기를 구성할 수 있는 성능 메트릭 및 리소스 로그에 대해 설명합니다. 이 진단 원격 분석은 단일 데이터베이스, Elastic 풀 및 풀링된 데이터베이스, SQL Managed Instance 및 해당 데이터베이스에 대해 구성할 수 있습니다.
데이터베이스에 대한 진단 원격 분석 데이터 | Azure SQL Database 지원 | Azure SQL Managed Instance 지원 |
---|---|---|
기본 메트릭: DTU/CPU 백분율, DTU/CPU 제한, 물리적 데이터 읽기 백분율, 로그 쓰기 백분율, 방화벽에서 성공/실패/차단된 연결, 세션 백분율, 작업자 백분율, 스토리지, 스토리지 백분율, XTP 스토리지 백분율을 포함합니다. | 예 | 예 |
인스턴스 및 고급 앱: tempdb 시스템 데이터베이스 데이터와 로그 파일 크기 및 사용된 tempdb 비율 로그 파일을 포함합니다. |
Yes | 예 |
QueryStoreRuntimeStatistics: CPU 사용량, 쿼리 기간 통계 등 쿼리 런타임 통계에 대한 정보를 포함합니다. | 예 | 예 |
QueryStoreWaitStatistics: CPU, LOG 및 LOCKING 등 쿼리가 대기된 항목을 나타내는 쿼리 대기 통계에 대한 정보를 포함합니다. | 예 | 예 |
오류: 데이터베이스의 SQL 오류에 대한 정보를 포함합니다. | 예 | 예 |
DatabaseWaitStatistics: 대기 형식에 따라 데이터베이스가 대기하는 데 사용된 시간에 대한 정보를 포함합니다. | 예 | 예 |
타임아웃: 데이터베이스에서 발생한 타임아웃에 대한 정보를 포함합니다. | 예 | 예 |
차단: 데이터베이스의 차단 이벤트에 대한 정보를 포함합니다. | 예 | 예 |
교착 상태: 데이터베이스의 교착 상태 이벤트에 대한 정보를 포함합니다. | 예 | 예 |
AutomaticTuning: 데이터베이스에 대한 자동 튜닝 권장 사항에 대한 정보를 포함합니다. | 예 | 예 |
SQLInsights: 데이터베이스에 대한 성능에 Intelligent Insights를 포함합니다. 자세한 내용은 Intelligent Insights를 참조하세요. | 예 | 예 |
워크로드 관리: Azure Synapse에만 사용 가능 자세한 내용은 Azure Synapse Analytics – 워크로드 관리 포털 모니터링을 참조하세요. | 아니요 | 없음 |
참고 항목
Azure SQL Managed Instance에서는 master
, msdb
, model
, 리소스, tempdb
데이터베이스 등 시스템 데이터베이스에 대해 진단 설정을 구성할 수 없습니다.
스트리밍 내보내기 대상
해당 진단 원격 분석 데이터는 분석을 위해 다음 Azure 리소스 중 하나로 스트림할 수 있습니다.
-
Log Analytics 작업 영역으로 스트림하는 데이터는 SQL Analytics에서 사용할 수 있습니다. SQL Analytics는 성능 보고서, 경고 및 완화 권장 사항을 포함하는 데이터베이스에 대한 지능형 모니터링을 제공하는 클라우드 전용 모니터링 솔루션입니다. Log Analytics 작업 영역으로 스트림하는 데이터는 수집된 다른 모니터링 데이터와 함께 분석할 수 있으며 경고 및 시각화 등의 다른 Azure Monitor 기능을 사용할 수도 있습니다.
-
Azure Event Hub로 스트림하는 데이터는 다음과 같은 기능을 제공합니다.
- 로그를 타사 로깅 및 원격 분석 데이터 스트림에 스트림하기: 모든 메트릭 및 리소스 로그를 단일 이벤트 허브로 스트림하여 로그 데이터를 타사 SIEM 또는 로그 분석 도구로 파이프할 수 있습니다.
- 사용자 지정 원격 분석 및 로깅 플랫폼 빌드: 확장성이 뛰어난 Azure Event Hubs의 게시-구독 특성을 통해 메트릭 및 리소스 로그를 사용자 지정 원격 분석 플랫폼으로 유연하게 수집할 수 있습니다. 자세한 내용은 Azure Event Hubs를 참조하세요.
- Power BI로 데이터를 스트림하여 서비스의 상태 확인: Event Hubs, Stream Analytics 및 Power BI를 사용하여 Azure 서비스에서 진단 데이터를 근 실시간 정보로 변환할 수 있습니다. 해당 솔루션 관련 세부 정보는 Stream Analytics와 Power BI: 스트리밍 데이터 실시간 분석 대시보드를 참조하세요.
-
Azure Storage로 데이터를 스트림하면 위의 두 스트림 옵션에 대한 비용을 절감하여 방대한 양의 진단 원격 분석 데이터를 보관할 수 있습니다.
관련 대상 중 하나로 스트림하는 해당 진단 원격 분석 데이터를 통해 리소스 사용률 및 쿼리 실행 통계를 계산하여 성능 모니터링 작업을 보다 쉽게 수행할 수 있습니다.
진단 원격 분석 데이터의 스트리밍 내보내기 사용 및 구성
다음 방법 중 하나를 사용하여 메트릭 및 진단 원격 분석 로깅을 사용하도록 설정 및 관리할 수 있습니다.
- Azure portal
- PowerShell
- Azure CLI
- Azure Monitor REST API
- Azure Resource Manager 템플릿
참고
감사 로그 스트리밍을 사용하도록 설정하려면 데이터베이스에 대해 감사 설정 및 Azure Monitor 로그 및 Azure Event Hubs의 로그 감사하기를 참조하세요.
진단 원격 분석 데이터의 스트리밍 내보내기 구성
Azure Portal의 진단 설정 메뉴를 사용하여 진단 원격 분석 데이터의 스트리밍을 사용하도록 설정하고 구성할 수 있습니다. 또한 PowerShell, Azure CLI, REST API 및 Resource Manager 템플릿을 사용하여 진단 원격 분석 데이터의 스트리밍을 구성할 수 있습니다. Azure Storage, Azure Event Hubs 및 Azure Monitor 로그를 대상으로 설정하여 진단 원격 분석 데이터를 스트림할 수 있습니다.
중요
진단 원격 분석 데이터의 스트리밍 내보내기는 기본적으로 사용되지 않습니다.
Azure Portal에서 진단 원격 분석 데이터의 스트리밍 내보내기를 구성하는 단계별 참고 자료와 PowerShell 및 Azure CLI와 동일하게 수행하는 스크립트를 보려면 다음 탭 중 하나를 선택합니다.
Azure SQL Database의 탄력적 풀
다음 진단 원격 분석 데이터를 수집하도록 탄력적 풀 리소스를 설정할 수 있습니다.
리소스 | 모니터링 원격 분석 |
---|---|
탄력적 풀 | 기본 메트릭은 eDTU/CPU 백분율, eDTU/CPU 제한, 물리적 데이터 읽기 백분율, 로그 쓰기 백분율, 세션 백분율, 작업자 백분율, 스토리지, 스토리지 백분율, 스토리지 제한 및 XTP 스토리지 백분율을 포함합니다. |
탄력적 풀 및 풀링된 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍을 구성하려면 각 스트리밍을 개별적으로 구성해야 합니다.
- 탄력적 풀에 대한 진단 원격 분석 데이터의 스트리밍 사용
- 탄력적 풀의 각 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍을 사용하도록 설정
탄력적 풀 컨테이너에는 개별 풀링된 데이터베이스의 원격 분석 데이터와는 별도의 고유한 원격 분석 데이터가 있습니다.
탄력적 풀 리소스에 진단 원격 분석 데이터 스트리밍을 사용하도록 설정하려면 다음 단계를 따릅니다.
Azure Portal에서 탄력적 풀 리소스로 이동합니다.
진단 설정을 선택합니다.
이전 설정이 없으면 진단 켜기를 선택하고, 이전 설정이 있으면 설정 편집을 선택하여 이전 설정을 편집합니다.
고유한 참조의 설정 이름을 입력합니다.
스토리지 계정에 보관, 이벤트 허브로 스트림, Log Analytics에 보내기 중에서 진단 데이터를 스트림할 대상 리소스를 선택합니다.
Log Analytics의 경우 +새 작업 영역 만들기를 선택하여 구성을 선택하고 새 작업 영역을 만들거나, 기존 작업 영역을 선택합니다.
탄력적 풀 진단 원격 분석에 대해 기본 메트릭 확인란을 선택합니다.
저장을 선택합니다.
또한 다음 섹션에 설명된 단계에 따라 모니터링하려는 탄력적 풀 내의 각 데이터베이스에 대해 진단 원격 분석 데이터의 스트리밍을 구성합니다.
중요
탄력적 풀에 대한 진단 원격 분석을 구성하는 것 외에도 탄력적 풀의 각 데이터베이스에 대해 진단 원격 분석을 구성해야 합니다.
Azure SQL Database의 데이터베이스
다음 진단 원격 분석 데이터를 수집하도록 데이터베이스 리소스를 설정할 수 있습니다.
리소스 | 모니터링 원격 분석 |
---|---|
단일 또는 풀링된 데이터베이스 | 기본 메트릭은 DTU 백분율, 사용된 DTU, DTU 제한, CPU 백분율, 물리적 데이터 읽기 백분율, 로그 쓰기 백분율, 방화벽에서 성공/실패/차단된 연결, 세션 백분율, 작업자 백분율, 스토리지, 스토리지 백분율, XTP 스토리지 백분율 및 교착 상태를 포함합니다. |
단일 또는 풀링된 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍을 사용하도록 설정하려면 다음 단계를 수행합니다.
Azure SQL Database 리소스로 이동합니다.
진단 설정을 선택합니다.
이전 설정이 없으면 진단 켜기를 선택하고, 이전 설정이 있으면 설정 편집을 선택하여 이전 설정을 편집합니다. 진단 원격 분석 데이터를 스트림하는 병렬 연결을 3개까지 만들 수 있습니다.
+진단 설정 추가를 선택하여 진단 데이터를 여러 리소스로 병렬 스트림하도록 구성합니다.
고유한 참조의 설정 이름을 입력합니다.
스토리지 계정에 보관, 이벤트 허브로 스트림, Log Analytics에 보내기 중에서 진단 데이터를 스트림할 대상 리소스를 선택합니다.
표준 이벤트 기반 모니터링 환경의 경우 데이터베이스 진단 로그 원격 분석에 대해 다음 확인란을 선택합니다. SQLInsights, AutomaticTuning, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, 오류, DatabaseWaitStatistics, 시간 제한, 차단 및 교착 상태.
1분 단위의 고급 모니터링 환경을 위해 기본 메트릭에 대한 확인란을 선택합니다.
저장을 선택합니다.
모니터링하려는 각 데이터베이스에 대해 해당 단계를 반복합니다.
팁
모니터링하려는 각 단일 및 풀링된 데이터베이스에 대해 해당 단계를 반복합니다.
Azure SQL Managed Instance의 인스턴스
다음 진단 원격 분석 데이터를 수집하도록 관리형 인스턴스 리소스를 설정할 수 있습니다.
리소스 | 모니터링 원격 분석 |
---|---|
관리되는 인스턴스 | ResourceUsageStats는 vCore 수, 평균 CPU 백분율, IO 요청 수, 읽은/쓴 바이트, 예약된 스토리지 공간 및 사용된 스토리지 공간을 포함합니다. |
관리형 인스턴스 및 인스턴스 데이터베이스의 진단 원격 분석 데이터의 스트리밍을 구성하려면 각 스트리밍을 별도로 구성해야 합니다.
- 관리형 인스턴스에 대한 진단 원격 분석 데이터의 스트리밍 사용
- 각 인스턴스 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍 사용
관리형 인스턴스 컨테이너에는 각 인스턴스 데이터베이스의 원격 분석 데이터와는 별도의 고유한 원격 분석 데이터가 있습니다.
관리형 인스턴스 리소스에 대한 진단 원격 분석 데이터의 스트리밍을 사용하도록 설정하려면 다음 단계를 따릅니다.
Azure Portal에서 관리형 인스턴스 리소스로 이동합니다.
진단 설정을 선택합니다.
이전 설정이 없으면 진단 켜기를 선택하고, 이전 설정이 있으면 설정 편집을 선택하여 이전 설정을 편집합니다.
고유한 참조의 설정 이름을 입력합니다.
스토리지 계정에 보관, 이벤트 허브로 스트림, Log Analytics에 보내기 중에서 진단 데이터를 스트림할 대상 리소스를 선택합니다.
Log Analytics의 경우 +새 작업 영역 만들기를 선택하여 구성을 선택하고 새 작업 영역을 만들거나, 기존 작업 영역을 사용합니다.
인스턴스 진단 원격 분석을 위해 ResourceUsageStats 확인란을 선택합니다.
저장을 선택합니다.
또한 다음 섹션에 설명된 단계에 따라 모니터링하려는 관리형 인스턴스 내의 각 인스턴스 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍을 구성합니다.
중요
관리형 인스턴스에 대한 진단 원격 분석 데이터를 구성하는 것 외에도 각 인스턴스 데이터베이스에 대한 진단 원격 분석 데이터를 구성해야 합니다.
Azure SQL Managed Instance의 데이터베이스
다음 진단 원격 분석 데이터를 수집하도록 인스턴스 데이터베이스 리소스를 설정할 수 있습니다.
리소스 | 모니터링 원격 분석 |
---|---|
인스턴스 데이터베이스 | 쿼리 저장소 런타임 통계 및 쿼리 저장소 대기 통계에는 데이터베이스에 대한 쿼리 저장소 데이터가 포함됩니다. SQLInsights에는 데이터베이스에 대한 Intelligent Insights 데이터가 포함되어 있습니다. 오류에는 이 데이터베이스에 대한 오류 데이터가 포함됩니다. |
인스턴스 데이터베이스에 대한 진단 원격 분석 데이터의 스트리밍을 사용하도록 설정하려면 다음 단계를 따릅니다.
관리형 인스턴스 내의 인스턴스 데이터베이스 리소스로 이동합니다.
진단 설정을 선택합니다.
이전 설정이 없으면 진단 켜기를 선택하고, 이전 설정이 있으면 설정 편집을 선택하여 이전 설정을 편집합니다.
- 진단 원격 분석 데이터를 스트림하는 병렬 연결을 3개까지 만들 수 있습니다.
- +진단 설정 추가를 선택하여 진단 데이터를 여러 리소스로 병렬 스트림하도록 구성합니다.
고유한 참조의 설정 이름을 입력합니다.
스토리지 계정에 보관, 이벤트 허브로 스트림, Log Analytics에 보내기 중에서 진단 데이터를 스트림할 대상 리소스를 선택합니다.
데이터베이스 진단 원격 분석을 위해 SQLInsights, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics 및 오류 확인란을 선택합니다.
저장을 선택합니다.
모니터링하려는 각 인스턴스 데이터베이스에 대해 해당 단계를 반복합니다.
팁
모니터링하려는 각 인스턴스 데이터베이스에 대해 해당 단계를 반복합니다.
SQL Analytics로 스트림하기
Log Analytics 작업 영역으로 스트림되는 Azure SQL Database 및 Azure SQL Managed Instance 메트릭 및 리소스 로그는 Azure SQL Analytics에서 사용할 수 있습니다. Azure SQL Analytics는 단일 데이터베이스, 탄력적 풀, 풀링된 데이터베이스, 대규모 및 여러 구독에서 관리형 인스턴스 및 인스턴스 데이터베이스의 성능을 모니터링하는 클라우드 솔루션입니다. 성능 메트릭을 수집 및 시각화하는 데 도움이 될 수 있으며 성능 문제 해결을 위한 기본 제공 인텔리전스를 제공합니다.
설치 개요
다음 단계를 수행함으로써 Azure SQL Analytics를 사용하여 데이터베이스 및 데이터베이스 컬렉션의 컬렉션을 모니터링할 수 있습니다.
- Azure Marketplace에서 Azure SQL 분석 솔루션을 만듭니다.
- 솔루션에 Log Analytics 작업 영역을 만듭니다.
- 진단 원격 분석 데이터를 작업 영역으로 스트림하는 데이터베이스를 구성합니다.
Azure Portal의 진단 설정 탭에서 기본 제공 Log Analytics로 보내기 옵션을 사용하여 해당 진단 원격 분석 데이터의 스트리밍 내보내기를 구성할 수 있습니다. 또한 PowerShell cmdlets, Azure CLI, Azure Monitor REST API, 또는 Resource Manager 템플릿을 통해 진단 설정을 사용하여 Log Analytics 작업 영역으로 스트리밍을 사용하도록 설정할 수 있습니다.
Azure SQL Analytics 리소스 만들기
Azure Marketplace에서 Azure SQL 분석을 검색하고 선택합니다.
솔루션의 개요 화면에서 만들기를 선택합니다.
필요한 추가 정보(작업 영역 이름, 구독, 리소스 그룹, 위치 및 가격 책정 계층)를 Azure SQL 분석 양식에 입력합니다.
확인을 선택하여 확인한 후 만들기를 선택합니다.
메트릭 및 리소스 로그를 기록하도록 리소스 구성
단일 및 풀링된 데이터베이스, 탄력적 풀, 관리형 인스턴스 및 인스턴스 데이터베이스에 대해 진단 원격 분석 데이터 스트리밍을 별도로 구성해야 합니다. 리소스가 메트릭을 기록하는 위치를 구성하는 가장 쉬운 방법은 Azure Portal을 사용하는 것입니다. 세부 단계는 진단 원격 분석 데이터의 스트리밍 내보내기 구성을 참조하세요.
Azure SQL Analytics 사용한 모니터링 및 경고
SQL Analytics를 계층적 대시보드로 사용하여 데이터베이스 리소스를 볼 수 있습니다.
- Azure SQL Analytics 사용 방법에 대한 자세한 내용은 SQL Analytics를 사용한 모니터링을 참조하세요.
- SQL Analytics에서 경고를 설정하는 방법에 대한 자세한 내용은 데이터베이스, 탄력적 풀 및 관리형 인스턴스에 대한 경고 만들기를 참조하세요.
Event Hubs로 스트림
Azure Portal에서 기본 제공되는 이벤트 허브로 스트림하기 옵션을 사용하여 Azure SQL Database 및 Azure SQL Managed Instance 메트릭 및 리소스 로그를 Event Hubs로 스트림할 수 있습니다. 또한 PowerShell cmdlet, Azure CLI 또는 Azure Monitor REST API를 통해 진단 설정을 사용하여 Service Bus 규칙 ID를 사용하도록 설정할 수도 있습니다. 이벤트 허브는 데이터베이스 및 서버와 동일한 지역에 있어야 합니다.
Event Hubs에서 메트릭 및 리소스 로그를 사용하여 수행할 작업
선택한 데이터가 Event Hubs로 스트리밍되면 고급 모니터링 시나리오를 사용할 수 있는 단계에 한 단계 더 가까워집니다. Event Hubssms 이벤트 파이프라인의 프런트 도어 역할을 합니다. 데이터는 이벤트 허브로 수집된 후 실시간 분석 공급자 또는 스토리지 어댑터를 사용하여 변환 및 저장될 수 있습니다. Event Hubs는 해당 이벤트 소비에서 이벤트 스트림 프로덕션을 분리합니다. 이러한 방식으로 이벤트 소비자는 자체 일정에 따라 이벤트를 액세스할 수 있습니다. Event Hubs에 대한 자세한 내용은 다음을 참조하세요.
Event Hubs의 스트림된 메트릭을 사용하여 다음을 수행할 수 있습니다.
Power BI로 핫 패스 데이터를 스트림하여 서비스 상태 확인
Event Hubs, Stream Analytics 및 PowerBI를 사용하여 Azure 서비스에서 메트릭 및 진단 데이터를 거의 실시간 정보로 간편하게 변환할 수 있습니다. Event Hubs를 설정하고 Stream Analytics로 데이터를 처리하며 출력으로 PowerBI를 사용하는 방법에 대한 개요는 Stream Analytics 및 Power BI를 참조하세요.
로그를 타사 로깅 및 원격 분석 데이터 스트림에 스트림하기
Event Hubs 스트리밍을 사용하여 메트릭 및 리소스 로그를 다양한 타사 모니터링 및 로그 분석 솔루션으로 가져올 수 있습니다.
사용자 지정 원격 분석 또는 로깅 플랫폼 빌드
사용자 지정 빌드 원격 분석 플랫폼이 이미 있거나 빌드를 고려하고 있나요? 확장성이 뛰어난 Event Hubs의 게시-구독 특성을 통해 메트릭 및 리소스 로그를 유연하게 수집할 수 있습니다. 자세한 내용은 Azure Event Hubs를 참조하세요.
Azure Storage에 스트림
Azure Portal에서 기본 제공되는 스토리지 계정에 보관 옵션을 사용하여 메트릭 및 리소스 로그를 Azure Storage에 저장할 수 있습니다. PowerShell cmdlet, Azure CLI 또는 Azure Monitor REST API를 통해 진단 설정을 사용하여 Storage를 사용하도록 설정할 수도 있습니다.
스토리지 계정의 메트릭 및 리소스 로그 스키마
메트릭 및 리소스 로그 컬렉션을 설정하면 첫 번째 데이터 행을 사용할 수 있을 때 선택한 스토리지 계정에 스토리지 컨테이너가 만들어집니다. Blob의 구조는 다음과 같습니다.
insights-{metrics|logs}-{category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/ RESOURCEGROUPS/{resource group name}/PROVIDERS/Microsoft.SQL/servers/{resource_server}/ databases/{database_name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
또는 더 간단하게 다음과 같습니다.
insights-{metrics|logs}-{category name}/resourceId=/{resource Id}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
예를 들어 기본 메트릭에 대한 Blob 이름은 다음과 같을 수 있습니다.
insights-metrics-minute/resourceId=/SUBSCRIPTIONS/s1id1234-5679-0123-4567-890123456789/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.SQL/ servers/Server1/databases/database1/y=2016/m=08/d=22/h=18/m=00/PT1H.json
탄력적 풀의 데이터를 저장하기 위한 BLOB 이름은 다음과 같습니다.
insights-{metrics|logs}-{category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/ RESOURCEGROUPS/{resource group name}/PROVIDERS/Microsoft.SQL/servers/{resource_server}/ elasticPools/{elastic_pool_name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
데이터 보존 정책 및 가격 책정
Event Hubs 또는 스토리지 계정을 선택하면 보존 정책을 지정할 수 있습니다. 이 정책은 선택한 기간보다 오래된 데이터를 삭제합니다. Log Analytics를 지정한 경우 선택한 가격 책정 계층에 따라 보존 정책이 달라집니다. 이 경우 제공되는 데이터 수집 무료 단위만큼 매월 여러 데이터베이스를 무료로 모니터링할 수 있습니다. 체험 단위를 초과하는 진단 원격 분석 데이터 사용에는 요금이 부과될 수 있습니다.
중요
워크로드가 많은 활성 데이터베이스는 유휴 데이터베이스보다 더 많은 데이터를 수집합니다. 자세한 내용은 Log Analytics 가격 책정을 참조하세요.
Azure SQL Analytics를 사용하는 경우 Azure SQL Analytics의 탐색 메뉴에서 OMS 작업 영역을 선택한 다음, 사용량 및 예상 비용을 선택하여 데이터 수집 사용량을 모니터링할 수 있습니다.
사용 가능한 메트릭 및 로그
단일 데이터베이스, 풀링된 데이터베이스, 탄력적 풀, 관리되는 인스턴스 및 인스턴스 데이터베이스에 사용할 수 있는 모니터링 원격 분석 데이터는 이 섹션에서 설명됩니다. SQL Analytics 내에서 수집된 모니터링 원격 분석 데이터는 Azure Monitor 로그 쿼리 언어를 사용하여 사용자 지정 분석 및 애플리케이션 개발에 사용할 수 있습니다.
기본 메트릭
리소스별 기본 메트릭에 대한 세부 정보는 다음 표를 참조하세요.
참고
기본 메트릭 옵션은 기존에는 모든 메트릭으로 명명되어 있었습니다. 변경 내용은 이름 지정에만 적용되었으며, 모니터링되는 메트릭에 대한 변경 내용은 없습니다. 해당 변경은 향후에 추가 메트릭 범주를 도입할 수 있도록 하기 위해 이루어졌습니다.
탄력적 풀에 대한 기본 메트릭
리소스 | 메트릭 |
---|---|
탄력적 풀 | eDTU 백분율, 사용된 eDTU, eDTU 제한, CPU 백분율, 실제 데이터 읽기 백분율, 로그 쓰기 백분율, 세션 백분율, 작업자 백분율, 스토리지, 스토리지 백분율, 스토리지 용량 한도, XTP 스토리지 백분율을 포함합니다. |
단일 및 풀링된 데이터베이스에 대한 기본 메트릭
리소스 | 메트릭 |
---|---|
단일 및 풀링된 데이터베이스 | DTU 백분율, 사용된 DTU, DTU 제한, CPU 백분율, 실제 데이터 읽기 백분율, 로그 쓰기 백분율, 성공/실패/방화벽 연결에 의해 차단됨, 세션 백분율, 작업자 백분율, 스토리지, 스토리지 백분율, XTP 스토리지 백분율, 교착 상태를 포함합니다. |
고급 메트릭
고급 메트릭에 대한 세부 정보는 다음 표를 참조하세요.
메트릭 | 메트릭 표시 이름 | 설명 |
---|---|---|
sql_instance_cpu_percent 1 | SQL 인스턴스 CPU 비율 | 운영 체제에서 측정한 모든 사용자 및 시스템 워크로드의 CPU 사용량 |
sql_instance_memory_percent 1 | SQL 인스턴스 메모리 백분율 | 운영 체제에서 측정한 데이터베이스 엔진 인스턴스의 메모리 사용량 |
tempdb_data_size 2 | tempdb 데이터 파일 크기(KB) |
tempdb 데이터 파일 크기(KB). |
tempdb_log_size 2 | tempdb 로그 파일 크기(KB) |
tempdb 로그 파일 크기(KB). |
tempdb_log_used_percent 2 | tempdb 사용된 로그 백분율 |
tempdb 사용된 로그 백분율. |
1 해당 메트릭은 2개 이상의 vCore을 포함한 vCore 구매 모델, 또는 200 DTU 이상의 DTU 기반 구매 모델을 사용하는 데이터베이스에 사용할 수 있습니다.
2 해당 메트릭은 2개 이상의 vCore을 포함한 vCore 구매 모델, 또는 200 DTU 이상의 DTU 기반 구매 모델을 사용하는 데이터베이스에 사용할 수 있습니다. 이 메트릭은 현재 Synapse Analytics SQL 풀에서 사용할 수 없습니다.
참고 항목
7일 이상 비활성 상태인 데이터베이스에서는 기본 메트릭과 고급 메트릭을 모두 사용할 수 없습니다.
기본 로그
모든 로그에 사용할 수 있는 원격 분석의 세부 정보는 다음 표에 설명되어 있습니다. 자세한 내용은 지원되는 진단 원격 분석을 참조하세요.
관리형 인스턴스의 리소스 사용량 통계
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: ResourceUsageStats |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: MANAGEDINSTANCES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 관리되는 인스턴스의 이름 |
ResourceId | 리소스 URI |
SKU_s | SQL Managed Instance 제품 SKU |
virtual_core_count_s | 사용 가능한 vCore 수 |
avg_cpu_percent_s | 평균 CPU 비율 |
reserved_storage_mb_s | 관리되는 인스턴스의 예약된 스토리지 용량 |
storage_space_used_mb_s | 관리되는 인스턴스의 사용된 스토리지 |
io_requests_s | IOPS 수 |
io_bytes_read_s | 읽은 IOPS 바이트 수 |
io_bytes_written_s | 쓴 IOPS 바이트 수 |
쿼리 저장소 런타임 통계
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: QueryStoreRuntimeStatistics |
OperationName | 작업의 이름입니다. 항상: QueryStoreRuntimeStatisticsEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
query_hash_s | 쿼리 해시 |
query_plan_hash_s | 쿼리 계획 해시 |
statement_sql_handle_s | 문 SQL 핸들 |
interval_start_time_d | 1900-1-1부터 틱 수로 간격의 시작 datetimeoffset |
interval_end_time_d | 1900-1-1부터 틱 수로 간격의 종료 datetimeoffset |
logical_io_writes_d | 총 논리적 IO 쓰기 수 |
max_logical_io_writes_d | 실행당 최대 논리적 IO 쓰기 수 |
physical_io_reads_d | 총 물리적 IO 읽기 수 |
max_physical_io_reads_d | 실행당 최대 논리적 IO 읽기 수 |
logical_io_reads_d | 총 논리적 IO 읽기 수 |
max_logical_io_reads_d | 실행당 최대 논리적 IO 읽기 수 |
execution_type_d | 실행 형식 |
count_executions_d | 쿼리의 실행 수 |
cpu_time_d | 쿼리에 사용된 총 CPU 시간(밀리초) |
max_cpu_time_d | 단일 실행에 사용된 최대 CPU 시간 소비자(밀리초) |
dop_d | 병렬 처리 수준 합계 |
max_dop_d | 단일 실행에 사용된 최대 병렬 처리 수준 |
rowcount_d | 반환된 총 행 수 |
max_rowcount_d | 단일 실행으로 반환된 최대 행 수 |
query_max_used_memory_d | 사용된 총 메모리 양(KB) |
max_query_max_used_memory_d | 단일 실행에 사용된 최대 메모리 양(KB) |
duration_d | 총 실행 시간(밀리초) |
max_duration_d | 단일 실행의 최대 실행 시간 |
num_physical_io_reads_d | 총 물리적 읽기 수 |
max_num_physical_io_reads_d | 실행당 최대 물리적 읽기 수 |
log_bytes_used_d | 사용된 총 로그 바이트 양 |
max_log_bytes_used_d | 실행당 사용된 최대 로그 바이트 양 |
query_id_d | 쿼리 저장소의 쿼리 ID |
plan_id_d | 쿼리 저장소의 계획 ID |
쿼리 저장소 런타임 통계 데이터에 대해 자세히 알아봅니다.
쿼리 저장소 대기 통계
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: QueryStoreWaitStatistics |
OperationName | 작업의 이름입니다. 항상: QueryStoreWaitStatisticsEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
wait_category_s | 대기 범주 |
is_parameterizable_s | 매개 변수화할 수 있는 쿼리 |
statement_type_s | 문 형식 |
statement_key_hash_s | 문 키 해시 |
exec_type_d | 실행 형식 |
total_query_wait_time_ms_d | 특정 대기 범주의 총 쿼리 대기 시간 |
max_query_wait_time_ms_d | 특정 대기 범주 개별 실행의 최대 쿼리 대기 시간. |
query_param_type_d | 0 |
query_hash_s | 쿼리 저장소의 쿼리 해시 |
query_plan_hash_s | 쿼리 저장소의 쿼리 계획 해시 |
statement_sql_handle_s | 쿼리 저장소의 문 핸들 |
interval_start_time_d | 1900-1-1부터 틱 수로 간격의 시작 datetimeoffset |
interval_end_time_d | 1900-1-1부터 틱 수로 간격의 종료 datetimeoffset |
count_executions_d | 쿼리 실행 수 |
query_id_d | 쿼리 저장소의 쿼리 ID |
plan_id_d | 쿼리 저장소의 계획 ID |
오류 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: Errors |
OperationName | 작업의 이름입니다. 항상: ErrorEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
메시지 | 일반 텍스트의 오류 메시지 |
user_defined_b | 오류 사용자 정의 비트 |
error_number_d | 오류 코드 |
심각도 | 오류의 심각도 |
state_d | 오류 상태 |
query_hash_s | 실패한 쿼리의 쿼리 해시(있는 경우) |
query_plan_hash_s | 실패한 쿼리의 쿼리 계획 해시(있는 경우) |
SQL 오류 메시지에 대한 자세한 정보.
데이터베이스 대기 통계 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: DatabaseWaitStatistics |
OperationName | 작업의 이름입니다. 항상: DatabaseWaitStatisticsEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
wait_type_s | 대기 형식 이름 |
start_utc_date_t [UTC] | 측정 기간 시작 시간 |
end_utc_date_t [UTC] | 측정 기간 종료 시간 |
delta_max_wait_time_ms_d | 실행당 최대 대기 시간 |
delta_signal_wait_time_ms_d | 총 신호 대기 시간 |
delta_wait_time_ms_d | 기간의 총 대기 시간 |
delta_waiting_tasks_count_d | 대기 작업 수 |
제한 시간 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: Timeouts |
OperationName | 작업의 이름입니다. 항상: TimeoutEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
error_state_d | 쿼리 시간 제한과 연결된 숫자 상태 값(주의 이벤트) |
query_hash_s | 쿼리 해시(있는 경우) |
query_plan_hash_s | 쿼리 계획 해시(있는 경우) |
차단 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: Blocks |
OperationName | 작업의 이름입니다. 항상: BlockEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
lock_mode_s | 쿼리에 사용된 잠금 모드 |
resource_owner_type_s | 잠금 소유자 |
blocked_process_filtered_s | 차단된 프로세스 보고서 XML |
duration_d | 잠금 기간(밀리초) |
교착 상태 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: 교착 상태 |
OperationName | 작업의 이름입니다. 항상: DeadlockEvent |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
deadlock_xml_s | 교착 상태 보고서 XML |
자동 조정 데이터 세트
속성 | 설명 |
---|---|
TenantId | 테넌트 ID |
SourceSystem | 항상: Azure |
TimeGenerated [UTC] | 로그가 기록된 때의 타임스탬프 |
유형 | 항상: AzureDiagnostics |
ResourceProvider | 리소스 공급자의 이름. 항상: MICROSOFT.SQL |
범주 | 범주 이름. 항상: AutomaticTuning |
리소스 | 리소스 이름 |
ResourceType | 리소스 형식 이름. 항상: SERVERS/DATABASES |
SubscriptionId | 데이터베이스의 구독 GUID |
ResourceGroup | 데이터베이스의 리소스 그룹 이름 |
LogicalServerName_s | 데이터베이스의 서버 이름 |
LogicalDatabaseName_s | 데이터베이스 이름 |
ElasticPoolName_s | 데이터베이스에 대한 탄력적 풀 이름(있는 경우) |
DatabaseName_s | 데이터베이스 이름 |
ResourceId | 리소스 URI |
RecommendationHash_s | 자동 튜닝 권장 사항의 고유 해시 |
OptionName_s | 자동 조정 작업 |
Schema_s | 데이터베이스 스키마 |
Table_s | 영향을 받는 테이블 |
IndexName_s | 인덱스 이름 |
IndexColumns_s | 열 이름 |
IncludedColumns_s | 포함된 열 |
EstimatedImpact_s | 자동 튜닝 권장 사항 JSON의 예상 효과 |
Event_s | 자동 조정 이벤트의 형식 |
Timestamp_t | 마지막으로 업데이트한 타임스탬프 |
팁
query_hash_s
및 query_plan_hash_s
는 숫자 값으로 제공됩니다. 쿼리 저장소에서 일치하는 쿼리 및 쿼리 계획을 찾으려면 다음 T-SQL 식을 사용하여 숫자 해시 값을 sys.query_store_query 및 sys.query_store_plan에 사용되는 이진 해시 값으로 변환합니다.
SELECT CAST(CAST(hash_value as bigint) AS binary(8))
.
hash_value
자리 표시자를 실제 query_hash_s
또는 query_plan_hash_s
숫자 값으로 바꿉니다.
Intelligent Insights 데이터 세트
Intelligent Insights 로그 형식에 대해 자세히 알아봅니다.
다음 단계
로깅을 사용하도록 설정하는 방법을 알아보고 여러 Azure 서비스에서 지원되는 메트릭과 로그 범주를 이해하려면 다음을 참조하세요.
Event Hubs에 대해 알아보려면 다음을 확인합니다.
Log Analytics의 원격 분석 데이터를 기반으로 경고를 설정하는 방법에 대한 자세한 내용은 다음을 참조하세요.