☁️ Azure Monitor (모니터링)
1. 모니터링(Monitoring) 개요
모니터링이란?
- Service Health가 "살았니 죽었니(가용성)"를 확인하는 것이라면, Monitoring은 "성능(Performance)과 상태"를 구체적으로 확인하는 것입니다.
- 역할: 클라우드 환경의 관제실(Control Room) 역할. VM 상태, 네트워크 트래픽, 애플리케이션 반응 속도 등을 실시간으로 감시합니다.
시장 동향 (Azure의 강점)
- 과거 Windows에 보안 솔루션이 기본 탑재되면서 서드파티 보안 업체들이 약세가 된 것처럼, 클라우드에서도 Azure가 자체적인 강력한 모니터링 및 보안(Defender for Cloud) 기능을 기본/통합 제공함에 따라 전통적인 모니터링 업체들의 입지가 좁아지는 추세입니다.
- 장점: 별도의 복잡한 설정 없이도 Azure 리소스에 대한 깊이 있는 통찰력(Insights)을 바로 얻을 수 있어 편리합니다.
2. Azure Monitor 구조 및 기능
Azure Monitor는 클라우드 및 온프레미스 환경의 애플리케이션, 인프라, 네트워크에서 원격 분석 데이터를 수집, 분석 및 이에 대한 조치를 취하는 포괄적인 솔루션입니다.
데이터 수집 (Collect)
다양한 소스(계층)에서 데이터를 수집합니다.
- Application: 애플리케이션 코드 레벨의 데이터 (성능, 예외 등).
- Operating System (Guest OS): VM 내부의 OS 상태.
- Azure Resource: 리소스 자체의 메트릭 (CPU, 메모리 사용량 등).
- Azure Subscription/Tenant: 구독 및 계정 수준의 활동 로그.
- Custom Sources: 온프레미스나 기타 사용자 정의 소스.
💡 참고: Prometheus
오픈소스 모니터링 솔루션의 표준인 Prometheus와도 통합되어, 시계열(Time-series) 데이터를 수집하고 관리형 서비스로 사용할 수 있습니다.
데이터 분석 및 인사이트 (Analyze & Insights)
수집된 데이터를 시각화하고 분석합니다. 사용자가 직접 쿼리를 짜지 않아도 Insights 기능을 통해 미리 정의된 대시보드를 제공합니다.
- Application Insights: 개발자를 위한 앱 성능 모니터링 (APM).
- Container Insights: Kubernetes 및 컨테이너 상태 모니터링.
- VM Insights: 가상 머신 및 네트워크 의존성 맵 제공.
대응 및 조치 (Respond)
분석 결과에 따라 자동으로 반응합니다. (Consumption 단계)
- Alerts (경고): 특정 임계치(예: CPU 90% 이상) 도달 시 알림 발송.
- Autoscale: 트래픽에 따라 리소스 자동 증설/감소.
- Logic Apps/Functions: 경고 발생 시 특정 스크립트나 워크플로우 자동 실행.
3. Observability (관찰 가능성)
모니터링 업계에서 필수적으로 알아야 할 핵심 개념입니다. 단순한 '모니터링'을 넘어 시스템의 내부 상태를 외부 출력만으로 얼마나 잘 이해할 수 있는지를 나타냅니다.
3대 요소 (The Three Pillars of Observability)
- Metrics (메트릭): "무엇"이 문제인가? (수치 데이터, 예: CPU 사용량, 응답 시간)
- Logs (로그): "왜" 문제가 발생했는가? (이벤트 기록, 예: 에러 메시지, 트랜잭션 기록)
- Traces (추적): "어디서" 문제가 발생했는가? (분산 시스템에서의 요청 흐름 추적)
Azure Monitor는 이 3가지 요소를 통합하여 단일 플랫폼에서 제공함으로써 진정한 Observability를 구현합니다.
📝 요약: Azure Monitor의 흐름
- 수집 (Collect): 앱, OS, 리소스에서 로그와 메트릭을 긁어모음.
- 분석 (Analyze): Insights, Metrics Explorer, Log Analytics로 데이터 씹고 뜯고 맛보고 즐김.
- 조치 (Act): 문제 생기면 알림(Alert) 보내거나 자동(Autoscale)으로 해결.