Cloud Monitoring
이 주제에서는 Azure용 Anthos 클러스터가 Cloud Monitoring과 통합되는 방법 및 측정항목을 확인하는 방법을 설명합니다.
시작하기 전에
Google Cloud CLI를 구성하고 Google Cloud 프로젝트에서 필요한 API를 사용 설정합니다.
Cloud Logging / Cloud Monitoring을 승인하여 Google Cloud 운영 제품군에 대한 권한을 설정합니다.
개요
Azure용 Anthos 클러스터는 노드, 포드, 컨테이너의 시스템 측정항목을 위해 Cloud Monitoring과 기본적으로 통합됩니다. 이를 통해 클러스터에서 워크로드의 리소스 소비를 쉽게 확인하고, 대시보드를 빌드하고, 알림을 구성할 수 있습니다.
Azure용 Anthos 클러스터는 클러스터에 측정항목 수집기 gke-metrics-agent
를 설치합니다. 이 에이전트는 OpenTelemetry 수집기를 기반으로 하며 클러스터의 모든 노드에서 실행됩니다. 1분마다 측정항목을 샘플링하고 측정 결과를 Cloud Monitoring에 업로드합니다.
클러스터의 측정항목이 업로드된 후 Google Cloud 프로젝트에 유지됩니다. 모든 클러스터 간에 데이터를 집계하고, 커스텀 대시보드를 빌드하고, 단일 클러스터 데이터를 탐색하고, 선 차트를 확인하고, 알림을 설정하는 등의 작업을 수행할 수 있습니다.
측정항목 탐색기 사용
측정항목 탐색기를 사용하여 모니터링 리소스의 측정항목을 확인하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 Monitoring의 측정항목 탐색기 페이지로 이동합니다.
- 측정항목 선택 창에서 측정항목 메뉴를 펼치고 필터 표시줄에
Kubernetes Container
를 입력한 후 하위 메뉴를 사용하여 특정 리소스 유형 및 측정항목을 선택합니다.- 활성 리소스 메뉴에서 Kubernetes 컨테이너를 선택합니다.
- 활성 측정항목 카테고리 메뉴에서 컨테이너를 선택합니다.
- 활성 측정항목 메뉴에서 CPU 사용 시간을 선택합니다.
- 적용을 클릭합니다.
- 선택사항: 데이터를 보는 방법을 구성하려면 필터, 그룹화를 추가하고 정렬 필드를 구성합니다. 기본적으로 측정항목 탐색기는 모든 시계열의 평균을 구하는 그룹화를 추가합니다.
- 시계열을 리소스 또는 측정항목 라벨로 그룹화하려면 그룹화 기준 섹션에서 라벨 메뉴를 펼친 후 선택합니다. 그룹화 함수도 변경할 수 있습니다.
- 모든 시계열을 보려면 그룹화 기준 항목에서 delete삭제를 클릭합니다.
- 정렬 필드에 액세스하려면 옵션 더보기를 클릭합니다.
- 선택사항: 표시 창에서 설정을 변경합니다.
- 하루에 샘플 하나를 보고하는 할당량과 기타 측정항목의 경우 위젯 유형을 누적 막대 그래프로 설정합니다.
- 분포 값 측정항목의 경우 위젯 유형을 히트맵 차트로 설정합니다.
- 선택사항: 하루에 샘플 하나를 보고하는 할당량과 기타 측정항목의 경우 기간을 최소 1주일 이상으로 설정합니다.
수집되는 측정항목
측정항목은 세 가지 모니터링 리소스 유형 중 하나를 사용하여 수집됩니다. 이러한 유형은 측정이 수행되는 Kubernetes 객체에 따라 달라집니다.
예를 들어 포드에 대한 측정에는 모니터링 리소스 유형 k8s_pod
가 사용됩니다. 따라서 이러한 측정항목에는 특정 포드를 식별하는 pod_name
및 namespace_name
에 대한 라벨이 포함됩니다.
각 모니터링 리소스 유형에 대해 서로 다른 측정항목 유형이 사용됩니다. 이러한 측정항목 유형에 대해 자세히 알아보려면 GKE 시스템 측정항목을 참조하세요.
기본적으로 Azure용 Anthos 클러스터는 다음 측정항목을 수집합니다.
k8s_container
kubernetes.io/container/cpu/limit_utilization
kubernetes.io/container/cpu/request_utilization
kubernetes.io/container/cpu/core_usage_time
kubernetes.io/container/memory/limit_utilization
kubernetes.io/container/memory/used_bytes
kubernetes.io/container/restart_count
kubernetes.io/container/ephemeral_storage/limit_bytes
kubernetes.io/container/ephemeral_storage/request_bytes
kubernetes.io/container/ephemeral_storage/used_bytes
kubernetes.io/container/cpu/limit_cores
kubernetes.io/container/memory/limit_bytes
kubernetes.io/container/memory/request_bytes
kubernetes.io/container/memory/request_utilization
kubernetes.io/container/memory/page_fault_count
kubernetes.io/container/cpu/request_cores
kubernetes.io/container/uptime
k8s_node
kubernetes.io/node/cpu/allocatable_utilization
kubernetes.io/node/cpu/core_usage_time
kubernetes.io/node/memory/allocatable_utilization
kubernetes.io/node/memory/used_bytes
kubernetes.io/node/cpu/total_cores
kubernetes.io/node/cpu/allocatable_cores
kubernetes.io/node/ephemeral_storage/allocatable_bytes
kubernetes.io/node/memory/allocatable_bytes
kubernetes.io/node_daemon/cpu/core_usage_time
kubernetes.io/node/ephemeral_storage/used_bytes
kubernetes.io/node/ephemeral_storage/inodes_free
kubernetes.io/node_daemon/memory/used_bytes
kubernetes.io/node/pid_limit
kubernetes.io/node/pid_used
kubernetes.io/node/ephemeral_storage/total_bytes
kubernetes.io/node/ephemeral_storage/inodes_total
kubernetes.io/node/memory/total_bytes
k8s_pod
kubernetes.io/pod/network/received_bytes_count
kubernetes.io/pod/network/sent_bytes_count
kubernetes.io/pod/volume/total_bytes
kubernetes.io/pod/volume/used_bytes
kubernetes.io/pod/volume/utilization