Container Insights에 대한 모니터링 비용 최적화
Kubernetes 클러스터는 컨테이너 인사이트에서 수집된 대량의 데이터를 생성합니다. 이러한 데이터의 수집 및 보존에 대한 요금이 부과되므로 비용을 최적화할 수 있도록 환경을 구성해야 합니다. 필요 없는 데이터를 필터링하고 데이터를 저장하는 Log Analytics 작업 영역의 구성을 최적화하면 모니터링 비용을 크게 줄일 수 있습니다.
수집한 데이터를 분석하고 필요하지 않은 데이터가 수집되어 있는지 확인한 후, 수집하지 않으려는 데이터를 필터링하는 몇 가지 옵션이 있습니다. 이는 미리 정의된 비용 구성 집합에서 선택하는 것부터 특정 기준에 따라 데이터를 필터링하기 위해 다양한 기능을 활용하는 것까지 다양합니다. 이 문서에서는 컨테이너 인사이트를 위해 데이터 수집을 분석하고 최적화하는 방법에 대한 지침을 제공합니다.
데이터 수집 분석
비용 절감을 위한 최상의 기회를 파악하려면 다양한 표에서 수집된 데이터 양을 분석합니다. 이 정보는 어느 테이블이 가장 많은 데이터를 사용하는지 파악하는 데 도움이 되며, 비용을 절감하는 방법에 대한 합리적 결정을 내리는 데 도움이 됩니다.
모니터링되는 클러스터의 작업 영역 페이지에서 사용할 수 있는 Container Insights 사용량 Runbook을 사용하면 각 작업 영역에 얼마나 많은 데이터가 수집되는지 시각화할 수 있습니다.
보고서를 통해 테이블, 네임스페이스, 로그 원본 등 다양한 범주에 따른 데이터 사용량을 볼 수 있습니다. 이러한 다양한 보기를 사용하면 사용하지 않는 데이터를 파악하고 필터링하여 비용을 절감할 수 있습니다.
개별 수집 레코드를 보는 것을 포함하여 보다 자세한 분석을 수행할 수 있는 Log Analytics에서 쿼리를 여는 옵션을 선택합니다. 수집된 데이터를 분석하는 데 사용할 수 있는 추가 쿼리는 컨테이너 인사이트의 쿼리 로그를 참조하세요.
예를 들어, 다음 스크린샷은 네임스페이스 및 테이블별로 데이터를 표시하는 테이블별에 사용된 로그 쿼리의 수정을 보여 줍니다.
수집된 데이터 필터링
필터링할 수 있는 데이터를 식별한 후 컨테이너 인사이트에서 다양한 구성 옵션을 사용하여 필요 없는 데이터를 필터링합니다. 미리 정의된 구성을 선택하고, 개별 매개 변수를 설정하고, 세부 필터링을 위한 사용자 지정 로그 쿼리를 사용하는 옵션을 사용할 수 있습니다.
비용 사전 설정
데이터를 필터링하는 가장 간단한 방법은 Azure Portal에서 비용 사전 설정을 사용하는 것입니다. 각 사전 설정에는 다양한 작업 및 비용 프로필을 기반으로 수집할 수 있는 다양한 테이블 집합이 포함되어 있습니다. 비용 사전 설정은 일반적인 시나리오에 따라 데이터 수집을 빠르게 구성하는 데 도움이 되도록 설계되었습니다.
팁
컨테이너 인사이트를 위해 Prometheus 환경을 사용하도록 클러스터를 구성한 경우 성능 데이터가 Prometheus에서 수집되므로 성능 컬렉션을 사용하지 않도록 설정할 수 있습니다.
비용 사전 설정 선택에 대한 자세한 내용은 Azure Portal로 DCR 구성을 참조하세요.
필터링 옵션
적절한 비용 사전 설정을 선택한 후 다음 표의 다양한 방법을 사용하여 추가 데이터를 필터링할 수 있습니다. 각 옵션을 사용하면 다양한 기준에 따라 데이터를 필터링할 수 있습니다. 구성을 완료하면 분석 및 경고에 필요한 데이터만 수집해야 합니다.
Filter by | 설명 |
---|---|
테이블 | 비용 사전 설정 그룹이 아닌 개별 테이블을 선택하여 채우려면 DCR을 수동으로 수정합니다. 예를 들어, 동일한 비용 사전 설정에 포함된 KubeEvents는 수집하지 않고 ContainerLogV2만 수집하려고 할 수 있습니다. DCR에서 사용할 스트림 목록은 DCR의 스트림 값을 참조하고 지침을 따릅니다. |
컨테이너 로그 | ContainerLogV2 는 클러스터의 컨테이너에서 생성된 stdout/stderr 레코드를 저장합니다. DCR을 사용하여 전체 테이블 컬렉션을 사용하지 않도록 설정할 수 있는 반면, 클러스터에 대한 ConfigMap을 사용하여 stderr 및 stdout 로그 컬렉션을 별도로 구성할 수 있습니다. stdout 및 stderr 설정은 별도로 구성할 수 있으므로 하나만 사용하고 다른 하나는 사용하지 않도록 선택할 수 있습니다.컨테이너 로그 필터링에 대한 자세한 내용은 컨테이너 로그 필터링을 참조하세요. |
네임스페이스 | Kubernetes의 네임스페이스는 클러스터 내의 리소스를 그룹화하는 데 사용됩니다. 필요하지 않은 특정 네임스페이스의 리소스에서 데이터를 필터링할 수 있습니다. DCR을 사용하면 Perf 테이블에 대한 컬렉션을 사용하도록 설정한 경우에만 네임스페이스별로 성능 데이터를 필터링할 수 있습니다. ConfigMap을 사용하여 stdout 및 stderr 로그의 특정 네임스페이스에 대한 데이터를 필터링합니다.네임스페이스별 로그 필터링에 대한 자세한 내용은 컨테이너 로그 필터링을 참조하고, 시스템 네임스페이스에 대한 자세한 내용은 플랫폼 로그 필터링(시스템 Kubernetes 네임스페이스)을 참조하세요. |
Pod 및 컨테이너 | 주석 필터링을 사용하면 Pod에 작성한 주석을 기준으로 컨테이너 로그를 필터링할 수 있습니다. ConfigMap을 사용하면 개별 Pod와 컨테이너에 대한 stdout 및 stderr 로그를 수집할지 여부를 지정할 수 있습니다. ConfigMap을 업데이트하고 Pod에서 주석을 설정하는 방법에 대한 자세한 내용은 워크로드에 대한 주석 기반 필터링을 참조하세요. |
변환
수집 시간 변환을 사용하면 Log Analytics 작업 영역에 저장되기 전에 Azure Monitor 파이프라인에서 데이터를 필터링하고 변환하는 KQL 쿼리를 적용할 수 있습니다. 이 기능을 사용하면 다른 옵션으로는 수행할 수 없는 기준에 따라 데이터를 필터링할 수 있습니다.
예를 들어, ContainerLogV2의 로그 수준에 따라 컨테이너 로그를 필터링하도록 선택할 수 있습니다. 다음 다이어그램의 기능을 수행하는 변환을 컨테이너 인사이트 DCR에 추가할 수 있습니다. 이 예에서는 error
및 critical
수준 이벤트만 수집되고 다른 이벤트는 무시됩니다.
또 다른 전략은 기본 로그용으로 구성된 별도의 테이블에 덜 중요한 이벤트를 저장하는 것입니다. 문제 해결을 위해 이벤트를 계속 사용할 수 있지만 데이터 수집에 드는 비용이 상당히 절약됩니다.
변환을 사용하는 샘플 DCR을 포함하여 컨테이너 인사이트 DCR에 변환을 추가하는 방법에 대한 자세한 내용은 컨테이너 인사이트의 데이터 변환을 참조하세요.
가격 책정 계층 구성
Azure Monitor의 기본 로그는 디버깅 및 문제 해결에 가끔 사용하는 데이터에 대한 Log Analytics 작업 영역의 데이터 수집에 대해 상당한 비용 할인을 제공합니다. 기본 로그에 맞게 구성된 테이블은 로그 쿼리 비용만 지불하는 대신 데이터 수집 비용을 상당히 할인해 주므로 필요하지만 자주 액세스하지 않는 데이터에 이상적입니다.
ContainerLogV2는 기본 로그에 맞게 구성할 수 있으며, 데이터를 자주 쿼리하지 않는 경우 상당한 비용 절감 효과를 얻을 수 있습니다. 변환을 사용하면 기본 로그에 대해 구성된 대체 테이블로 전송해야 하는 데이터를 지정할 수 있습니다. 이 전략의 예는 컨테이너 인사이트의 데이터 변환을 참조하세요.
다음 단계
컨테이너 인사이트를 사용하여 수집된 데이터의 최근 사용 패턴을 기반으로 하는 비용을 파악하는 방법에 대한 자세한 내용은 Log Analytics 작업 영역에서 사용량 분석을 참조하세요.