Azure Monitor는 시스템에서 메트릭 및 로그를 수집 및 집계하여 가용성, 성능 및 복원력을 모니터링하고 시스템에 영향을 주는 문제를 알려 줍니다. Azure Portal, PowerShell, Azure CLI, REST API 또는 클라이언트 라이브러리를 사용하여 모니터링 데이터를 설정하고 볼 수 있습니다.
리소스 유형에 따라 다른 메트릭 및 로그를 사용할 수 있습니다. 이 문서에서는 이 서비스에 대해 수집할 수 있는 모니터링 데이터 유형과 해당 데이터를 분석하는 방법을 설명합니다.
Azure Monitor를 사용하여 데이터 수집
이 표에서는 서비스를 모니터링하기 위해 데이터를 수집하는 방법과 수집된 데이터로 수행할 수 있는 작업을 설명합니다.
수집할 데이터 | 설명 | 데이터를 수집하고 라우팅하는 방법 | 데이터를 볼 수 있는 위치 | 지원되는 데이터 |
---|---|---|---|---|
메트릭 데이터 | 메트릭은 특정 시점에 시스템의 측면을 설명하는 숫자 값입니다. 메트릭은 다른 메트릭과 비교하여 알고리즘을 사용하여 집계하고 시간에 따른 추세를 분석할 수 있습니다. | - 정기적으로 자동으로 수집됩니다. - 일부 플랫폼 메트릭을 Log Analytics 작업 영역으로 라우팅하여 다른 데이터를 쿼리할 수 있습니다. 각 메트릭의 DS 내보내기 설정을 확인하여 진단 설정을 사용하여 메트릭 데이터를 라우팅할 수 있는지 확인합니다. |
메트릭 탐색기 | Azure Database for MySQL - Azure Monitor에서 지원하는 유연한 서버 메트릭 |
리소스 로그 데이터 | 로그는 타임스탬프를 사용하여 기록된 시스템 이벤트입니다. 로그는 다양한 형식의 데이터를 포함할 수 있으며 구조화되거나 자유 형식의 텍스트일 수 있습니다. 쿼리 및 분석을 위해 리소스 로그 데이터를 Log Analytics 작업 영역으로 라우팅할 수 있습니다. | 리소스 로그 데이터를 수집하고 라우팅하는 진단 설정 만듭니다. | Log Analytics | Azure Database for MySQL - Azure Monitor에서 지원하는 유연한 서버 리소스 로그 데이터 |
활동 로그 데이터 | Azure Monitor 활동 로그는 구독 수준 이벤트에 대한 인사이트를 제공합니다. 활동 로그에는 리소스가 수정되거나 가상 머신이 시작된 경우와 같은 정보가 포함됩니다. | - 자동으로 수집됩니다. - 무료로 Log Analytics 작업 영역에 진단 설정을 만듭니다. |
활동 로그 |
Azure Monitor에서 지원하는 모든 데이터 목록은 다음을 참조하세요.
Azure Database for MySQL - 유연한 서버에 대한 기본 제공 모니터링
Azure Database for MySQL - 유연한 서버는 모니터링을 위한 기본 제공 리소스를 제공합니다.
서버 로그
Azure Database for MySQL 유연한 서버에서 사용자는 문제 해결 작업을 지원하기 위해 서버 로그를 구성하고 다운로드할 수 있습니다. 이 기능을 사용하도록 설정하면 Azure Database for MySQL 유연한 서버 인스턴스가 선택한 로그 형식의 이벤트 캡처를 시작하고 파일에 씁니다. 그런 다음, Azure Portal 및 Azure CLI를 사용하여 파일을 다운로드하여 작업할 수 있습니다.
서버 로그 기능은 기본적으로 사용하지 않도록 설정되어 있습니다. 서버 로그를 사용하도록 설정하는 방법에 대한 자세한 내용은 Azure Database for MySQL - 유연한 서버에 대한 서버 로그 활성화 및 다운로드를 참조하세요.
서버 로그는 느린 쿼리 로그와 오류 로그의 활성화 및 다운로드를 지원합니다. 데이터의 기록 분석을 수행하려면 Azure Portal의 서버에 대한 진단 설정 창에서 로그 분석 작업 영역, Azure Storage 또는 이벤트 허브로 로그를 보내는 진단 설정을 추가합니다. 자세한 내용은 진단 설정을 참조하세요.
Azure Database for MySQL 유연한 서버 인스턴스에 대해 로깅을 사용하도록 설정하면 로그를 만든 후 최대 7일까지 사용할 수 있습니다. 사용 가능한 로그의 전체 크기가 7GB를 초과하면 여유 공간이 생길 때까지 가장 오래된 파일이 삭제됩니다. 서버 로그에 대한 7GB 스토리지 제한은 무료로 사용할 수 있으며 확장할 수 없습니다. 로그는 24시간마다 또는 500MB마다 순환됩니다(먼저 도달하는 쪽이 적용됨).
Azure Database for MySQL - 유연한 서버에서 느린 쿼리 로그
Azure Database for MySQL 유연한 서버에서 느린 쿼리 로그는 사용자가 구성하고 액세스하는 데 사용할 수 있습니다. 느린 쿼리 로그는 기본적으로 사용하지 않도록 설정되어 있으므로 문제 해결 중 성능 병목 상태를 식별하는 데 도움이 됩니다.
MySQL 느린 쿼리 로그에 대한 자세한 내용은 MySQL 엔진 설명서의 느린 쿼리 로그 섹션을 참조하세요.
느린 쿼리 로깅 구성
기본적으로 느린 쿼리 로그는 비활성화됩니다. 로그를 사용하려면, slow_query_log
서버 매개 변수를 ON으로 설정합니다. 이 매개 변수는 Azure Portal 또는 Azure CLI를 사용하여 구성할 수 있습니다.
느린 쿼리 로깅 동작을 제어하기 위해 조정할 수 있는 다른 매개 변수는 다음과 같습니다.
- long_query_time: 완료하는 데
long_query_time
(초 단위)보다 오래 걸리면 쿼리를 로그합니다. 기본값은 10초입니다. 서버 매개 변수long_query_time
은 MySQL에서 새로 설정된 모든 연결에 전역적으로 적용됩니다. 그러나 이미 연결된 스레드에는 영향을 주지 않습니다. 애플리케이션에서 Azure Database for MySQL 유연한 서버에 다시 연결하거나 서버를 다시 시작하여 이전 값이long_query_time
있는 스레드를 지우고 업데이트된 매개 변수 값을 적용하는 것이 좋습니다. - log_slow_admin_statements: 관리 문(예:
ALTER_TABLE
,ANALYZE_TABLE
)이 기록되는지 여부를 결정합니다. - log_queries_not_using_indexes: 인덱스를 사용하지 않는 쿼리가 로그되는지 여부를 결정합니다.
- log_throttle_queries_not_using_indexes: 느린 쿼리 로그에 쓸 수 있는 인덱스되지 않은 쿼리 수를 제한합니다. 이 매개 변수는
log_queries_not_using_indexes
가 ON으로 설정된 경우에 적용됩니다.
중요합니다
테이블이 인덱싱되지 않은 경우 log_queries_not_using_indexes
log_throttle_queries_not_using_indexes
매개 변수를 설정하면 MySQL 성능에 영향을 줄 수 있습니다. 이러한 인덱스되지 않은 테이블에 대해 실행되는 모든 쿼리는 느린 쿼리 로그에 기록됩니다.
느린 쿼리 로그 매개 변수의 전체 설명은 MySQL 느린 쿼리 로그 설명서를 참조하세요.
느린 쿼리 로그 액세스
느린 쿼리 로그는 Azure Monitor 진단 설정과 통합됩니다. Azure Database for MySQL 유연한 서버 인스턴스에서 느린 쿼리 로그를 사용하도록 설정한 후 Azure Monitor 로그, Event Hubs 또는 Azure Storage로 내보낼 수 있습니다. 진단 설정에 관한 자세한 정보는 진단 로그 설명서를 참조하세요. Azure Portal에서 진단 설정을 사용하도록 설정하는 방법에 대한 자세한 정보는 느린 쿼리 로그 포털 문서를 참조하세요.
비고
진단 및 설정을 통해 Azure Storage로 로그를 보내는 경우 Premium Storage 계정은 지원되지 않습니다.
다음 표는 느린 쿼리 로그의 출력에 대해 설명합니다. 출력 메서드에 따라 포함된 필드와 표시되는 순서가 다를 수 있습니다.
재산 | 설명 |
---|---|
TenantId |
테넌트 ID |
SourceSystem |
Azure |
TimeGenerated [UTC] |
UTC에 로그가 기록된 때의 타임스탬프 |
Type |
로그의 형식. 항상 AzureDiagnostics |
SubscriptionId |
서버가 속한 구독의 GUID |
ResourceGroup |
서버가 속한 리소스 그룹의 이름 |
ResourceProvider |
리소스 공급자의 이름. 항상 MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
리소스 URI |
Resource |
서버의 이름 |
Category |
MySqlSlowLogs |
OperationName |
LogEvent |
Logical_server_name_s |
서버의 이름 |
start_time_t [UTC] |
쿼리가 시작된 시간 |
query_time_s |
쿼리를 실행하는 데 걸린 총 시간(초) |
lock_time_s |
쿼리가 잠긴 총 시간(초) |
user_host_s |
사용자 이름 |
rows_sent_s |
전송된 행 수 |
rows_examined_s |
검사된 행 수 |
last_insert_id_s |
마지막_삽입_아이디 |
insert_id_s |
ID 삽입 |
sql_text_s |
전체 쿼리 |
server_id_s |
서버 ID |
thread_id_s |
스레드 ID |
\_ResourceId |
리소스 URI |
비고
의 경우 sql_text_s
로그가 2048자를 초과하면 잘립니다.
감사 로그를 사용하여 데이터베이스 활동 추적
Azure Database for MySQL 유연한 서버는 사용자에게 감사 로그를 구성할 수 있는 기능을 제공합니다. 감사 로그는 연결, 관리, DDL 및 DML 이벤트를 비롯한 데이터베이스 수준 활동을 추적하는 데 사용할 수 있습니다. 이러한 유형의 로그는 일반적으로 규정 준수를 위해 사용됩니다.
감사 로깅을 구성
중요합니다
감사 목적에 필요한 이벤트 유형 및 사용자만 기록하는 것이 좋습니다. 이 방법을 사용하면 서버 성능에 큰 영향을 주지 않고 최소한의 데이터가 수집됩니다.
기본적으로 감사 로그는 사용하도록 설정되어 있지 않습니다. 감사 로깅을 사용하도록 설정하려면 audit_log_enabled
서버 매개 변수를 ON으로 설정합니다. Azure Portal 또는 Azure CLI를 사용하여 감사 로그를 사용하도록 설정합니다.
감사 로깅 동작을 제어하기 위해 조정할 수 있는 다른 매개 변수는 다음과 같습니다.
audit_log_events
: 이벤트가 기록되도록 제어합니다. 특정 감사 이벤트는 다음 표를 참조하세요.audit_log_include_users
: 로깅에 포함할 MySQL 사용자입니다. 이 매개 변수의 기본값은 비어 있으며, 여기에는 로깅을 위한 모든 사용자가 포함됩니다. 이 매개 변수는audit_log_exclude_users
보다 우선 순위가 높습니다. 매개 변수의 최대 길이는 512자입니다. 예를 들어 와일드카드 값dev*
에는dev
같은 키워드 로 시작하는 항목이 있는 모든 사용자가 포함됩니다. 사용자를 포함하기 위한 와일드카드 항목의 또 다른 예는 이 예제에서*dev
가 "stage_dev,prod_dev,user_dev" 값으로 끝나는 모든 사용자가 감사 로그 항목에 포함됩니다. 또한 와일드카드 문자로 물음표(?)
의 사용은 패턴에서 허용됩니다.audit_log_exclude_users
: 로깅에서 제외할 MySQL 사용자입니다. 매개 변수의 최대 길이는 512자입니다. 사용자에 대한 와일드카드 항목도 감사 로그에서 사용자를 제외하도록 허용됩니다. 예를 들어 와일드카드 값은stage*
stage
같은 키워드 로 시작하는 항목이 있는 모든 사용자를 제외합니다. 사용자를 제외하기 위한 와일드카드 항목의 또 다른 예는 다음과 같습니다*com
. 이 예제에서는 값com
으로 끝나는 모든 사용자가 감사 로그 항목에서 제외됩니다. 또한 와일드카드 문자로 물음표(?)
의 사용은 패턴에서 허용됩니다.
비고
audit_log_include_users
는 audit_log_exclude_users
보다 우선순위가 높습니다. 예를 들어 if audit_log_include_users
= demouser
및audit_log_exclude_users
= demouser
, 사용자는 우선 순위가 높기 때문에 audit_log_include_users
감사 로그에 포함됩니다.
이벤트 | 설명 |
---|---|
CONNECTION |
- 연결 시작 - 연결 종료 |
CONNECTION_V2 |
- 연결 시작(성공 또는 실패한 시도 오류 코드) - 연결 종료 |
DML_SELECT |
SELECT 쿼리 |
DML_NONSELECT |
INSERT/DELETE/UPDATE 쿼리 |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
“DROP DATABASE”와 같은 쿼리 |
DCL |
“GRANT PERMISSION”과 같은 쿼리 |
ADMIN |
“SHOW STATUS”와 같은 쿼리 |
GENERAL |
DML_SELECT, DML_NONSELECT, DML, DDL, DCL 및 ADMIN의 모든 항목 |
TABLE_ACCESS |
- SELECT 또는 INSERT INTO ... SELECT와 같은 테이블 읽기 문 - DELETE 또는 TRUNCATE TABLE과 같은 테이블 삭제 문 - INSERT 또는 REPLACE와 같은 테이블 삽입 문 - UPDATE와 같은 테이블 업데이트 문 |
감사 로그 액세스
감사 로그는 Azure Monitor 진단 설정과 통합됩니다. 유연한 서버에서 감사 로그를 사용하도록 설정한 후 Azure Monitor 로그, Azure Event Hubs 또는 Azure Storage로 내보낼 수 있습니다. 진단 설정에 관한 자세한 정보는 진단 로그 설명서를 참조하세요. Azure Portal에서 진단 설정을 사용하도록 설정하는 방법에 대한 자세한 내용은 감사 로그 포털 문서를 참조하세요.
비고
진단 및 설정을 통해 Azure Storage에 로그를 보내는 경우 Premium Storage 계정이 지원되지 않습니다.
출력 메서드에 따라 포함된 필드와 표시되는 순서가 다를 수 있습니다.
연결:
재산 | 설명 |
---|---|
TenantId |
테넌트 ID |
SourceSystem |
Azure |
TimeGenerated [UTC] |
UTC에 로그가 기록된 때의 타임스탬프 |
Type |
로그의 형식. 항상 AzureDiagnostics |
SubscriptionId |
서버가 속한 구독의 GUID |
ResourceGroup |
서버가 속한 리소스 그룹의 이름 |
ResourceProvider |
리소스 공급자의 이름. 항상 MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
리소스 URI |
Resource |
대문자로 된 서버 이름 |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
서버의 이름 |
event_class_s |
connection_log |
event_subclass_s |
CONNECT , DISCONNECT , CHANGE USER |
connection_id_d |
MySQL에 의해 생성된 고유 연결 ID |
host_s |
비어 있음 |
ip_s |
MySQL에 연결하는 클라이언트의 IP 주소 |
user_s |
쿼리를 실행하는 사용자의 이름 |
db_s |
연결 대상 데이터베이스의 이름 |
\_ResourceId |
리소스 URI |
status_d |
CONNECTIONS_V2 이벤트에 대한 연결 오류 코드 항목입니다. |
일반:
다음 스키마는 GENERAL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL 및 ADMIN 이벤트 유형에 적용됩니다.
비고
의 경우 sql_text_s
로그가 2048자를 초과하면 잘립니다.
재산 | 설명 |
---|---|
TenantId |
테넌트 ID |
SourceSystem |
Azure |
TimeGenerated [UTC] |
UTC에 로그가 기록된 때의 타임스탬프 |
Type |
로그의 형식. 항상 AzureDiagnostics |
SubscriptionId |
서버가 속한 구독의 GUID |
ResourceGroup |
서버가 속한 리소스 그룹의 이름 |
ResourceProvider |
리소스 공급자의 이름. 항상 MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
리소스 URI |
Resource |
대문자로 된 서버 이름 |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
서버의 이름 |
event_class_s |
general_log |
event_subclass_s |
LOG , ERROR , RESULT (MySQL 5.6에서만 사용 가능) |
event_time |
쿼리 시작 시간(UTC 타임스탬프 기준) |
error_code_d |
쿼리가 실패한 경우의 오류 코드. 0 은 오류가 없음을 의미합니다. |
thread_id_d |
쿼리를 실행한 스레드의 ID |
host_s |
비어 있음 |
ip_s |
MySQL에 연결하는 클라이언트의 IP 주소 |
user_s |
쿼리를 실행하는 사용자의 이름 |
sql_text_s |
전체 쿼리 텍스트 |
\_ResourceId |
리소스 URI |
테이블 액세스:
비고
의 경우 sql_text_s
로그가 2048자를 초과하면 잘립니다.
재산 | 설명 |
---|---|
TenantId |
테넌트 ID |
SourceSystem |
Azure |
TimeGenerated [UTC] |
UTC에 로그가 기록된 때의 타임스탬프 |
Type |
로그의 형식. 항상 AzureDiagnostics |
SubscriptionId |
서버가 속한 구독의 GUID |
ResourceGroup |
서버가 속한 리소스 그룹의 이름 |
ResourceProvider |
리소스 공급자의 이름. 항상 MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
리소스 URI |
Resource |
대문자로 된 서버 이름 |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
서버의 이름 |
event_class_s |
table_access_log |
event_subclass_s |
READ , INSERT , UPDATE 또는 DELETE |
connection_id_d |
MySQL에 의해 생성된 고유 연결 ID |
db_s |
액세스된 데이터베이스의 이름 |
table_s |
액세스된 테이블의 이름 |
sql_text_s |
전체 쿼리 텍스트 |
\_ResourceId |
리소스 URI |
Azure Monitor 통합 문서 사용
Azure Database for MySQL 유연한 서버는 이제 Azure Monitor 통합 문서와 통합됩니다. 통합 문서를 사용하면 데이터를 분석하고 Azure Portal 내에서 풍부한 시각적 보고서를 만들 수 있는 유연한 캔버스를 얻을 수 있습니다. 통합 문서를 통해 Azure에서 여러 데이터 원본을 탭하여 통합된 대화형 환경으로 결합할 수 있습니다. 통합 문서 템플릿은 여러 사용자와 팀이 유연한 재사용을 위해 디자인하는 큐레이팅된 보고서 역할을 합니다.
템플릿을 열면 템플릿의 내용으로 채워진 임시 통합 문서를 만듭니다. 이 통합을 통해 서버는 통합 문서 및 몇 가지 샘플 템플릿에 연결되므로 서비스를 대규모로 모니터링하는 데 도움이 될 수 있습니다. 이러한 템플릿을 편집하고, 요구 사항에 맞게 사용자 지정하고, 대시보드에 고정하여 Azure 리소스에 대한 집중적이고 체계적인 보기를 만들 수 있습니다.
Azure Database for MySQL - 유연한 서버에는 사용 가능한 템플릿이 세 가지 있습니다.
개요: 서버의 리소스 사용률을 시각화하고 이해하는 데 도움이 되는 인스턴스 요약 및 최상위 메트릭을 표시합니다. 이 템플릿은 다음과 같은 보기를 표시합니다.
- 서버 요약
- 데이터베이스 요약
- 연결 메트릭
- 성능 메트릭
- 스토리지 메트릭
감사: 서버에 수집된 감사 이벤트의 요약 및 세부 정보를 표시합니다. 이 템플릿은 다음과 같은 보기를 표시합니다.
- 서비스에 대한 관리 작업
- 감사 요약
- 연결 이벤트 감사 요약
- 연결 이벤트 감사
- 테이블 액세스 요약
- 식별된 오류
Query Performance Insight: 인스턴스의 쿼리 워크로드, 장기 실행 쿼리, 느린 쿼리 분석 및 연결 메트릭에 대한 요약과 세부 정보를 표시합니다. 이 템플릿은 다음과 같은 보기를 표시합니다.
- 쿼리 로드
- 전체 활성 연결
- 느린 쿼리 추세(>쿼리 시간 10초)
- 느린 쿼리 세부 정보
- 상위 5개의 가장 긴 쿼리 나열
- 최소, 최대, 평균 및 표준 편차 쿼리 시간을 기준으로 느린 쿼리 요약
또한 요구 사항에 따라 이러한 템플릿을 편집하고 사용자 지정할 수 있습니다. 자세한 내용은 Azure 통합 문서를 참조하세요.
통합 문서 템플릿에 액세스
Azure Portal에서 템플릿을 보려면 Azure Database for MySQL - 유연한 서버에 대한 모니터링 창으로 이동한 다음 통합 문서를 선택합니다.
공용 템플릿 창으로 이동하여 템플릿 목록을 표시할 수도 있습니다.
Azure Monitor 도구를 사용하여 데이터 분석
이러한 Azure Monitor 도구는 모니터링 데이터를 분석하는 데 도움이 되는 Azure Portal에서 사용할 수 있습니다.
일부 Azure 서비스에는 Azure Portal에 기본 제공 모니터링 대시보드가 있습니다. 이러한 대시보드는 인사이트라고 하며, Azure 포털에서 Azure Monitor의 Insights 섹션에서 찾을 수 있습니다.
메트릭 탐색기 사용하면 Azure 리소스에 대한 메트릭을 보고 분석할 수 있습니다. 자세한 내용은 Azure Monitor 메트릭 탐색기를 사용하여 메트릭 분석을 참조하세요.
Log Analytics를 사용하면 KQL(Kusto 쿼리 언어)을 사용하여 로그 데이터를 쿼리하고 분석할 수 있습니다. 자세한 내용은 Azure Monitor에서 로그 쿼리 시작을 참조하세요.
Azure Portal에는 활동 로그보기를 위한 사용자 인터페이스 및 기본 검색 기능이 있습니다. 더 심층 분석을 수행하려면 데이터를 Azure Monitor 로그로 라우팅하고 Log Analytics에서 더 복잡한 쿼리를 실행합니다.
Application Insights 웹 애플리케이션의 가용성, 성능 및 사용을 모니터링하므로 사용자가 보고할 때까지 기다리지 않고 오류를 식별하고 진단할 수 있습니다.
Application Insights에는 다양한 개발 도구에 대한 연결점이 포함되어 있으며 DevOps 프로세스를 지원하기 위해 Visual Studio와 통합됩니다. 자세한 내용은 App Service에 대한애플리케이션 모니터링을 참조하세요.
더 복잡한 시각화를 허용하는 도구는 다음과 같습니다.
- 대시보드: 다양한 종류의 데이터를 Azure Portal에서 하나의 창에 결합할 수 있습니다.
- 워크북, Azure 포털에서 생성할 수 있는 사용자 지정 가능한 보고서입니다. 통합 문서에는 텍스트, 메트릭 및 로그 쿼리가 포함될 수 있습니다.
- Grafana: 뛰어난 운영 대시보드를 제공하는 개방형 플랫폼 도구입니다. Grafana를 사용하여 Azure Monitor 이외의 여러 원본의 데이터를 포함하는 대시보드를 만들 수 있습니다.
- Power BI: 다양한 데이터 소스에서 대화형 시각화를 제공하는 비즈니스 분석 서비스입니다. Azure Monitor에서 자동으로 로그 데이터를 가져오도록 Power BI를 구성하여 이러한 시각화를 활용할 수 있습니다.
Azure Monitor 데이터 내보내기
다음을 사용하여 Azure Monitor에서 다른 도구로 데이터를 내보낼 수 있습니다.
메트릭:메트릭용 REST API를 사용하여 Azure Monitor 메트릭 데이터베이스에서 메트릭 데이터를 추출합니다. 자세한 내용은 Azure Monitor REST API 참조를 참조하세요.
로그: REST API 또는 연결된 클라이언트 라이브러리를 사용합니다.
Azure Monitor REST API를 시작하려면 Azure 모니터링 REST API 연습을 참조하세요.
Kusto 쿼리를 사용하여 로그 데이터 분석
KQL(Kusto 쿼리 언어)을 사용하여 Azure Monitor 로그 데이터를 분석할 수 있습니다. 자세한 내용은 Azure Monitor
Azure Database for MySQL - "유연한 서버"에 대한 추천 Kusto 쿼리
느린 쿼리 로그를 사용하여 최적화할 후보를 찾을 수 있습니다. 느린 쿼리 로그가 진단 로그를 통해 Azure Monitor 로그에 파이프된 후 느린 쿼리에 대한 추가 분석을 수행할 수 있습니다. 이러한 샘플 쿼리를 사용하여 시작할 수 있습니다. 서버 이름으로 그것들을 업데이트하세요.
특정 서버에서 10초보다 긴 쿼리
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
특정 서버에서 가장 긴 상위 5개 쿼리 나열
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5
특정 서버에서 최소, 최대, 평균 및 표준 편차 쿼리 시간을 기준으로 느린 쿼리 요약
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by Resource
특정 서버에서 느린 쿼리를 배포하는 그래프
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by Resource , bin(TimeGenerated, 5m) | render timechart
진단 로그를 사용하도록 설정된 모든 Azure Database for MySQL 유연한 서버 인스턴스에서 10초 이상 쿼리 표시
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, Resource , event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
감사 로그의 경우 진단 로그를 통해 감사 로그를 Azure Monitor 로그에 파이프한 후 감사된 이벤트에 대한 추가 분석을 수행할 수 있습니다. 이러한 샘플 쿼리를 사용하여 시작할 수 있습니다. 서버 이름으로 그것들을 업데이트하세요.
특정 서버에 대한 GENERAL 이벤트 나열
AzureDiagnostics | where Resource == '<your server name>' //Server name must be in Upper case | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
특정 서버의 CONNECTION_V2 이벤트를 나열하고,
status_d
열은 연결하는 동안 클라이언트 애플리케이션이 직면한 클라이언트 연결 오류 코드를 표시합니다.AzureDiagnostics | where Resource == '<your server name>' //Server name must be in Upper case | where Category == 'MySqlAuditLogs' and event_subclass_s == "CONNECT" | project TimeGenerated, Resource, event_class_s, event_subclass_s, user_s, ip_s, status_d | order by TimeGenerated asc nulls last
특정 서버에 대한 CONNECTION 이벤트 나열
AzureDiagnostics | where Resource == '<your server name>' //Server name must be in Upper case | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log" | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
특정 서버에서 감사된 이벤트 요약
AzureDiagnostics | where Resource == '<your server name>' //Server name must be in Upper case | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by event_class_s, event_subclass_s, user_s, ip_s
특정 서버의 감사 이벤트 유형 분포 그래프 작성
AzureDiagnostics | where Resource == '<your server name>' //Server name must be in Upper case | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by Resource, bin(TimeGenerated, 5m) | render timechart
감사 로그에 진단 로그를 사용하도록 설정하여 모든 Azure Database for MySQL 유연한 서버 인스턴스에서 감사된 이벤트 나열
AzureDiagnostics | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
Azure Monitor 경고를 사용하여 문제에 대한 알림을 받다
Azure Monitor 경고를 사용하면 시스템의 문제를 식별하고 해결할 수 있으며, 고객이 알아차리기 전에 모니터링 데이터에서 특정 조건이 발견되면 적극적으로 경고를 받을 수 있습니다. Azure Monitor 데이터 플랫폼의 모든 메트릭 또는 로그 데이터 원본에 대해 경고할 수 있습니다. 모니터링하는 서비스와 수집하는 모니터링 데이터에 따라 여러 형식의 Azure Monitor 경고가 있습니다. 올바른 유형의 경고 규칙 선택을 참조하세요.
Azure Database for MySQL - 유연한 서버에 대한 Azure Monitor 추천 경고 규칙
Azure 리소스에 대한 일반적인 경고의 예는 샘플 로그 경고 쿼리를 참조하세요.
대규모 경고 구현
일부 서비스의 경우 동일한 Azure 지역에 있는 동일한 유형의 여러 리소스에 동일한 메트릭 경고 규칙을 적용하여 대규모로 모니터링할 수 있습니다. Azure Monitor Baseline Alerts(AMBA)는 중요한 플랫폼 메트릭 경고, 대시보드 및 지침을 대규모로 구현하는 반자동 방법을 제공합니다.
Azure Advisor를 사용하여 개인 설정된 권장 사항 가져오기
일부 서비스의 경우 리소스 작업 중에 위험한 상태 또는 임박한 변경 사항이 발생하는 경우 해당 서비스에서 포털의 개요 페이지에 경고가 표시됩니다. 왼쪽 메뉴의 모니터링 아래 Advisor 권장 사항에서 해당 경고에 대한 자세한 정보와 권장 수정 사항을 찾을 수 있습니다. 정상 작업 중에는 Advisor 권장 사항이 표시되지 않습니다.
Azure Advisor에 대한 자세한 내용은 Azure Advisor 개요를 참조하세요.