Container Insights의 대규모 로그 컬렉션(미리 보기)

대규모 모드는 AKS(Azure Kubernetes Service) 클러스터 노드에서 처리량이 높은 컨테이너 콘솔(stdout 및 stderr) 로그를 수집할 수 있도록 하는 컨테이너 인사이트의 기능입니다. 이 기능을 사용하면 노드별로 초당 최대 50,000개의 로그를 수집할 수 있습니다.

참고 항목

이 기능은 현재 공개 미리 보기로 제공됩니다. 자세한 내용은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

개요

대규모 모드를 활성화하면 컨테이너 인사이트는 여러 구성 변경을 수행하여 전체 처리량을 높입니다. 여기에는 업그레이드된 에이전트 및 규모가 개선된 Azure Monitor 데이터 파이프라인을 사용하는 것이 포함됩니다. 이러한 변경 사항은 모두 Azure Monitor에 의해 백그라운드에서 수행되며 기능 활성화 후 입력 또는 구성이 필요하지 않습니다.

대규모 모드는 데이터 수집 계층에만 영향을 미칩니다. 나머지 컨테이너 인사이트 환경은 동일하게 유지되며 로그는 같은 ContainerLogV2 테이블에 수집됩니다. 동일한 데이터가 수집되기 때문에 기존 쿼리 및 경고가 계속 작동합니다.

지원되는 최대 로그 처리량을 달성하려면 AKS 클러스터 노드에 16개 이상의 CPU 코어가 있는 고급 VM SKU를 사용해야 합니다. 저사양 VM SKU를 사용하면 로그 처리량에 영향을 미칩니다.

클러스터의 적합성 파악

대규모 로그 수집은 Kubernetes 클러스터에서 노드별 초당 2,000개가 넘는 로그(또는 2MB/초)를 전송하는 환경에 적합하며 노드별 초당 최대 50,000개의 로그를 전송하도록 설계 및 테스트되었습니다. 다음 로그 쿼리를 사용하여 클러스터가 대규모 로그 수집에 적합한지 확인하세요.

초당/노드당 로그

ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

노드별 초당 로그 크기(MB)

 ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

필수 조건

  • Azure CLI 버전 2.63.0 이상.
  • aks-preview CLI 확장이 설치된 경우 AKS-preview CLI 확장 버전은 7.0.0b4 이상이어야 합니다.
  • 클러스터 스키마가 ContainerLogV2에 대해 구성되어야 합니다.
  • ama-logs 디먼 집합 컨테이너의 기본 리소스 한도(CPU 및 메모리)가 로그 규모 요구 사항을 충족하지 않는 경우 Microsoft 지원 채널에 문의하여 ama-logs 컨테이너의 리소스 한도를 늘리세요.

네트워크 방화벽 요구 사항

Kubernetes 클러스터를 모니터링하기 위한 네트워크 방화벽 요구 사항 외에도 클라우드에 따라 대규모 모드를 활성화하려면 다음 표의 추가 구성이 필요합니다.

클라우드 엔드포인트 포트
Azure 퍼블릭 클라우드 <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com 443
21Vianet에서 운영하는 Microsoft Azure 클라우드 <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443
Azure Government 클라우드 <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us 443

엔드포인트는 클러스터에서 사용하는 DCR(데이터 수집 규칙)에 대한 DCE(데이터 수집 엔드포인트)의 로그 수집 엔드포인트입니다. 이 DCE는 클러스터에 대해 대규모 모드를 활성화할 때 생성되며 접두사 MSCI-ingest로 시작됩니다.

DCE에 대한 로그 수집 엔드포인트의 스크린샷.

제한 사항

다음 시나리오는 미리 보기 릴리스 중에 지원되지 않습니다. 이 문제는 기능의 일반 공급이 시작될 때 해결됩니다.

  • Arm64 노드가 있는 AKS 클러스터
  • Azure Arc 지원 Kubernetes
  • 신뢰할 수 있는 인증서가 있는 HTTP 프록시
  • Azure Portal, Azure Policy, Terraform, Bicep을 통한 온보딩
  • AKS Insights 포털 환경에서 모니터 설정을 통해 구성
  • 기존 컨테이너 인사이트에서 자동 마이그레이션

대규모 로그 수집 활성화

클러스터에 대해 대규모 모드를 활성화하려면 다음 섹션의 두 단계를 수행합니다.

참고 항목

대규모 로그 모드에서는 수집을 위해 DCE(데이터 수집 엔드포인트)가 필요합니다. 수집 DCE는 온보딩할 때 각 클러스터에 대해 접두사 MSCI-ingest를 사용하여 생성됩니다. Azure Monitor 프라이빗 링크 범위가 구성된 경우 접두사 MSCI-config를 사용하여 생성되는 구성 DCE도 있습니다.

ConfigMap 업데이트

첫 번째 단계는 클러스터에 대한 ConfigMap을 업데이트하여 컨테이너 인사이트 ama-logs DaemonSet Pod가 대규모 모드에서 실행되도록 지시하는 것입니다.

ConfigMap 구성 및 배포의 지침에 따라 클러스터에 대한 ConfigMap을 다운로드하고 업데이트합니다. 대규모 로그에 대해 적용해야 하는 유일한 변경 사항은 다음과 같이 agent-settings에서 agent_settings.high_log_scale을 활성화하는 것입니다.

[agent_settings.high_log_scale] 
  enabled = true 

이 ConfigMap을 적용하면 ama-logs-* Pod가 자동으로 다시 시작되고 ama-logs DaemonSet Pod가 대규모 모드에서 실행되도록 구성됩니다.

모니터링 추가 기능에 대규모 모드 활성화

AKS 구성에 따라 모니터링 추가 기능에 대규모 로그 모드를 활성화하려면 다음 Azure CLI 명령을 사용하여 대규모 모드로 모니터링 추가 기능을 활성화합니다.

참고 항목

CLI 대신 ARM 템플릿을 사용하여 모니터링 추가 기능에 대규모 모드를 활성화할 수 있습니다. ARM 템플릿을 사용하여 컨테이너 인사이트를 활성화하는 방법에 대한 지침은 컨테이너 인사이트 사용을 참조하세요. 대규모 모드를 활성화하려면 ARM 템플릿을 사용하여 DCR 구성에 설명된 대로 streams 매개 변수에 Microsoft-ContainerLogV2 대신 Microsoft-ContainerLogV2-HighScale을 사용하세요.

기존 AKS 클러스터

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode  

기존 AKS 프라이빗 클러스터

az aks enable-addons -a monitoring -g  <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

새 AKS 클러스터

az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode  

새 AKS 프라이빗 클러스터

AKS 프라이빗 클러스터를 만드는 방법에 대한 자세한 내용은 프라이빗 AKS(Azure Kubernetes Service) 클러스터 만들기를 참조하세요. 추가 매개 변수 --enable-high-scale-mode--ampls-resource-id를 사용하고 Azure Monitor 프라이빗 링크 범위 리소스 ID를 사용하여 대규모 로그 모드를 구성합니다.

마이그레이션

클러스터에 대해 컨테이너 인사이트를 이미 활성화한 경우 비활성화한 다음 대규모 모드로 다시 활성화해야 합니다.

  • 대규모 모드는 다른 데이터 파이프라인을 사용하므로 파이프라인 엔드포인트가 방화벽 또는 기타 네트워크 연결에 의해 차단되지 않도록 해야 합니다.
  • 대규모 모드에서는 데이터 수집을 위한 표준 DCR 외에도 수집을 위한 DCE(데이터 수집 엔드포인트)가 필요합니다. Microsoft.ContainerLogV2를 사용하는 DCR을 만든 경우 이를 Microsoft.ContainerLogV2-HighScale로 바꿔야 합니다. 그렇지 않으면 데이터가 중복됩니다. 또한 수집을 위한 DCE를 생성하고 DCR에서 아직 사용하고 있지 않은 경우 이를 DCR에 연결해야 합니다. 종속성에 대한 참조는 Azure Resource Manager를 통한 컨테이너 인사이트 온보딩을 참조하세요.

다음 단계