자습서: 게시된 API 모니터링
적용 대상: 모든 API Management 계층
Azure Monitor를 통해 Azure API Management 서비스의 메트릭 또는 로그를 시각화, 쿼리, 라우팅, 보관하고 필요한 조치를 수행할 수 있습니다.
참고 항목
현재 이 기능은 작업 영역에서 사용할 수 없습니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- API의 메트릭 보기
- 경고 규칙 설정
- 활동 로그 보기
- 리소스 로그 사용 및 보기
참고 항목
API Management는 기본 제공 분석 및 Application Insights와의 통합을 포함하여 API를 관찰하는 다양한 추가 도구를 지원합니다. 자세한 정보
필수 조건
- Azure API Management 용어를 익힙니다.
- 다음 빠른 시작 Azure API Management 인스턴스 만들기를 완료합니다.
- 또한, 다음 자습서 첫 번째 API 가져오기 및 게시를 완료합니다.
API의 메트릭 보기
API Management는 1분 간격으로 메트릭을 내보내므로 거의 실시간으로 API 상태를 확인할 수 있습니다. 다음은 가장 자주 사용되는 메트릭입니다. 사용 가능한 모든 메트릭 목록은 지원되는 메트릭을 참조하세요.
용량 - API Management 서비스를 업그레이드/다운그레이드할지 결정하는 데 도움이 됩니다. 메트릭은 1분 간격으로 내보내지며 보고 시점의 예상되는 게이트웨이 용량을 반영합니다. 메트릭의 범위는 0-100이고, CPU 및 메모리 사용률 등의 게이트웨이 리소스와 기타 요소를 기준으로 계산됩니다.
요청 - API Management 서비스를 통과하는 API 트래픽을 분석하는 데 도움이 됩니다. 메트릭은 분당 내보내지며 차원과 함께 게이트웨이 요청 수를 보고합니다. 응답 코드, 위치, 호스트 이름 및 오류별로 요청을 필터링합니다.
Important
총 게이트웨이 요청, 성공적인 게이트웨이 요청, 권한이 없는 게이트웨이 요청, 실패한 게이트웨이 요청, 기타 게이트웨이 요청과 같은 메트릭은 더 이상 사용되지 않습니다. 매우 유사한 기능을 제공하는 요청 메트릭으로 마이그레이션하세요.
메트릭에 액세스하려면
Azure Portal에서 API Management 인스턴스로 이동합니다. 개요 페이지에서 모니터링 탭의 API에 대한 주요 메트릭을 검토합니다.
메트릭을 자세히 조사하려면 왼쪽 메뉴에서 메트릭 모니터링>을 선택합니다.
드롭다운에서 관심 있는 메트릭을 선택합니다. 예: Requests
차트에는 총 API 호출 수가 표시됩니다. 관심 기간에 집중하도록 시간 범위를 조정합니다.
요청 메트릭의 차원을 사용하여 차트를 필터링할 수 있습니다. 예를 들어 필터 추가를 선택하고, 백 엔드 응답 코드 범주를 선택하고, 값으로
500
을 입력합니다. 차트는 API 백 엔드에서 실패한 요청 수를 보여 줍니다.
경고 규칙 설정
메트릭 및 활동 로그를 기반으로 경고를 수신할 수 있습니다. Azure Monitor에서 트리거할 때 작업을 수행하도록 경고 규칙을 구성합니다. 일반적인 작업은 다음과 같습니다.
- 이메일 알림 보내기
- 웹후크 호출
- Azure 논리 앱 호출
요청 메트릭을 기반으로 경고 규칙 예제를 구성하려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 경고 모니터링>을 선택합니다.
+ 만들기>경고 규칙을 선택합니다.
조건 탭에서 다음을 수행 합니다.
- 신호 이름에서 요청을 선택합니다.
- 경고 논리에서 경고의 기본값을 검토하거나 수정합니다. 예를 들어 경고를 트리거해야 하는 발생 횟수인 정적 임계값을 업데이트합니다.
- 차원으로 분할의 차원 이름에서 게이트웨이 응답 코드 범주를 선택합니다.
- 차원 값에서 권한이 없거나 잘못된 요청과 같은 클라이언트 오류에 대해 4xx를 선택합니다. 차원 값이 표시되지 않으면 사용자 지정 값 추가를 선택하고 4xx를 입력합니다.
- 평가 시기에서 기본 설정을 적용하거나 다른 설정을 선택하여 규칙 실행 빈도를 구성합니다. 다음을 선택합니다.
작업 탭에서 하나 이상의 작업 그룹을 선택하거나 만들어 사용자에게 경고에 대해 알리고 작업을 수행합니다. 예를 들어
admin@contoso.com
에 알림 이메일을 보내는 새 작업 그룹을 만듭니다. 자세한 단계는 Azure Portal에서 작업 그룹 만들기 및 관리를 참조하세요.경고 규칙 만들기의 세부 정보 탭에서 경고 규칙의 이름과 설명을 입력하고 심각도 수준을 선택합니다.
필요에 따라 나머지 설정을 구성합니다. 그런 다음, 검토 + 만들기 탭에서 만들기를 선택합니다.
필요에 따라 HTTP 클라이언트를 사용하여 경고를 트리거하는 요청을 시뮬레이션하여 경고 규칙을 테스트합니다. 예를 들어 터미널에서 다음 명령을 실행하여 API Management 호스트 이름을 API Management 인스턴스의 호스트 이름으로 대체합니다.
curl GET https://contoso.azure-api.net/non-existent-endpoint HTTP/1.1
평가 기간에 따라 경고가 트리거되고 admin@contoso.com으로 이메일이 전송됩니다.
API Management 인스턴스의 경고 페이지에도 경고가 표시됩니다.
활동 로그
활동 로그는 API Management 서비스의 작업에 대한 인사이트를 제공합니다. 활동 로그를 통해 API Management 서비스에 대한 모든 쓰기 작업(PUT, POST, DELETE)에서 "무엇을, 누가, 언제"를 판단할 수 있습니다.
참고 항목
활동 로그에는 Azure Portal에서 수행되는 읽기(GET) 작업 또는 작업이 포함되지 않습니다.
API Management 서비스에서 활동 로그에 액세스하거나 Azure Monitor에서 모든 Azure 리소스의 로그에 액세스할 수 있습니다.
활동 로그를 보려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
활동 로그를 선택합니다.
원하는 필터링 범위를 선택하고 적용을 선택합니다.
리소스 로그
리소스 로그(Azure Monitor 로그)는 감사 및 문제 해결 목적으로 중요한 API Management 작업 및 오류에 대한 풍부한 정보를 제공합니다. 진단 설정을 통해 사용하도록 설정하면 로그는 API Management 게이트웨이에서 수신 및 처리하는 API 요청에 대한 정보를 수집합니다.
참고 항목
소비 계층은 리소스 로그 수집을 지원하지 않습니다.
리소스 로그를 구성하려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
모니터링>진단 설정을 선택합니다.
+ 진단 설정 추가를 선택합니다.
수집하려는 로그 또는 메트릭을 선택합니다.
로그 및 메트릭을 보낼 위치에 대한 몇 가지 옵션이 있습니다. 예를 들어 리소스 로그를 메트릭과 함께 스토리지 계정에 보관하고, 이벤트 허브로 스트림하고, Log Analytics 작업 영역으로 보낼 수 있습니다.
팁
Log Analytics 작업 영역을 선택하는 경우 리소스별 ApiManagementGatewayLogs 테이블에 데이터를 저장하거나 일반 AzureDiagnostics 테이블에 저장하도록 선택할 수 있습니다. 이 내용을 지원하는 로그 대상에 대한 리소스별 테이블을 사용하는 것이 좋습니다. 자세한 정보
로그 대상 또는 대상에 대한 세부 정보를 구성한 후 저장을 선택합니다.
참고 항목
API Management 서비스의 MinApiVersion 속성이 2022-09-01-preview보다 높은 API 버전으로 설정된 경우 진단 설정 개체를 추가하면 오류가 발생할 수 있습니다.
자세한 내용은 플랫폼 로그 및 메트릭을 다른 대상으로 전송하는 진단 설정 만들기를 참조하세요.
Azure Monitor에서 로그 및 메트릭 보기
Log Analytics 작업 영역에서 로그 또는 메트릭의 컬렉션을 사용하도록 설정하는 경우 Azure Monitor에 데이터가 표시될 때까지 몇 분 정도 걸릴 수 있습니다.
데이터를 보려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
왼쪽 메뉴에서 로그를 선택합니다.
쿼리를 실행하여 데이터를 봅니다. 여러 샘플 쿼리가 제공되며, 자체 쿼리를 실행해도 됩니다. 예를 들어 다음 쿼리는 ApiManagementGatewayLogs 테이블에서 최근 24시간 동안의 데이터를 검색합니다.
ApiManagementGatewayLogs | where TimeGenerated > ago(1d)
API Management에 대한 리소스 로그 사용에 대한 자세한 내용은 다음을 참조하세요.
API 로깅 설정 수정
기본적으로 리소스 로그의 컬렉션을 사용하도록 설정하는 진단 설정을 만들 때 기본 설정으로 모든 API에 대해 로깅이 사용하도록 설정됩니다. 모든 API에 대한 로깅 설정을 조정하거나 개별 API에 대해 재정의할 수 있습니다. 예를 들어, 샘플링 속도나 데이터의 자세한 정도를 조정하고, 헤더나 요청 또는 응답 페이로드의 로깅을 사용하도록 설정하거나, 일부 API에 대한 로깅을 사용하지 않도록 설정합니다.
로깅 설정에 대한 자세한 내용은 진단 로깅 설정 참조를 확인하세요.
모든 API에 대한 로깅 설정을 구성하려면 다음을 수행합니다.
- API Management 인스턴스의 왼쪽 메뉴에서 API API>모든 API>를 선택합니다.
- 위쪽 표시줄의 설정 탭을 선택합니다.
- 진단 로그 섹션까지 아래로 스크롤하고 Azure Monitor 탭을 선택합니다.
- 설정을 검토하고 필요한 경우 변경합니다. 저장을 선택합니다.
특정 API에 대한 로깅 설정을 구성하려면 다음을 수행합니다.
- API Management 인스턴스의 왼쪽 메뉴에서 API API>를 선택한 다음, API의 이름을 선택합니다.
- 위쪽 표시줄의 설정 탭을 선택합니다.
- 진단 로그 섹션까지 아래로 스크롤하고 Azure Monitor 탭을 선택합니다.
- 설정을 검토하고 필요한 경우 변경합니다. 저장을 선택합니다.
Important
사용하도록 설정된 경우 기록된 요청 또는 응답 페이로드는 최대 8,192바이트일 수 있습니다. 또한 API Management는 상태 코드, 헤더 및 타임스탬프와 같은 페이로드 및 기타 특성을 포함하는 Azure Monitor로 전송되는 진단 로그 항목에 대해 32KB 제한을 적용합니다. 특성의 결합된 크기가 32KB를 초과하는 경우 API Management는 모든 본문 및 추적 콘텐츠를 제거하여 항목을 자릅니다.
다음 단계
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- API의 메트릭 보기
- 경고 규칙 설정
- 활동 로그 보기
- 리소스 로그 사용 및 보기
다음 자습서를 진행합니다.