소개
이 단원에서는 Java 애플리케이션 모니터링 개념에 대해 살펴보겠습니다.
모니터링하는 이유는?
어떤 환경에서 사람들이 시스템을 사용하는 방식을 추적하고, 리소스 사용량을 추적하며, 일반적으로 시스템의 상태와 성능을 모니터링하는 것은 중요합니다. 이 정보를 진단 보조 기능으로 사용하여 문제를 검색하고 수정할 수 있으며 잠재적 문제를 발견하여 이 문제가 발생하지 않도록 할 수도 있습니다.
모니터링 양식
모니터링은 일반적으로 다음 네 가지 양식을 사용합니다.
로그: 전체 데이터베이스는 아니더라도 일관된 테이블 형식으로 저장된 이벤트의 변경 불가능한 영구적 레코드입니다. 이벤트는 다음을 포함한 여러 조건 중 하나를 나타낼 수 있습니다.
- 모니터링되는 구성 요소의 상태가 변경됨(예: "사용 중"에서 "사용 가능"으로 변경).
- 작업이나 일련의 지침을 완료합니다.
- 네트워크를 통한 데이터 진행의 마일스톤 또는 네트워크 내 유닛 가용성.
- 오류, 즉 이 컨텍스트에서 시스템 또는 애플리케이션이 처리하거나 완화하도록 프로그래밍되지 않은 동작.
메트릭: 서비스 또는 애플리케이션, 또는 이를 호스팅하는 인프라의 상대적 상태, 안정성 및 가용성을 나타내는 값.
추적: 특히 고도로 분산된 시스템에서 직접 또는 간접적으로 이벤트를 트리거했을 수 있는 일련의 명령을 나타내는 프로그램 및 서비스 실행 경로에 대한 레코드.
경고: 인프라 또는 애플리케이션에서 문제가 발견되면 사용자에게 사전에 알리는 경고. 시스템 사용자가 문제를 알아채기 전에 경고를 통해 문제를 식별하여 해결할 수 있습니다.
Azure 모니터링 플랫폼
Azure는 개발자와 관리자가 애플리케이션 및 해당 애플리케이션을 호스팅하는 인프라의 성능과 관련된 원격 분석을 수집하고, 분석하고, 조치를 취하는 데 사용할 수 있는 일련의 서비스로 구성된 Azure Monitor를 제공합니다.
Log Analytics는 Azure Monitor 로그에서 수집한 데이터에서 로그 쿼리를 편집하고 실행하고, 그 결과를 대화형으로 분석하는 Azure Portal의 도구입니다. Log Analytics 쿼리를 사용하여 특정 조건과 일치하는 레코드를 검색하고, 추세를 식별하고, 패턴을 분석하고, 데이터에 대한 다양한 인사이트를 제공할 수 있습니다.
Azure Monitor의 기능인 Application Insights는 개발자와 DevOps 전문가를 위한 확장 가능한 APM(애플리케이션 성능 관리) 서비스입니다. 성능 이상을 자동으로 감지하며, 문제를 진단하고 사용자가 실제 앱으로 수행하는 작업을 파악하는 데 유용한 분석 도구를 포함하고 있습니다.
Azure Monitor 경고: 모니터링 데이터는 특정 시나리오를 지원하기 위해 다른 위치로 전송될 수도 있으며, 일부 리소스는 로그나 메트릭에 수집되기 전에 다른 위치에 기록될 수 있습니다.
- 메트릭 경고는 지정된 임계값을 초과하는 경우 경고 트리거를 제공합니다. 예를 들어 메트릭 경고는 CPU 사용량이 95% 보다 큰 경우 사용자에게 알릴 수 있습니다.
- 로그 경고는 로그 파일에 기록된 데이터를 기반으로 합니다. 예를 들어 웹 서버에서 404 또는 500 응답을 여러 개 반환하는 경우 로그 경고가 사용자에게 알릴 수 있습니다.
Elastic Stack, Splunk, New Relic, Dynatrace 및 App Dynamics와 같은 원하는 모니터링 시스템을 사용하여 Azure 애플리케이션, 서비스 및 인프라를 모니터링할 수 있습니다. 하지만 이 모듈에서는 Azure Monitor, Log Analytics, Application Insights에 중점을 둡니다.