Stackdriver Monitoring

이 페이지에서는 Stackdriver Monitoring을 사용하여 Google Kubernetes Engine(GKE) 클러스터를 모니터링하는 방법을 설명합니다.

개요

Monitoring을 사용하여 GKE 클러스터에서 신호를 모니터링하고 작업을 빌드할 수 있습니다.

Stackdriver는 시스템 측정항목커스텀 측정항목을 모니터링합니다. 시스템 측정항목은 CPU 또는 메모리 사용량과 같이 클러스터 인프라에서 측정됩니다. 커스텀 측정항목은 활성 사용자 세션 수 합계 또는 렌더링된 페이지 수 합계와 같이 개발자가 직접 정의하여 애플리케이션별로 측정됩니다.

시스템 측정항목의 경우, Stackdriver는 각 노드에 주기적으로 연결하고, 해당 포드 및 컨테이너에 대한 측정항목을 수집한 후 Stackdriver로 전송하는 배포를 만듭니다.

시스템 리소스 사용량에 대한 측정항목은 다음 소스로부터 수집됩니다.

  • CPU: container/cpu/usage_time
  • 메모리: cgroup의 memory.usage_in_bytes에서 수집되는 container/memory/bytes_used
  • 삭제 가능 메모리: memory.stattotal_inactive_file 필드에서 수집되는 container/memory/bytes_used
  • 삭제 불가능 메모리: memory.usage_in_bytes - memory.total_inactive_file로 측정
  • 디스크: container/disk/bytes_used

GKE에서 수집되는 다른 시스템 측정항목 목록은 Stackdriver 문서의 측정항목 목록을 참조하세요.

커스텀 측정항목을 설정하는 방법은 커스텀 측정항목 사용 또는 커스텀 측정항목으로 배포 자동 확장 가이드를 참조하세요.

시작하기 전에

이 작업을 준비하려면 다음 단계를 완료하세요.

  • Google Kubernetes Engine API가 사용 설정되었는지 확인합니다.
  • Google Kubernetes Engine API 사용 설정
  • Cloud SDK가 설치되었는지 확인합니다.
  • 기본 프로젝트 ID를 설정합니다.
    gcloud config set project [PROJECT_ID]
  • 영역 클러스터를 사용하는 경우 기본 컴퓨팅 영역을 설정합니다.
    gcloud config set compute/zone [COMPUTE_ZONE]
  • 리전 클러스터를 사용하는 경우 기본 컴퓨팅 리전을 설정합니다.
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud를 최신 버전으로 업데이트합니다.
    gcloud components update
  • Stackdriver 작업공간이 만들어졌는지 확인합니다. 자세한 내용은 작업공간 관리를 참조하세요.

Monitoring 사용 설정

Monitoring이 사용 설정된 클러스터를 만들거나 기존 클러스터에서 Monitoring을 사용 설정할 수 있습니다.

Monitoring과 상호작용하려면 클러스터의 노드 풀(기본 노드 풀 포함)에 필요한 GCP 범위(https://www.googleapis.com/auth/monitoring 범위)가 포함되어야 합니다. Monitoring이 포함된 새 클러스터를 만들 경우, Kubernetes Engine은 이 범위를 자동으로 설정하지만, 기존 클러스터에는 필요한 권한이 포함되지 않을 수 있습니다.

모니터링이 포함된 클러스터 만들기

gcloud

클러스터를 만들 때 --enable-cloud-monitoring 플래그가 자동으로 설정되므로 클러스터에서 Monitoring이 사용 설정됩니다.

이러한 기본 동작을 사용하지 않으려면 --no-enable-cloud-monitoring 플래그를 설정합니다.

콘솔

  1. GCP Console에서 Kubernetes Engine 메뉴로 이동합니다.

    Kubernetes Engine 메뉴로 이동

  2. 클러스터 만들기를 클릭합니다.

  3. 원하는 대로 클러스터를 구성합니다.

  4. 고급 옵션을 클릭합니다. Stackdriver Monitoring 서비스 사용 설정이 선택되었는지 확인합니다.

  5. 만들기를 클릭합니다.

기존 클러스터에 Monitoring 사용 설정

gcloud

기존 클러스터에 Monitoring을 사용 설정하려면 다음 명령어를 실행합니다. 여기서 [CLUSTER_NAME]은 클러스터의 이름입니다.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

처음에 Monitoring 없이 클러스터를 만들고 나중에 Monitoring을 사용 설정하려는 경우, 클러스터의 노드 풀에 필요한 GCP 범위가 없을 수 있습니다. 문제 해결을 위해서는 다음과 같이 동일한 노드 수 및 필요한 범위를 사용해서 새 노드 풀을 만들 수 있습니다.

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

새 노드 풀을 만든 후에는 올바른 범위의 새 노드 풀로 기존 Pod를 이동하여 Monitoring을 사용합니다. 자세한 내용은 '다운타임 없이 VM 범위 업데이트'를 참조하세요.

콘솔

처음에 Monitoring 없이 클러스터를 만들고 나중에 Monitoring을 사용 설정하려는 경우, 클러스터의 노드 풀에 필요한 GCP 범위가 없을 수 있습니다. 문제 해결을 위해서는 이 섹션 이전의 gcloud 섹션을 참조하세요.

  1. GCP Console에서 Kubernetes Engine 메뉴로 이동합니다.

    Kubernetes Engine 메뉴로 이동

  2. 클러스터의 수정 버튼(연필 모양)을 클릭합니다.

  3. Stackdriver Monitoring 드롭다운의 값을 사용으로 설정합니다.

  4. 저장을 클릭합니다.

인프라 측정항목 확장

애플리케이션 측정항목 외에 Stackdriver 커스텀 측정항목도 컨테이너 디스크 I/O와 같이 시스템 측정항목에 포함되지 않은 클러스터의 인프라 측정 값을 사용할 수 있습니다. 자체 인프라 모니터링 에이전트를 배포하여 이러한 측정항목을 수집하고 Stackdriver에 푸시할 수 있습니다.

cAdvisor

측정항목을 수집하기 위한 Kubernetes용 오픈소스 모니터링 에이전트인 cAdvisor를 사용하여 측정항목을 수집하고 prometheus-to-sd를 사용하여 이러한 측정항목을 Stackdriver에 푸시할 수 있습니다.

자체 클러스터에서 cAdvisor를 실행하려면 다음 단계를 따르세요.

  1. cAdvisor를 복제합니다.

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. cAdvisor DaemonSet 안내를 따라 kustomize를 설치합니다. 클라우드 셸을 사용 중인 경우 다음을 실행합니다.

    go get github.com/kubernetes-sigs/kustomize
    
  3. 모든 컨테이너 측정항목을 내보내는 예제 cAdvisor 네임스페이스 및 DaemonSet를 만듭니다.

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    이제 Stackdriver에서 gke_container 리소스 아래에 Prometheus 측정항목이 표시됩니다.

  4. cAdvisor kustomization 안내에 따라 개발자 요구에 맞게 제공된 예제를 변경합니다. 다음을 사용해서 변경사항을 적용합니다.

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

측정항목 보기

Stackdriver Monitoring 콘솔에서 측정항목을 볼 수 있습니다.

클러스터 개요

Monitoring은 GKE에 대한 개요 메뉴를 제공합니다. 이 메뉴는 클러스터에 대한 유용한 정보를 수집하고 이를 대시보드에 표시합니다.

개요 메뉴를 보려면 다음 단계를 따르세요.

  1. Stackdriver Monitoring 콘솔로 이동합니다.

    Monitoring 메뉴로 이동

  2. 리소스 위로 커서를 가져간 후 Kubernetes Engine을 선택합니다.

  3. 클러스터를 선택합니다.

개요 메뉴는 다음과 같은 기본 대시보드를 제공합니다.

  • 이슈: 알림 정책의 위반 사항입니다.
  • 이벤트: 클라우드 계정에서 발생하는 비정상 활동, 이슈, 수명 주기, 태그, IAM 정책, 배포, 참고사항, 클라우드 공급자 업데이트, 사용자 관리 업데이트가 시간순으로 기록된 목록입니다.
  • CPU 사용량: 클러스터별 CPU 사용 비율을 표시합니다.
  • 디스크 I/O: 클러스터별 디스크 I/O 비율(KB/초)을 표시합니다.
  • 네트워크 트래픽: 클러스터별 네트워크 트래픽(KB/초)을 표시합니다.
  • Pod: 모든 네임스페이스의 Pod 및 노드 목록입니다(Compute Engine VM 인스턴스). Pod 또는 노드를 선택하면 해당 리소스의 개요가 열립니다.

측정항목 보기에 대해 자세히 알아보려면 Monitoring 문서 및 Monitoring 필터 페이지를 참조하세요.

대시보드

GKE 노드 및 컨테이너에 대한 커스텀 대시보드를 만들 수 있습니다.

대시보드를 만들려면 다음 단계를 따르세요.

  1. Stackdriver Monitoring 콘솔로 이동합니다.

    Monitoring 메뉴로 이동

  2. 대시보드 위로 커서를 가져간 후 대시보드 만들기를 선택합니다.

  3. 새 대시보드를 만들려면 차트 추가를 클릭합니다.

  4. 제목 필드에 대시보드 이름을 입력합니다.

  5. 리소스 유형 및 측정항목 찾기 필드에서 'instance' 또는 'container'를 찾은 후 원하는 측정항목을 선택합니다.

  6. 측정항목 유형 필드에서 원하는 측정항목을 입력하거나 자동 채우기 메뉴에서 선택합니다.

  7. 선택적으로 필터를 사용하여 앱, 이름, 버전 등의 특정 값으로 필터링합니다.

  8. 원하는 대로 대시보드를 추가로 구성합니다. 대시보드를 만들려면 저장을 클릭합니다.

측정항목 탐색기

측정항목 탐색기를 사용하면 클러스터에 대한 특정 측정항목을 선택하고 여러 집계를 수행할 수 있습니다.

측정항목 탐색기를 사용하려면 다음 단계를 따르세요.

  1. Stackdriver Monitoring 콘솔로 이동합니다.

    Monitoring 메뉴로 이동

  2. 리소스 위로 커서를 가져간 후 측정항목 탐색기를 선택합니다.

  3. 리소스 유형 및 측정항목 찾기 검색 메뉴에서 리소스 유형으로 gke_container를 입력합니다.

  4. 측정항목에서 원하는 측정항목을 선택합니다.

  5. 선택적으로 필터 메뉴를 사용하여 리소스별로 필터링합니다.

  6. 집계 옵션을 사용하여 원하는 집계를 수행합니다.

권장사항

  • 알림: 클러스터에서 의심스러운 동작이 발생하면 이를 알려주는 알림 정책을 설정할 수 있습니다.

Monitoring 사용 중지

gcloud

기존 클러스터에서 Monitoring을 사용 중지하려면 다음 명령어를 실행합니다. 여기서 [CLUSTER_NAME]은 클러스터 이름입니다.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

콘솔

  1. GCP Console에서 Kubernetes Engine 메뉴로 이동합니다.

    Kubernetes Engine 메뉴로 이동

  2. 클러스터의 수정 버튼(연필 모양)을 클릭합니다.

  3. Stackdriver Monitoring 드롭다운의 값을 사용 중지로 설정합니다.

  4. 저장을 클릭합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Monitoring
도움이 필요하시나요? 지원 페이지를 방문하세요.