Container Insights 지표 보기 - Amazon CloudWatch

Container Insights 지표 보기

Container Insights를 설정하고 지표를 수집한 후에는 CloudWatch 콘솔에서 해당 지표를 볼 수 있습니다.

대시보드에 Container Insights 지표를 표시하려면 Container Insights 설정을 완료해야 합니다. 자세한 내용은 Container Insights 설정 단원을 참조하십시오.

이 절차에서는 Container Insights가 수집된 로그 데이터에서 자동으로 생성하는 지표를 보는 방법을 설명합니다. 이 단원의 나머지 부분에서는 데이터를 심층적으로 분석하고 CloudWatch Logs Insights를 사용하여 더 세분화된 수준에서 더 많은 지표를 확인하는 방법을 설명합니다.

Container Insights 지표를 보려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 인사이트를 선택한 다음 Container Insights를 선택합니다.

  3. Container Insights 아래의 드롭다운 상자에서 성능 모니터링을 선택합니다.

  4. 맨 위 근처의 드롭다운 상자를 사용하여 보려는 리소스 유형과 특정 리소스를 선택합니다.

Container Insights가 수집하는 지표에 대해 CloudWatch 경보를 설정할 수 있습니다. 자세한 내용은 Amazon CloudWatch 경보 사용 섹션을 참조하세요.

참고

컨테이너화된 애플리케이션을 모니터링하도록 CloudWatch Application Insights를 이미 설정한 경우 Application Insights 대시보드가 Container Insights 대시보드 아래에 표시됩니다. 아직 Application Insights를 활성화하지 않은 경우 Container Insights 대시보드의 성능 보기 아래에 있는 Application Insights 자동 구성(Auto-configure Application Insights)을 선택해 활성화할 수 있습니다.

Application Insights 및 컨테이너화 애플리케이션에 대한 자세한 내용은 Amazon ECS 및 Amazon EKS 리소스 모니터링을 위한 Application Insights 활성화 섹션을 참조하세요.

상위 기여자 보기

Container Insights 성능 모니터링의 일부 보기에서는 메모리나 CPU 또는 가장 최근의 활성 리소스를 기준으로 상위 기여자를 확인할 수도 있습니다. 페이지 상단 근처의 드롭다운 상자에서 다음 대시보드 중 하나를 선택할 경우 사용할 수 있습니다.

  • ECS 서비스

  • ECS 태스크

  • EKS 네임스페이스

  • EKS 서비스

  • EKS 포드

이러한 유형의 리소스 중 하나를 살펴볼 때 페이지 하단에 처음에 CPU 사용량별로 정렬된 테이블이 표시됩니다. 메모리 사용량 또는 최근 활동별로 정렬되도록 변경할 수 있습니다. 테이블의 행 중 하나에 대해 자세히 보려면 해당 행 옆의 확인란을 선택한 다음, [작업(Actions)]을 선택하고 [작업(Actions) 메뉴의 옵션 중 하나를 선택합니다.

CloudWatch Logs Insights를 사용하여 Container Insights 데이터 보기

Container Insights는 임베디드 지표 형식을 사용한 성능 로그 이벤트를 사용하여 지표를 수집합니다. 로그는 CloudWatch Logs에 저장됩니다. CloudWatch는 CloudWatch 콘솔에서 볼 수 있는 로그에서 여러 지표를 자동으로 생성합니다. CloudWatch Logs Insights 쿼리를 사용하면 수집된 성능 데이터를 더 심층적으로 분석할 수도 있습니다.

CloudWatch Logs Insights에 대한 자세한 내용은 CloudWatch Logs Insights를 사용한 로그 데이터 분석 단원을 참조하세요. 쿼리에서 사용할 수 있는 로그 필드에 대한 자세한 내용은 Amazon EKS 및 Kubernetes의 Container Insights 성능 로그 이벤트 단원을 참조하세요.

CloudWatch Logs Insights를 사용하여 컨테이너 지표 데이터를 쿼리하려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 Insights를 선택합니다.

    화면 상단 근처에 쿼리 편집기가 있습니다. CloudWatch Logs Insights를 처음 열면 이 상자에는 최신 로그 이벤트 20개를 반환하는 기본 쿼리가 포함되어 있습니다.

  3. 쿼리 편집기 위의 상자에서 쿼리할 Container Insights 로그 그룹을 선택합니다. 작업할 다음 예제 쿼리에서는 로그 그룹 이름이 performance로 끝나야 합니다.

    로그 그룹을 선택하면 CloudWatch Logs Insights가 로그 그룹의 데이터에서 필드를 자동으로 감지하고 오른쪽 창의 [검색된 필드(Discovered fields)]에 해당 필드를 표시합니다. 또한 이 로그 그룹의 로그 이벤트를 시간의 흐름에 따라 보여주는 막대 그래프도 표시합니다. 이 막대 그래프에서는 테이블에 표시된 이벤트뿐만 아니라 쿼리 및 시간 범위와 일치하는 로그 그룹 내 이벤트의 분포를 보여줍니다.

  4. 쿼리 편집기에서 기본 쿼리를 다음 쿼리로 바꾸고 쿼리 실행을 선택합니다.

    STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC

    이 쿼리는 노드 목록을 평균적인 노드 CPU 이용률에 따라 정렬하여 보여줍니다.

  5. 또 다른 예를 시도하려면 쿼리를 다음 쿼리로 바꾸고 쿼리 실행을 선택합니다. 추가 샘플 쿼리는 이 페이지 후반부에 나열되어 있습니다.

    STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName | SORT avg_number_of_container_restarts DESC

    이 쿼리는 Pod 목록을 평균적인 컨테이너 재시작 횟수에 따라 정렬하여 보여줍니다.

  6. 또 다른 쿼리를 시도하고 싶은 경우에는 화면 오른쪽의 목록에 필드를 포함시킬 수 있습니다. 쿼리 구문에 대한 자세한 내용은 CloudWatch Logs Insights 쿼리 구문 단원을 참조하세요.

리소스 목록을 보려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 리소스를 선택합니다.

  3. 기본 보기는 Container Insights에서 모니터링하는 리소스 목록과 이러한 리소스에 대해 설정한 경보입니다. 리소스의 시각적 맵을 보려면 맵 보기를 선택합니다.

  4. 맵 보기에서 맵의 리소스 위에 포인터를 일시 중지하여 해당 리소스에 대한 기본 지표를 볼 수 있습니다. 리소스를 선택하여 리소스에 대한 자세한 그래프를 볼 수 있습니다.

사용 사례: Amazon ECS 컨테이너의 태스크 수준 지표 보기

다음 예에서는 CloudWatch Logs Insights를 사용하여 Container Insights 로그를 더 심층적으로 분석하는 방법을 보여 줍니다. 더 많은 예는 Amazon ECS의 Amazon CloudWatch Container Insights 소개 블로그를 참조하세요.

Container Insights는 세분화된 태스크 수준에서 지표를 자동으로 생성하지 않습니다. 다음 쿼리는 CPU 및 메모리 사용량에 대한 태스크 수준 지표를 표시합니다.

stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId, ContainerName | sort Mem, CPU desc

Container Insights에 대한 기타 샘플 쿼리

평균적인 컨테이너 재시작 횟수에 따라 정렬된 Pod 목록

STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName | SORT avg_number_of_container_restarts DESC

요청된 Pod와 실행 중인 Pod 간 비교

fields @timestamp, @message | sort @timestamp desc | filter Type="Pod" | stats min(pod_number_of_containers) as requested, min(pod_number_of_running_containers) as running, ceil(avg(pod_number_of_containers-pod_number_of_running_containers)) as pods_missing by kubernetes.pod_name | sort pods_missing desc

클러스터 노드 실패 횟수

stats avg(cluster_failed_node_count) as CountOfNodeFailures | filter Type="Cluster" | sort @timestamp desc

컨테이너 이름별 애플리케이션 로그 오류

stats count() as countoferrors by kubernetes.container_name | filter stream="stderr" | sort countoferrors desc

컨테이너 이름의 디스크 사용량

stats floor(avg(container_filesystem_usage/1024)) as container_filesystem_usage_avg_kb by InstanceId, kubernetes.container_name, device | filter Type="ContainerFS" | sort container_filesystem_usage_avg_kb desc

컨테이너 이름의 CPU 사용량

stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"