다음을 통해 공유


Azure에서 로깅, 메트릭 및 경고

Azure 서비스의 성능을 이해하려면 사용할 수 있는 로깅, 메트릭 및 경고 및 사용 방법을 이해해야 합니다.

리소스에 대한 질문

다음 표를 사용하여 Azure 리소스에 대해 알아볼 수 있는 정보와 로깅, 메트릭 및 경고를 사용해야 하는 이유를 이해합니다.

Type

예제 질문

Azure 호스팅

Azure 앱 Service 및 Azure Functions와 같은 호스팅 서비스는 다음과 같은 질문에 대답하기 위한 몇 가지 형태의 피드백을 제공합니다.

  • 내 애플리케이션(또는 컨테이너)이 성공적으로 배포되었나요?
  • 내 애플리케이션(또는 컨테이너)이 성공적으로 시작했나요?
  • 내 애플리케이션(또는 컨테이너)이 성공적으로 실행되고 있나요?

Azure 서비스

Azure는 서비스에 대한 메트릭을 제공하므로 다음과 같은 질문에 대한 답변을 얻을 수 있습니다.

  • 서비스가 얼마나 사용 중입니까?
  • 서비스가 생성하는 오류는 무엇인가요?
  • 내 서비스가 너무 바빠서 수요를 따라갈 수 없나요?
  • 내 가격 책정 계층에 대한 트랜잭션 할당량에 도달했나요?

Azure SDK

Azure SDK는 여러 프로그래밍 언어에서 Azure에 대한 액세스를 제공합니다. SDK는 다음과 같은 질문을 할 수 있도록 로깅을 제공합니다.

  • SDK 자체는 무엇을 하고 있나요?
  • 내 코드는 무엇을 하고 있나요?

코드 또는 컨테이너

사용자 고유의 코드 또는 컨테이너가 작동하는 방식을 이해하려면 Azure MonitorApplication Insights를 통합합니다. Application Insights를 사용하여 단일 애플리케이션에 대한 서비스 간 로그를 캡처하여 다음과 같은 질문을 할 수 있습니다.

  • 코드가 throw되는 예외는 무엇인가요?
  • 내 코드가 트리거하는 이벤트는 무엇인가요?
  • 내 코드는 종속성과 어떻게 상호 작용합니까?

로깅, 메트릭 및 경고의 기능

Type 가용성 설명
메트릭 구성 없이 제공됨 모든 Azure 서비스에는 성능 평가에 도움이 되는 몇 가지 메트릭이 있으므로 메트릭으로 시작합니다.
경고 구성 가능 여부 음수 또는 할당량 만료 동작이 발생할 때 알림을 받도록 경고를 구성합니다.
로깅 구성 가능 여부 호스팅 서비스와 같은 일부 서비스에는 코드 또는 컨테이너의 작동 방식을 이해하는 데 도움이 되는 로깅이 있습니다. 로그 파일을 열기 전에 로깅을 구성해야 할 수 있습니다.
사용자 지정 로깅 코드를 통해 구성 가능 사용자 고유의 코드에서 서버클라이언트 애플리케이션에 Application Insights SDK를 사용하여 Azure Monitor에 로그온할 수 있습니다. Azure Monitor에 로그온하기 위해 코드를 Azure에서 호스트할 필요가 없습니다.

Azure Portal에서 메트릭 보기

일정에 따라 리소스에 대한 메트릭을 보려면 Azure Portal을 열고 모니터링>메트릭으로 이동합니다.

Azure Portal에서 Azure Cognitive Services에 대한 메트릭을 보기 위한 선택 항목을 보여 주는 스크린샷

Azure Portal에서 경고 보기

Azure Portal에서 리소스에 대한 경고를 설정합니다. 경고에는 특정 메트릭, 통신 스트림(예: 이메일) 및 빈도가 포함될 수 있습니다. 설정해야 하는 일반적인 경고는 합계입니다.

  • 요청
  • 응답 시간
  • HTTP 서버 오류(호스팅 환경에서)

HTTP 서버 오류에 대한 신호 논리를 구성하기 위한 창을 보여 주는 Azure Portal의 스크린샷.

Azure Portal에서 호스트된 서비스 로그 보기

호스트된 애플리케이션 및 컨테이너를 구성하여 다음 정보를 기록할 수 있습니다.

  • 배포
  • Startup 클래스
  • 런타임

호스트된 애플리케이션의 작동 방식을 이해하려면 이러한 로그를 켭니다. 이러한 로그는 배포가 실패했거나 시작 구성이 잘못 구성되었거나 종속성이 누락되었음을 알게 될 첫 번째 위치일 것입니다.

stdout 및 stderr에 로그

Azure 웹앱 및 Azure 함수는 올바른 로깅 함수를 stdout stderr사용하는 경우 사용자 지정 로깅을 자동으로 제공합니다.

  • 웹앱은 .를 사용합니다 console.log('your message here').
  • 함수 앱은 .를 사용합니다 context.log('your message here').

사용자 지정 로깅 추가

Azure Monitor에서 Application Insights를 사용하여 보다 풍부한 사용자 지정 로깅을 추가할 수 있습니다. Application Insights는 서버(Node.js) 및 클라이언트(브라우저) 시나리오를 제공합니다.

Application Insights를 사용하여 애플리케이션 로깅 켜기

애플리케이션 로깅의 경우 Application Insights는 다음을 제공할 수 있습니다.

  • 초기화에 따라 Azure 서비스 및 소스 코드의 표준 로깅
  • 배포 파이프라인 및 소스 코드에서 사용자 지정 로깅

App Service에 대한 애플리케이션 로깅 켜기

Azure Portal에서 애플리케이션 호스트 로깅을 설정하려면 다음을 수행합니다.

  1. App Service 로그 모니터링>으로 이동한 다음 파일 시스템에 대한 애플리케이션 로깅을 켭니다.
  2. 할당량(MB) 값을 구성합니다. 기본값은 35입니다.
  3. 보존 기간(일) 값을 기본값(예: 3 또는 7)으로 설정합니다.
  4. 저장을 선택하여 호스트 로그 캡처를 시작합니다.

App Service에 대한 애플리케이션 로그 보기

애플리케이션 로그를 켜면 로그가 웹앱 호스트의 Logs 폴더에 저장됩니다. Azure Portal 또는 App Service용 Visual Studio Code 확장에서 로그를 봅니다.

로그 파일의 이름 형식은 다음과 같습니다.

  • 배포: {DATE-TIME}_{RANDOM-CHARS}_{docker}.log
  • 시작 및 런타임: {DATE-TIME}_{RANDOM-CHARS}_default_docker.log

App Service에 대한 스트림 로그

App Service의 경우 다음 표를 사용하여 로그를 스트리밍하는 방법에 대해 자세히 알아봅니다.

메서드 설명
Azure CLI az webapp log tail을 실행합니다.
Visual Studio Code의 App Service 확장 리소스를 마우스 오른쪽 단추로 클릭한 다음 스트리밍 로그 시작을 선택합니다.

Azure Functions에 대한 애플리케이션 로깅 켜기(계획)

App Service에 대한 호스트 로깅을 설정하려면 이전 단계를 참조하세요.

Azure Functions에 대한 애플리케이션 로깅 켜기(사용량)

소비 기반 함수 앱을 사용하면 소스 코드의 컨텍스트 개체가 제공하는 로깅을 사용하는 경우 해당 로그는 각 함수의 Monitor 섹션 아래에 표시됩니다. 또한 Azure Portal은 함수에 요청이 들어오면 로그를 스트리밍하는 옵션을 제공합니다.

Kusto 쿼리 언어 사용하여 Application Insights 로그 쿼리

함수 앱 또는 console.log 웹앱에서 사용하고 context.log Application Insights를 설정한 경우 이러한 사용자 지정 로그는 추적 테이블의 Application Insights 리소스에 추가됩니다. 사용자 지정 로그에 특정 문자열(예: JavaScript접두사)을 추가하는 경우 Kusto 쿼리 언어 사용하여 해당 사용자 지정 항목으로만 로그를 줄이려면 해당 접두사를 포함하는 메시지에 대한 추적 테이블을 검색할 수 있습니다.

traces
| where message contains "JavaScript"

접두사 문자열이 있는 사용자 지정 로그를 보여 주는 스크린샷

Application Insights를 사용하여 로컬로 개발

코드를 로컬로 실행하여 Application Insights를 시도하는 경우 해당 코드가 Application Insights npm 패키지 중 하나를 사용하는 경우 로깅이 Application Insights로 즉시 전송되도록 메서드를 호출 flush() 해야 합니다. 로그를 볼 때는 Application Insights에서 사용자 지정 로그를 사용할 수 있기까지 몇 분 정도 걸릴 수 있습니다.

Application Insights에서 앱 오류 데이터 보기

Application Insights에서 모니터링하는 리소스에 대한 오류를 보려면 실패 창을 사용합니다.

Application Insights 모니터링 리소스에 대한 오류를 보기 위한 창의 스크린샷.