Azure Monitor 로그 가격 책정 세부 정보

대부분의 Azure Monitor 구현에서 가장 큰 요금은 일반적으로 Log Analytics 작업 영역에서 데이터를 수집 및 보존할 때 발생합니다. Azure Monitor의 여러 기능은 직접적인 비용이 들지 않지만 수집된 작업 영역 데이터에는 직접 요금이 추가됩니다. 이 문서에서는 Log Analytics 작업 영역 및 Application Insights 리소스에 대한 데이터 요금 계산 방법과 비용에 영향을 주는 다양한 구성 옵션에 대해 설명합니다.

가격 책정 모델

Log Analytics의 기본 가격 책정 모델은 수집된 데이터의 볼륨과 보존 기간에 따라 요금이 부과되는 종량제입니다. 각 Log Analytics 작업 영역은 별도의 서비스로 요금이 부과되며 Azure 구독에 대한 청구서에 추가됩니다. Log Analytics에 대한 가격 책정은 지역별로 설정됩니다. 데이터 수집량은 다음의 제반 요인에 따라 상당 부분 달라질 수 있습니다.

  • 사용하도록 설정된 관리 솔루션 집합과 해당 구성
  • 모니터링되는 리소스의 수 및 유형
  • 모니터링된 각 리소스에서 수집된 데이터 형식

데이터 크기 계산

데이터 볼륨은 GB(10^9바이트) 단위로 저장되는 데이터의 크기로 측정됩니다. 데이터가 에이전트에서 전송되든 수집 프로세스 중에 추가되든, 단일 레코드의 데이터 크기는 해당 레코드에 대한 Log Analytics 작업 영역에 저장된 열의 문자열 표현에서 계산됩니다. 여기에는 로그 수집 API, 변환 또는 사용자 지정 필드에서 추가한 사용자 지정 열이 포함되며, 이 열은 데이터가 수집되어 작업 영역에 저장될 때 추가됩니다.

참고

청구 가능한 데이터 볼륨 계산은 일반적으로 들어오는 전체 JSON 패키지 이벤트의 크기보다 훨씬 작습니다. 청구에서 제외된 표준 열의 효과를 포함하여 모든 이벤트 유형에서 평균적으로 청구되는 크기는 들어오는 데이터 크기보다 약 25% 적습니다. 작은 이벤트의 경우 최대 50% 적습니다. 비용을 예측하고 다른 가격 책정 모델과 비교할 때 청구된 데이터 크기의 계산을 이해해야 합니다.

제외되는 열

모든 테이블에 공통적인 다음 표준 열은 레코드 크기 계산에서 제외됩니다. Log Analytics에 저장된 그 외의 열은 레코드 크기 계산에 포함됩니다.

  • _ResourceId
  • _SubscriptionId
  • _ItemId
  • _IsBillable
  • _BilledSize
  • Type

제외되는 테이블

AzureActivity, Heartbeat, Usage, Operation을 포함한 일부 테이블은 데이터 수집 요금이 전혀 발생하지 않습니다 이는 레코드가 데이터 수집 요금 청구에서 제외되었는지 여부를 나타내는 _IsBillable 열에 의해 항상 표시됩니다.

다른 솔루션 및 서비스 요금

일부 솔루션은 무료 데이터 수집에 대한 보다 구체적인 정책을 갖고 있습니다. 예를 들어 Azure Migrate는 서버 평가의 처음 180일 동안 종속성 시각화 데이터 비용을 청구하지 않습니다. 클라우드용 Microsoft Defender, Microsoft Sentinel구성 관리와 같은 서비스는 자체적인 가격 책정 모델이 있습니다.

고유한 요금 청구 계산법은 다양한 서비스 및 솔루션에 대한 설명서를 참조하세요.

약정 계층

종량제 모델 외에도 Log Analytics에는 종량제 가격 대비 최대 30%의 비용을 절약할 수 있는 약정 계층이 있습니다. 약정 계층 가격 책정을 사용하면 종량제 가격보다 낮은 가격으로 100GB/일부터 시작하는 작업 영역의 데이터 수집을 구매할 수 있습니다. 약정 수준을 초과하는 사용량(초과분)은 현재 약정 계층에서 제공하는 것과 동일한 GB당 가격으로 청구됩니다. 약정 계층의 약정 기간은 약정 계층이 선택된 시점부터 31일입니다.

  • 약정 기간 동안에는 더 높은 수준의 약정 계층(31일의 약정 기간을 다시 시작함)으로 변경할 수 있습니다. 다만 약정 기간이 완료될 때까지 종량제 또는 더 낮은 약정 계층으로 다시 이동할 수는 없습니다.
  • 약정 기간이 끝나면 작업 영역은 선택한 약정 계층을 유지하며 작업 영역은 언제든지 종량제 또는 다른 약정 계층으로 옮길 수 있습니다.

약정 계층에 대한 요금은 일일 작업별로 청구됩니다. 작업 영역이 전용 클러스터의 일부인 경우 클러스터에 대한 청구가 수행됩니다(아래 참조). 약정 계층 및 가격의 자세한 목록은 Azure Monitor 가격 책정을 참조하세요.

Microsoft 기업계약에서와 같은 Azure 약정 할인은 종량제 가격 책정(사용이 작업 영역당 또는 전용 클러스터별로 청구되는지 여부)과 마찬가지로 Azure Monitor 로그 약정 계층 가격 책정에 적용됩니다.

각 Log Analytics 작업 영역에 대한 사용량 및 예상 비용 메뉴 항목은 각 약정 수준에서 월별 요금을 예측하는 방법을 설명합니다. 이 정보를 정기적으로 검토하여 다른 계층으로 이동하면 요금을 줄일 수 있는지 확인해야 합니다. 이 보기에 대한 자세한 내용은 사용량 및 예상 비용을 참조하세요.

Dedicated 클러스터

Azure Monitor 로그 전용 클러스터는 단일 관리형 Azure Data Explorer 클러스터의 작업 영역 컬렉션입니다. 전용 클러스터는 고객 관리형 키와 같은 고급 기능을 지원하며, 작업 영역과 동일한 약정 계층 가격 책정 모델을 사용하지만 약정 수준이 하루 500GB 이상이어야 합니다. 약정 수준을 초과하는 사용량(초과분)은 현재 약정 계층에서 제공하는 것과 동일한 GB당 가격으로 청구됩니다. 클러스터에 대한 종량제 옵션은 없습니다.

약정 수준을 늘린 후 클러스터 약정 계층은 31일의 약정 기간이 생깁니다. 약정 기간 동안에는 약정 계층 수준을 낮출 수는 없지만 언제든지 늘릴 수는 있습니다. 작업 영역이 클러스터에 연결되면 해당 작업 영역에 대한 데이터 수집 청구는 구성된 약정 계층 수준을 사용하여 클러스터 수준에서 수행됩니다.

클러스터를 만들 때 두 가지 클러스터 요금 청구 모드를 지정하게 됩니다.

  • 클러스터(기본값) : 수집된 데이터에 대한 청구가 클러스터 수준에서 수행됩니다. 클러스터에 연결된 각 작업 영역에서 수집된 데이터 양을 집계하여 클러스터에 대한 일일 청구액을 계산합니다. 클라우드용 Microsoft Defender의 노드당 할당량은 클러스터의 모든 작업 영역에서 데이터를 이 방식으로 집계하기 전에 작업 영역 수준에서 적용됩니다.

  • 작업 영역: 클러스터의 약정 계층 비용은 각 작업 영역에 대한 클라우드용 Microsoft Defender의 노드별 할당량을 고려한 후 각 작업 영역의 데이터 수집 볼륨에 따라 클러스터의 작업 영역을 기준으로 비례적으로 계산됩니다.

    클러스터에 하루 동안 수집된 총 데이터 볼륨이 약정 계층보다 적으면 각 작업 영역에서 수집된 데이터에 대해 약정 계층의 일부만 청구하여 효율적인 GB당 약정 계층 요금으로 청구됩니다. 약정 계층의 사용되지 않는 부분은 클러스터 리소스 요금에 청구됩니다.

    클러스터에 하루 동안 수집된 총 데이터 볼륨이 약정 계층보다 많은 경우 각 작업 영역에 대한 요금은 해당 일에 수집된 데이터의 일부를 기준으로 약정 계층의 일부 및 약정 계층을 초과하여 수집된 데이터의 일부에 대해 청구됩니다. 작업 영역에 하루 동안 수집된 총 데이터 볼륨이 약정 계층을 초과하는 경우 클러스터 리소스에 대한 요금이 청구되지 않습니다.

클러스터 청구 옵션에서 데이터 보존은 각 작업 영역에 대해 청구됩니다. 클러스터 요금 청구는 작업 영역이 클러스터에 연결되었는지 여부에 관계 없이 클러스터를 만들 때부터 시작됩니다.

작업 영역을 클러스터에 연결하면 가격 책정 계층이 클러스터로 변경되고 클러스터의 약정 계층에 따라 수집 요금이 청구됩니다. 클러스터에 연결된 작업 영역에는 더 이상 가격 책정 계층이 없습니다. 작업 영역은 언제든지 클러스터에서 연결을 해제할 수 있으며 가격 책정 계층은 GB별로 변경됩니다.

연결된 작업 영역에서 레거시 노드당 가격 책정 계층을 사용하는 경우, 더 이상 노드 기준이 아니라 클러스터의 약정 계층을 기준으로 수집된 데이터에 따라 요금이 청구됩니다. 클라우드용 Microsoft Defender의 노드별 데이터 할당량은 계속 적용됩니다.

전용 클러스터를 만들고 청구 유형을 지정하는 방법에 대한 자세한 내용은 전용 클러스터 만들기를 참조하세요.

기본 로그

기본 로그를 사용하도록 Log Analytics 작업 영역에서 특정 테이블을 구성할 수 있습니다. 이러한 테이블의 데이터는 수집 요금이 크게 감소하고 보존 기간이 제한됩니다. 하지만 이러한 테이블을 검색하려면 요금이 발생합니다. 기본 로그는 디버깅, 문제 해결 및 감사에 사용하는 대량의 자세한 정보 로그에 적합하며 분석 및 경고에는 어울리지 않습니다.

기본 로그 검색 요금은 검색을 수행할 때 검사된 데이터 GB를 기준으로 청구됩니다.

기본 로그를 구성하고 데이터를 쿼리하는 방법을 포함하여 기본 로그에 대한 자세한 내용은 Azure Monitor에서 기본 로그 구성을 참조하세요.

로그 데이터 보존 및 보관

데이터 수집 외에도 각 Log Analytics 작업 영역에서 데이터 보존 요금이 발생합니다. 전체 작업 영역 또는 각 테이블의 보존 기간을 설정할 수 있습니다. 이 기간이 지나면 데이터가 제거되거나 보관됩니다. 보관된 로그의 경우 보존 요금이 감소하고, 검색 요금이 있습니다. 보관 로그를 사용하면 규정 준수 또는 가끔 조사를 위해 저장해야 하는 데이터와 관련된 비용을 절감할 수 있습니다.

이러한 설정을 구성하고 보관된 데이터에 액세스하는 방법을 포함하여 데이터 보존 및 보관에 대한 자세한 내용은 Azure Monitor 로그에서 데이터 보존 및 보관 정책 구성을 참조하세요.

작업 검색

보관된 로그 검색에는 검색 작업이 사용됩니다. 검색 작업은 추가 분석을 위해 작업 영역 내의 새 검색 테이블로 레코드를 가져오는 비동기 쿼리입니다. 검색 작업 요금은 검색을 수행하기 위해 매일 액세스하여 검사되는 데이터 GB를 기준으로 청구됩니다.

로그 데이터 복원

오래된 로그 또는 보관된 로그를 전체 분석 쿼리 기능을 통해 집중적으로 쿼리해야 할 때 사용할 수 있는 데이터 복원 기능은 강력한 도구입니다. 복원 작업은 테이블에 있는 특정 시간 범위의 데이터를 고성능 쿼리용 핫 캐시에서 사용할 수 있도록 합니다. 나중에 작업이 끝나면 데이터를 해제할 수 있습니다. 로그 데이터 복원 요금은 복원된 데이터의 양과 복원이 활성 상태로 유지되는 시간을 기준으로 청구됩니다. 모든 데이터 복원에 대해 청구되는 최소 값은 2TB 및 12시간입니다. 2TB 및/또는 12시간을 초과하여 복원된 데이터는 비례 배분 방식으로 요금이 청구됩니다.

로그 데이터 내보내기

Log Analytics 작업 영역의 데이터 내보내기를 사용하면 데이터가 Azure Monitor 파이프라인에 도착할 때 작업 영역에서 선택한 테이블별로 데이터를 지속적으로 Azure Storage 계정 또는 Azure Event Hubs로 내보낼 수 있습니다. 데이터 내보내기 사용 요금은 내보낸 데이터의 양을 기준으로 청구됩니다. 내보낸 데이터 크기는 내보낸 JSON 형식 데이터의 바이트 수입니다.

Application Insights 요금 청구

작업 영역 기반 Application Insights 리소스는 데이터를 Log Analytics 작업 영역에 저장하므로, 데이터 수집 및 보존에 대한 요금 청구는 Application Insights 데이터가 위치한 작업 영역에서 이루어집니다. 따라서 종량제뿐 아니라 약정 계층까지 포함하여 Log Analytics 가격 책정 모델의 모든 옵션을 활용할 수 있습니다.

클래식 Application Insights 리소스의 데이터 수집 및 데이터 보존은 작업 영역 기반 리소스와 동일한 종량제 가격 책정 기준을 따르지만 약정 계층을 활용할 수는 없습니다.

ping 테스트와 다단계 테스트의 원격 분석 요금은 앱의 다른 원격 분석과 동일한 데이터 사용량을 기준으로 청구됩니다. 웹 테스트 사용과 사용자 지정 메트릭 차원에 대한 경고 사용은 계속해서 Application Insights를 통해 보고됩니다. 라이브 메트릭 스트림 사용에 대한 데이터 볼륨 요금은 없습니다.

Application Insights 얼리어답터에게 제공되는 레거시 계층에 대한 자세한 내용은 Application Insights 레거시 엔터프라이즈(노드당) 가격 책정 계층을 참조하세요.

Microsoft Sentinel을 사용하는 작업 영역

Log Analytics 작업 영역에서 Microsoft Sentinel을 사용하도록 설정하면 해당 작업 영역에서 수집된 모든 데이터에는 Log Analytics 요금 외에도 Sentinel 요금이 부과됩니다. 이러한 이유로 운영 데이터에 대한 Sentinel 요금이 발생하지 않도록 보안 및 운영 데이터를 다른 작업 영역에 분리하는 경우가 많습니다. 그러나 일부 특정 상황의 경우 이 데이터를 결합하면 실제로 비용을 절감할 수 있습니다. 일반적으로 각각 약정 계층에 도달할 만큼 충분한 보안 및 운영 데이터를 수집하지 않지만 결합된 데이터는 약정 계층에 도달하기에 충분한 경우가 이에 해당합니다. 자세한 내용과 비용 계산 샘플은 Microsoft Sentinel 작업 영역 아키텍처 설계에서 SOC 및 비 SOC 데이터 결합을 참조하세요.

클라우드용 Microsoft Defender가 적용된 작업 영역

서버용 Microsoft Defender(클라우드용 Defender의 일부)모니터링되는 서비스 수를 기준으로 요금이 청구되며 다음과 같은 보안 데이터 형식 하위 집합에 적용되는 500MB/서버/일 데이터 할당량을 제공합니다.

모니터링되는 서버 수는 시간 단위로 계산됩니다. 모니터링되는 각 서버의 일별 데이터 할당량 기여도는 작업 영역 수준에서 집계됩니다. 작업 영역이 레거시 노드당 가격 책정 계층에 있는 경우 클라우드용 Microsoft Defender 및 Log Analytics 할당량이 결합되어 청구 가능한 모든 수집된 데이터에 공동으로 적용됩니다.

레거시 가격 책정 계층

2018년 4월 2일에 Log Analytics 작업 영역 또는 Application Insights 리소스가 포함되거나, 2019년 2월 1일 이전에 시작되어 여전히 활성 상태인 기업계약에 연결된 구독은 다음과 같은 레거시 가격 책정 계층을 계속 사용할 수 있습니다.

  • 독립 실행형(GB당)
  • 노드당(OMS)

레거시 평가판 가격 책정 계층에 대한 액세스는 2022년 7월 1일부터 추가로 제한됩니다(아래 참조).

평가판 가격 책정 계층

평가판 가격 책정 계층의 작업 영역에는 일일 데이터 수집이 500MB로 제한되며(클라우드용 Microsoft Defender에서 수집된 보안 데이터 형식 제외), 데이터 보존 기간은 7일로 제한됩니다. 평가판 가격 책정 계층은 평가 목적으로만 사용됩니다. 무료 계층에 대해서는 SLA가 제공되지 않습니다.

참고

2022년 7월 1일까지만 레거시 평가판 가격 책정 계층에서 새 작업 영역을 만들거나 기존 작업 영역으로 이동할 수 있습니다.

독립 실행형 가격 책정 계층

독립 실행형 가격 책정 계층의 사용량은 수집된 데이터 볼륨을 기준으로 청구됩니다. 이는 Log Analytics 서비스에서 보고되고, 미터의 이름은 "분석된 데이터"로 지정됩니다. 독립 실행형 가격 책정 계층의 작업 영역은 사용자 구성 가능 보존 기간이 30~730일입니다. 독립 실행형 가격 책정 계층의 작업 영역은 기본 로그 사용을 지원하지 않습니다.

노드 가격 책정 계층당

노드당 가격 책정 계층은 모니터링되는 VM(노드)당 1시간 단위로 요금이 청구됩니다. 모니터링되는 각 노드에 대한 작업 영역에는 일일 500MB의 데이터 용량이 할당되며 이에 대한 요금은 청구되지 않습니다. 이 할당량은 시간별 세분성으로 계산되며, 매일 작업 영역 수준에서 집계됩니다. 일일 총 데이터 할당량을 초과하는 데이터 수집량에 대해서는 GB당 데이터 초과분 요금이 청구됩니다. 작업 영역이 노드당 가격 책정 계층에 있는 경우, 청구서에 명시되는 해당 서비스는 Log Analytics 사용량에 대한 Insight & Analytics입니다. 노드당 가격 책정 계층의 작업 영역은 사용자 구성 가능 보존 기간이 30~730일입니다. 노드당 가격 책정 계층의 작업 영역은 기본 로그 사용을 지원하지 않습니다. 사용량은 다음 세 가지 미터로 보고됩니다.

  • 노드: 노드 개월 단위로 모니터링되는 노드(VM) 수에 대한 사용량입니다.
  • 노드당 데이터 초과분: 집계된 데이터 할당량을 초과하여 수집된 데이터의 GB 수입니다.
  • 노드당 포함된 데이터: 집계된 데이터 할당량에 포함된 수집된 데이터의 양입니다. 이 미터는 작업 영역이 모든 가격 책정 계층에 있는 경우에도 클라우드용 Microsoft Defender에서 처리하는 데이터 양을 표시하는 데 사용됩니다.

작업 영역에서 노드당 가격 책정 계층에 액세스할 수 있으며 다만 종량제 계층에서 비용이 더 저렴한지 여부가 궁금한 경우, 아래의 쿼리를 사용하면 권장 사항을 확인할 수 있습니다.

표준 및 프리미엄 가격 책정 계층

2016년 4월 이전에 만든 작업 영역은 데이터 보존 기간이 각각 30일 및 365일로 정해진 표준프리미엄 가격 책정 계층을 계속 사용할 수도 있습니다. 표준 또는 프리미엄 가격 책정 계층에서는 새 작업 영역을 만들 수 없으며, 작업 영역을 이러한 계층 밖으로 옮기면 다시 이동할 수 없습니다. 가격 책정 계층의 작업 영역은 기본 로그 사용을 지원하지 않습니다. 이러한 레거시 계층에 대한 Azure 청구서의 데이터 수집 미터를 "분석된 데이터"라고 합니다.

레거시 가격 책정 계층을 사용하는 클라우드용 Microsoft Defender

다음은 레거시 Log Analytics 계층 간의 고려 사항과 클라우드용 Microsoft Defender의 요금 청구 방식입니다.

  • 작업 영역이 레거시 표준 또는 프리미엄 계층에 있는 경우 클라우드용 Microsoft Defender는 노드당이 아니라 Log Analytics 데이터 수집에 대해서만 요금이 청구됩니다.
  • 작업 영역이 레거시 노드당 계층에 있는 경우 클라우드용 Microsoft Defender는 현재 클라우드용 Microsoft Defender 노드 기반 가격 책정 모델을 사용하여 요금이 청구됩니다.
  • 그 밖의 다른 가격 책정 계층(약정 계층 포함)에서 클라우드용 Microsoft Defender가 2017년 6월 19일 이전에 사용하도록 설정된 경우 클라우드용 Microsoft Defender에 대한 요금은 Log Analytics 데이터 수집에 대해서만 청구됩니다. 그렇지 않으면 클라우드용 Microsoft Defender는 현재 클라우드용 Microsoft Defender 노드 기반 가격 책정 모델을 사용하여 요금이 청구됩니다.

가격 책정 계층 제한 사항에 대한 자세한 내용은 Azure 구독 및 서비스 제한, 할당량 및 제약 조건에서 확인할 수 있습니다.

레거시 가격 책정 계층에는 지역 기반 가격 책정이 없습니다.

참고

System Center용 OMS E1 Suite, OMS E2 Suite 또는 OMS 추가 기능을 구매할 때 제공되는 자격을 사용하려면 Log Analytics의 노드별 가격 책정 계층을 선택합니다.

레거시 노드당 가격 책정 계층 평가

레거시 노드당 가격 책정 계층에 액세스할 수 있는 작업 영역이 해당 계층, 현재 종량제, 약정 계층 중 어느 곳에 가장 적합한지 결정하기 어려운 경우가 많습니다. 여기에는 노드당 가격 책정 계층에서 모니터링되는 노드당 고정 비용과 이 계층에 포함된 일일 노드당 500MB의 데이터 할당량 그리고 종량제(GB당) 계층의 수집 데이터에 대한 요금 결제 비용 간에 절충값을 파악하는 과정이 포함됩니다.

다음 쿼리를 사용하면 작업 영역의 사용 패턴을 기반으로 최적의 가격 책정 계층을 추천할 수 있습니다. 이 쿼리는 지난 7일 동안 작업 영역에서 모니터링된 노드 및 수집된 데이터를 각각 확인하며 각 날짜별로 가장 적합한 가격 책정 계층을 평가합니다. 쿼리를 사용하려면 다음을 지정해야 합니다.

  • workspaceHasSecurityCentertrue 또는 false로 설정하여 작업 영역에서 클라우드용 Microsoft Defender를 사용하는지 여부
  • 특정 할인이 있는 경우 가격을 업데이트합니다.
  • daysToEvaluate를 설정하여 되돌아가 분석할 기간(일 수)를 지정해야 합니다. 이 방법은 쿼리가 7일간의 데이터를 확인하는 데 너무 많은 시간이 걸리는 경우에 도움이 됩니다.
// Set these parameters before running query
// For Pay-As-You-Go (per-GB) and commitment tier pricing details, see https://azure.microsoft.com/pricing/details/monitor/.
// You can see your per-node costs in your Azure usage and charge data. For more information, see https://docs.microsoft.com/en-us/azure/cost-management-billing/understand/download-azure-daily-usage.  
let PerNodePrice = 15.; // Monthly price per monitored node
let PerNodeOveragePrice = 2.30; // Price per GB for data overage in the Per Node pricing tier
let PerGBPrice = 2.30; // Enter the Pay-as-you-go price for your workspace's region (from https://azure.microsoft.com/pricing/details/monitor/)
let CommitmentTier100Price = 196.; // Enter your price for the 100 GB/day commitment tier
let CommitmentTier200Price = 368.; // Enter your price for the 200 GB/day commitment tier
let CommitmentTier300Price = 540.; // Enter your price for the 300 GB/day commitment tier
let CommitmentTier400Price = 704.; // Enter your price for the 400 GB/day commitment tier
let CommitmentTier500Price = 865.; // Enter your price for the 500 GB/day commitment tier
let CommitmentTier1000Price = 1700.; // Enter your price for the 1000 GB/day commitment tier
let CommitmentTier2000Price = 3320.; // Enter your price for the 2000 GB/day commitment tier
let CommitmentTier5000Price = 8050.; // Enter your price for the 5000 GB/day commitment tier
// ---------------------------------------
let SecurityDataTypes=dynamic(["SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent", "Update", "UpdateSummary"]);
let StartDate = startofday(datetime_add("Day",-1*daysToEvaluate,now()));
let EndDate = startofday(now());
union * 
| where TimeGenerated >= StartDate and TimeGenerated < EndDate
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodesPerHour = dcount(computerName) by bin(TimeGenerated, 1h)  
| summarize nodesPerDay = sum(nodesPerHour)/24.  by day=bin(TimeGenerated, 1d)  
| join kind=leftouter (
    Heartbeat 
    | where TimeGenerated >= StartDate and TimeGenerated < EndDate
    | where Computer != ""
    | summarize ASCnodesPerHour = dcount(Computer) by bin(TimeGenerated, 1h) 
    | extend ASCnodesPerHour = iff(workspaceHasSecurityCenter, ASCnodesPerHour, 0)
    | summarize ASCnodesPerDay = sum(ASCnodesPerHour)/24.  by day=bin(TimeGenerated, 1d)   
) on day
| join (
    Usage 
    | where TimeGenerated >= StartDate and TimeGenerated < EndDate
    | where IsBillable == true
    | extend NonSecurityData = iff(DataType !in (SecurityDataTypes), Quantity, 0.)
    | extend SecurityData = iff(DataType in (SecurityDataTypes), Quantity, 0.)
    | summarize DataGB=sum(Quantity)/1000., NonSecurityDataGB=sum(NonSecurityData)/1000., SecurityDataGB=sum(SecurityData)/1000. by day=bin(StartTime, 1d)  
) on day
| extend AvgGbPerNode =  NonSecurityDataGB / nodesPerDay
| extend OverageGB = iff(workspaceHasSecurityCenter, 
             max_of(DataGB - 0.5*nodesPerDay - 0.5*ASCnodesPerDay, 0.), 
             max_of(DataGB - 0.5*nodesPerDay, 0.))
| extend PerNodeDailyCost = nodesPerDay * PerNodePrice / 31. + OverageGB * PerNodeOveragePrice
| extend billableGB = iff(workspaceHasSecurityCenter,
             (NonSecurityDataGB + max_of(SecurityDataGB - 0.5*ASCnodesPerDay, 0.)), DataGB )
| extend PerGBDailyCost = billableGB * PerGBPrice
| extend CommitmentTier100DailyCost = CommitmentTier100Price + max_of(billableGB - 100, 0.)* CommitmentTier100Price/100.
| extend CommitmentTier200DailyCost = CommitmentTier200Price + max_of(billableGB - 200, 0.)* CommitmentTier200Price/200.
| extend CommitmentTier300DailyCost = CommitmentTier300Price + max_of(billableGB - 300, 0.)* CommitmentTier300Price/300.
| extend CommitmentTier400DailyCost = CommitmentTier400Price + max_of(billableGB - 400, 0.)* CommitmentTier400Price/400.
| extend CommitmentTier500DailyCost = CommitmentTier500Price + max_of(billableGB - 500, 0.)* CommitmentTier500Price/500.
| extend CommitmentTier1000DailyCost = CommitmentTier1000Price + max_of(billableGB - 1000, 0.)* CommitmentTier1000Price/1000.
| extend CommitmentTier2000DailyCost = CommitmentTier2000Price + max_of(billableGB - 2000, 0.)* CommitmentTier2000Price/2000.
| extend CommitmentTier5000DailyCost = CommitmentTier5000Price + max_of(billableGB - 5000, 0.)* CommitmentTier5000Price/5000.
| extend MinCost = min_of(
    PerNodeDailyCost,PerGBDailyCost,CommitmentTier100DailyCost,CommitmentTier200DailyCost,
    CommitmentTier300DailyCost, CommitmentTier400DailyCost, CommitmentTier500DailyCost, CommitmentTier1000DailyCost, CommitmentTier2000DailyCost, CommitmentTier5000DailyCost)
| extend Recommendation = case(
    MinCost == PerNodeDailyCost, "Per node tier",
    MinCost == PerGBDailyCost, "Pay-as-you-go tier",
    MinCost == CommitmentTier100DailyCost, "Commitment tier (100 GB/day)",
    MinCost == CommitmentTier200DailyCost, "Commitment tier (200 GB/day)",
    MinCost == CommitmentTier300DailyCost, "Commitment tier (300 GB/day)",
    MinCost == CommitmentTier400DailyCost, "Commitment tier (400 GB/day)",
    MinCost == CommitmentTier500DailyCost, "Commitment tier (500 GB/day)",
    MinCost == CommitmentTier1000DailyCost, "Commitment tier (1000 GB/day)",
    MinCost == CommitmentTier2000DailyCost, "Commitment tier (2000 GB/day)",
    MinCost == CommitmentTier5000DailyCost, "Commitment tier (5000 GB/day)",
    "Error"
)
| project day, nodesPerDay, ASCnodesPerDay, NonSecurityDataGB, SecurityDataGB, OverageGB, AvgGbPerNode, PerGBDailyCost, PerNodeDailyCost, 
    CommitmentTier100DailyCost, CommitmentTier200DailyCost, CommitmentTier300DailyCost, CommitmentTier400DailyCost, CommitmentTier500DailyCost, CommitmentTier1000DailyCost, CommitmentTier2000DailyCost, CommitmentTier5000DailyCost, Recommendation 
| sort by day asc
//| project day, Recommendation // Comment this line to see details
| sort by day asc

이 쿼리는 사용량이 계산되는 방식을 정확하게 복제한 것은 아니지만 대개의 경우 가격 책정 계층 권장 사항을 제공하는 데 사용됩니다.

참고

System Center용 OMS E1 Suite, OMS E2 Suite 또는 OMS 추가 기능을 구매할 때 제공되는 자격을 사용하려면 Log Analytics의 노드별 가격 책정 계층을 선택합니다.

다음 단계