Azure Monitor 모범 사례 - 데이터 수집 구성

이 문서는 Azure Monitor 구성 권장 사항 시나리오의 일부입니다. Azure 및 하이브리드 애플리케이션 및 리소스에 대해 Azure Monitor 기능을 사용하도록 설정하는 데 필요한 데이터 컬렉션을 구성하기 위한 권장 단계를 설명합니다.

Important

Azure Monitor의 기능과 해당 구성은 사용 가능한 기능의 비용과 균형 잡힌 비즈니스 요구 사항에 따라 달라집니다. 다음 각 단계에서는 잠재적 비용이 있는지 여부를 식별하며 계속하기 전에 이러한 비용을 평가해야 합니다. 전체 가격 책정 정보는 Azure Monitor 가격 책정을 참조하세요.

Log Analytics 작업 영역 아키텍처 디자인

Azure Monitor 로그를 사용하도록 설정하려면 하나 이상의 Log Analytics 작업 영역이 필요하며, 이는 다음 작업에 필요합니다.

  • Azure 리소스에서 로그와 같은 데이터를 수집합니다.
  • Azure Virtual Machines의 게스트 운영 체제에서 데이터를 수집합니다.
  • 대부분의 Azure Monitor 인사이트를 사용하도록 설정합니다.

Microsoft Sentinel 및 클라우드용 Microsoft Defender와 같은 다른 서비스도 Log Analytics 작업 영역을 사용하며 Azure Monitor를 위해 사용하는 것과 동일한 작업 영역을 공유할 수 있습니다.

Log Analytics 작업 영역을 만드는 데 드는 비용은 없지만 수집할 데이터를 구성하면 비용이 발생할 수 있습니다. 로그 데이터에 대한 요금이 청구되는 방법에 대한 자세한 내용은 Azure Monitor 로그 가격 책정 세부 정보를 참조하세요.

초기 Log Analytics 작업 영역을 만들려면 Azure Portal에서 Log Analytics 작업 영역 만들기를 참조하고, 액세스를 구성하려면 Log Analytics 작업 영역에 대한 액세스 관리를 참조하세요. Resource Manager 템플릿과 같은 확장 가능한 메서드를 사용하여 작업 영역을 구성할 수 있지만, 대부분의 환경에는 최소한의 수가 필요하므로 이 단계가 필요하지 않은 경우가 많습니다.

초기 모니터링을 지원하는 단일 작업 영역으로 시작합니다. 여러 작업 영역을 사용하는 경우와 작업 영역을 찾고 구성하는 방법에 대한 지침은 Log Analytics 작업 영역 구성 디자인을 참조하세요.

Azure 리소스에서 데이터 수집

Azure 리소스에 대한 일부 모니터링은 구성할 필요 없이 자동으로 사용할 수 있습니다. 더 많은 모니터링 데이터를 수집하려면 구성 단계를 수행해야 합니다.

다음 표에서는 Azure 리소스에서 사용할 수 있는 모든 데이터를 수집하는 데 필요한 구성 단계를 보여 줍니다. 또한 Azure Monitor 메트릭 및 Azure Monitor 로그에 보내는 단계 데이터도 보여 줍니다. 다음 섹션에서는 각 단계에 대해 자세히 설명합니다.

Diagram that shows deploying Azure resource monitoring.

테넌트 및 구독 로그 수집

테넌트에 대한 Microsoft Entra 로그와 구독에 대한 활동 로그가 자동으로 수집됩니다. Log Analytics 작업 영역으로 보내는 경우 Log Analytics에서 로그 쿼리를 사용하여 이러한 이벤트를 다른 로그 데이터와 함께 분석할 수 있습니다. Microsoft Entra 로그에 대해 경고하고 활동 로그 경고보다 더 복잡한 논리를 제공하는 유일한 방법인 로그 검색 경고를 만들 수도 있습니다.

작업 영역으로 활동 로그를 보내는 비용은 없지만 Microsoft Entra 로그에 대한 데이터 수집 및 보존 요금이 있습니다.

Azure Monitor 로그와 Microsoft Entra 로그 통합 및 진단 설정 만들기를 참조하여 플랫폼 로그 및 메트릭을 다른 대상으로 보내서 로그 항목을 Log Analytics 작업 영역으로 보내는 테넌트 및 구독에 대한 진단 설정을 만듭니다.

리소스 로그 및 플랫폼 메트릭 수집

Azure의 리소스는 리소스 내에서 수행되는 작업의 세부 정보를 제공하는 리소스 로그를 자동으로 생성합니다. 플랫폼 메트릭과 달리 수집할 리소스 로그를 구성해야 합니다. Log Analytics 작업 영역에 전송하여 Azure Monitor 로그에 사용되는 다른 데이터와 결합하는 진단 설정을 만듭니다. 동일한 진단 설정을 사용하여 대부분의 리소스에 대한 플랫폼 메트릭을 동일한 작업 영역으로 보낼 수도 있습니다. 이렇게 하면 수집된 다른 데이터와 함께 로그 쿼리를 사용하여 메트릭 데이터를 분석할 수 있습니다.

Log Analytics 작업 영역에서 리소스 로그를 수집하는 데 드는 비용이 있으므로 중요한 데이터가 있는 로그 범주만 선택합니다. 모든 범주를 수집하면 값이 거의 없는 데이터를 수집하는 데 비용이 발생합니다. 수집할 범주 및 권장 사항에 대한 설명은 각 Azure 서비스에 대한 모니터링 설명서를 참조하세요. 로그 컬렉션 비용 최적화에 대한 모범 사례는 Azure Monitor 모범 사례 - Cost Management도 참조하세요.

Azure 리소스에 대한 진단 설정을 만들려면 Azure에서 리소스 로그 및 메트릭을 수집하는 진단 설정 만들기를 참조하세요.

각 Azure 리소스에 대해 진단 설정을 만들어야 하므로 Azure Policy를 사용하여 각 리소스가 만들어질 때 자동으로 진단 설정을 만듭니다. 각 Azure 리소스 종류에는 진단 설정에 나열해야 하는 고유한 범주 집합이 있습니다. 이 때문에 각 리소스 종류에는 별도의 정책 정의가 필요합니다. 일부 리소스 종류에는 수정 없이 할당할 수 있는 기본 제공 정책 정의가 있습니다. 다른 리소스 유형의 경우 사용자 지정 정의를 만들어야 합니다.

특정 Azure 서비스에 대한 정책 정의를 만드는 프로세스와 대규모 진단 설정을 만드는 방법에 대한 자세한 내용은 Azure Policy를 사용하여 대규모 진단 설정 만들기를 참조하세요.

인사이트 사용

인사이트는 특정 서비스에 대한 전문화된 모니터링 환경을 제공합니다. 인사이트는 플랫폼 메트릭 및 리소스 로그와 같이 이미 수집되고 있는 동일한 데이터를 사용하지만, 가장 중요한 데이터를 식별하고 분석하는 데 도움이 되는 사용자 지정 통합 문서를 제공합니다. 대부분의 인사이트는 해당 서비스에 대한 리소스 로그를 수집하는 것 외에는 아무런 구성을 하지 않고도 Azure Portal에서 사용할 수 있습니다. 인사이트가 있는지 여부와 구성이 필요한지 여부를 확인하려면 각 Azure 서비스에 대한 모니터링 설명서를 참조하세요.

인사이트에 대한 비용은 없지만 수집하는 모든 데이터에 대해 요금이 청구될 수 있습니다.

Azure Monitor에서 사용 가능한 인사이트 및 솔루션 목록은 Azure Monitor 인사이트 개요를 참조하세요. 고유한 구성 또는 가격 책정 정보는 각각에 대한 설명서를 참조하세요.

Important

다음 인사이트는 다른 인사이트보다 훨씬 더 복잡하며 구성에 대한 더 많은 지침이 있습니다.

가상 머신 모니터링

가상 머신은 다른 Azure 리소스와 비슷한 데이터를 생성하지만 게스트 운영 체제에서 데이터를 수집하려면 에이전트가 필요합니다. 또한 가상 머신에는 다양한 워크로드가 실행되고 있으므로 고유한 모니터링 요구 사항이 있습니다. Azure Monitor로 가상 머신을 모니터링하는 방법에 대한 전용 시나리오는 Azure Monitor로 Azure 가상 머신 모니터링을 참조하세요.

컨테이너 모니터링

컨테이너는 다른 Azure 리소스와 유사한 데이터를 생성하지만 필요한 데이터를 수집하려면 컨테이너화된 버전의 Log Analytics 에이전트가 필요합니다. 컨테이너 인사이트는 모니터링을 위해 컨테이너화된 환경을 준비하는 데 도움이 됩니다. 타사 도구와 함께 작동하여 AKS(Azure Kubernetes Service) 및 지원하는 워크플로에 대한 포괄적인 모니터링을 제공합니다. Azure Monitor를 사용하여 AKS를 모니터링하는 전용 시나리오는 Azure Monitor를 사용하여 Azure Kubernetes Service 모니터링을 참조하세요.

애플리케이션 모니터링

Azure Monitor는 모니터링하려는 각 애플리케이션에 대해 구성해야 하는 Application Insights를 사용하여 사용자 지정 애플리케이션을 모니터링합니다. 구성 프로세스는 모니터링되는 애플리케이션의 유형과 수행하려는 모니터링의 유형에 따라 달라집니다. Application Insights에서 수집한 데이터는 기능에 따라 Azure Monitor 메트릭, Azure Monitor 로그 및 Azure Blob Storage에 저장됩니다. 성능 데이터는 추가로 구성할 필요 없이 Azure Monitor 메트릭과 Azure Monitor 로그 모두에 저장됩니다.

애플리케이션 리소스 만들기

Application Insights는 클라우드 네이티브 및 하이브리드 애플리케이션을 모니터링하기 위한 Azure Monitor의 기능입니다.

모니터링하려는 각 애플리케이션에 대해 Application Insights에서 리소스를 만들거나 여러 애플리케이션에 대해 단일 애플리케이션 리소스를 만들 수 있습니다. 여러 애플리케이션에 대해 별도의 애플리케이션 리소스를 사용할지 아니면 단일 애플리케이션 리소스를 사용할지 여부는 모니터링 전략의 기본 결정입니다. 분리된 리소스는 비용을 절감하고 서로 다른 애플리케이션의 데이터 혼합을 방지할 수 있지만, 단일 리소스는 모든 관련 원격 분석을 함께 유지하여 모니터링을 간소화할 수 있습니다. 이 디자인을 결정하는 데 도움이 되는 조건은 배포해야 하는 Application Insights 리소스의 수를 참조하세요.

애플리케이션 리소스를 생성할 때 클래식 기반을 사용할지 아니면 작업 공간 기반을 사용할지 선택해야 합니다. 클래식 애플리케이션을 만들려면 Application Insights 리소스 만들기를 참조하세요. 작업 영역 기반 애플리케이션을 만들려면 작업 영역 기반 Application Insights 리소스를 참조하세요. Application Insights에서 수집한 로그 데이터는 작업 영역 기반 애플리케이션에 대한 Azure Monitor 로그에 저장됩니다. 클래식 애플리케이션에 대한 로그 데이터는 데이터 구조에서 설명한 대로 Log Analytics 작업 영역과 별도로 저장됩니다.

코드 없는 모니터링 또는 코드 기반 모니터링 구성

애플리케이션에 대한 모니터링을 사용하도록 설정하려면 코드 없는 모니터링을 사용할지 아니면 코드 기반 모니터링을 사용할지 여부를 결정해야 합니다. 구성 프로세스는 이 결정과 모니터링하려는 애플리케이션의 유형에 따라 달라집니다.

코드 없는 모니터링은 구현하기 가장 쉽고 코드 개발 후에 구성할 수 있습니다. 코드를 업데이트할 필요가 없습니다. 애플리케이션에 따라 모니터링을 사용하도록 설정하는 방법에 대한 자세한 내용은 다음을 참조하세요.

코드 기반 모니터링은 다양하게 사용자 지정할 수 있고 더 많은 원격 분석을 수집하지만, Application Insights SDK NuGet 패키지에서 종속성을 코드에 추가해야 합니다. 애플리케이션에 따라 모니터링을 사용하도록 설정하는 방법에 대한 자세한 내용은 다음을 참조하세요.

가용성 테스트 구성

Application Insights의 가용성 테스트는 전 세계 지점에서 정기적으로 애플리케이션의 가용성 및 응답성을 모니터링하는 반복 테스트입니다. 간단한 ping 테스트를 무료로 만들 수 있습니다. 웹 요청 시퀀스를 만들어 관련 비용이 있는 사용자 트랜잭션을 시뮬레이션할 수도 있습니다.

다양한 테스트 종류에 대한 요약 및 테스트를 만드는 방법에 대한 자세한 내용은 웹 사이트의 가용성 모니터링을 참조하세요.

프로파일러 구성

Azure Application Insights의 Profiler는 .NET 애플리케이션의 성능 추적을 제공합니다. 특정 웹 요청을 처리할 때 가장 긴 시간이 걸리는 "핫" 코드 경로를 식별하는 데 도움이 됩니다. 프로파일러를 구성하는 프로세스는 애플리케이션 유형에 따라 달라집니다.

Profiler를 구성하는 방법에 대한 자세한 내용은 Application Insights를 사용하여 Azure에서 프로덕션 애플리케이션 프로파일링을 참조하세요.

스냅샷 디버거 구성

Application Insights의 스냅샷 디버거는 .NET 애플리케이션에서 예외 원격 분석을 모니터링합니다. 프로덕션에서 문제를 진단하는 데 필요한 정보를 유지하도록 많이 throw되는 예외에 대한 스냅샷을 수집합니다. 스냅샷 디버거를 구성하는 프로세스는 애플리케이션 유형에 따라 달라집니다.

스냅샷 디버거를 구성하는 방법에 대한 자세한 내용은 .NET 앱의 예외에 대한 디버그 스냅샷을 참조하세요.

다음 단계

모든 Azure 리소스에 대해 구성된 데이터 수집을 사용하는 경우 이 데이터를 분석하는 옵션을 확인하려면 데이터 분석 및 시각화를 참조하세요.