Kubernetes 클러스터는 컨테이너 인사이트에서 수집된 대량의 데이터를 생성합니다. 이러한 데이터의 수집 및 보존에 대한 요금이 부과되므로 비용을 최적화할 수 있도록 환경을 구성해야 합니다. 필요 없는 데이터를 필터링하고 데이터를 저장하는 Log Analytics 작업 영역의 구성을 최적화하면 모니터링 비용을 크게 줄일 수 있습니다.
수집한 데이터를 분석하고 필요하지 않은 데이터가 수집되어 있는지 확인한 후, 수집하지 않으려는 데이터를 필터링하는 몇 가지 옵션이 있습니다. 이는 미리 정의된 비용 구성 집합에서 선택하는 것부터 특정 기준에 따라 데이터를 필터링하기 위해 다양한 기능을 활용하는 것까지 다양합니다. 이 문서에서는 컨테이너 인사이트를 위해 데이터 수집을 분석하고 최적화하는 방법에 대한 지침을 제공합니다.
데이터 수집 분석
비용 절감을 위한 최상의 기회를 파악하려면 다양한 표에서 수집된 데이터 양을 분석합니다. 이 정보는 어느 테이블이 가장 많은 데이터를 사용하는지 파악하는 데 도움이 되며, 비용을 절감하는 방법에 대한 합리적 결정을 내리는 데 도움이 됩니다.
모니터링되는 클러스터의 통합 문서 페이지에서 제공되는 Container Insights Usage runbook을 사용하여 각 작업 공간에서 수집된 데이터의 양을 시각화할 수 있습니다.
보고서를 통해 테이블, 네임스페이스, 로그 원본 등 다양한 범주에 따른 데이터 사용량을 볼 수 있습니다. 이러한 다양한 보기를 사용하면 사용하지 않는 데이터를 파악하고 필터링하여 비용을 절감할 수 있습니다.
개별 수집 레코드를 보는 것을 포함하여 보다 자세한 분석을 수행할 수 있는 Log Analytics에서 쿼리를 여는 옵션을 선택합니다. 수집된 데이터를 분석하는 데 사용할 수 있는 추가 쿼리는 컨테이너 인사이트의 쿼리 로그를 참조하세요.
예를 들어, 다음 스크린샷은 네임스페이스 및 테이블별로 데이터를 표시하는 테이블별에 사용된 로그 쿼리의 수정을 보여 줍니다.
수집된 데이터 필터링
필터링할 수 있는 데이터를 식별한 후 컨테이너 인사이트에서 다양한 구성 옵션을 사용하여 필요 없는 데이터를 필터링합니다. 미리 정의된 구성을 선택하고, 개별 매개 변수를 설정하고, 세부 필터링을 위한 사용자 지정 로그 쿼리를 사용하는 옵션을 사용할 수 있습니다.
로그 사전 설정
데이터를 필터링하는 가장 간단한 방법은 모니터 > 설정에서 Azure Portal의 로그 사전 설정을 사용하는 것입니다. 각 사전 설정에는 다양한 작업 및 비용 프로필을 기반으로 수집할 수 있는 다양한 테이블 집합이 포함되어 있습니다. 로그 사전 설정은 일반적인 시나리오에 따라 데이터 수집을 신속하게 구성할 수 있도록 설계되었습니다.
필터링 옵션
적절한 로그 사전 설정을 선택한 후에는 다음 표의 다른 메서드를 사용하여 추가 데이터를 필터링할 수 있습니다. 각 옵션을 사용하면 다양한 기준에 따라 데이터를 필터링할 수 있습니다. 구성을 완료하면 분석 및 경고에 필요한 데이터만 수집해야 합니다.
필터링 기준 | 설명 |
---|---|
테이블 | 미리 설정된 로그 그룹 외에 채울 개별 테이블을 선택하려면 DCR을 수동으로 수정합니다. 예를 들어 ContainerLogV2 를 수집하되 동일한 로그 사전 설정에 포함된 KubeEvents 는 수집하지 않을 수 있습니다. DCR에서 사용할 스트림 목록은 Stream 값을 참조하세요. |
컨테이너 로그 |
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 를 구성합니다. 기본 로그에 대해 구성된 이 테이블을 사용하여 컨테이너 로그에 대한 경고를 계속 진행하려면 AKS에 대한 비용 효율적인 경고 전략을 참조하세요.
비용 효율적인 경고 전략
경고는 AKS(Azure Kubernetes Service)에서 워크로드를 모니터링하는 데 중요한 부분입니다. 고급 경고를 사용하려면 Log Analytics 작업 영역에서 분석 계층 로그 가 필요하지만 대용량 환경 또는 감사 로그와 같은 특정 유형의 로그에는 비용이 많이 들 수 있습니다.
컨테이너 로그를 보관하는 테이블을 기본 로그로 변환하고 Log Analytics 플랫폼의 다른 비용 효율적인 전략을 활용하여 데이터 수집 비용을 크게 줄일 수 있습니다. Azure Monitor는 이러한 테이블에서 이벤트 기반 및 요약 기반 경고를 위한 옵션을 제공하므로 AKS 워크로드의 상태 및 동작에 대한 가시성을 희생하지 않고도 비용을 더 많이 제어할 수 있습니다. 자세한 내용은 AKS에 대한 비용 효율적인 경고 전략을 참조하세요.
다음 단계
컨테이너 인사이트를 사용하여 수집된 데이터의 최근 사용 패턴을 기반으로 하는 비용을 파악하는 방법에 대한 자세한 내용은 Log Analytics 작업 영역에서 사용량 분석을 참조하세요.