AWS EMR¶
스크립트 마켓플레이스의 「Guance 클라우드 동기화」 시리즈 스크립트 패키지를 사용해 클라우드 모니터링 및 클라우드 자산 데이터를 Guance로 동기화
구성¶
Func 설치¶
Guance 통합 - 확장 - 호스팅 버전 Func 개통을 권장합니다. 모든 사전 조건이 자동으로 설치되므로, 스크립트 설치를 계속 진행하세요
직접 배포하는 Func는 직접 Func 배포를 참고하세요
스크립트 설치¶
안내: 요구 사항을 충족하는 Amazon AK를 미리 준비하세요. (간단히 하려면 전역 읽기 전용 권한
ReadOnlyAccess를 바로 부여해도 됩니다)
호스팅 버전 개통 스크립트¶
- Guance 콘솔에 로그인
- 【통합】 메뉴를 클릭하고 【클라우드 계정 관리】를 선택
- 【클라우드 계정 추가】를 클릭하고 【AWS】를 선택한 뒤 화면에 필요한 정보를 입력합니다. 이전에 클라우드 계정 정보를 이미 구성했다면 이 단계를 건너뜁니다
- 【테스트】를 클릭하고, 테스트가 성공하면 【저장】을 클릭합니다. 테스트에 실패하면 관련 설정 정보가 올바른지 확인한 뒤 다시 테스트하세요
- 【클라우드 계정 관리】 목록에서 추가된 클라우드 계정을 확인할 수 있습니다. 해당 클라우드 계정을 클릭해 상세 페이지로 들어갑니다
- 클라우드 계정 상세 페이지의 【통합】 버튼을 클릭한 뒤
설치 안 됨목록에서AWS EMR을 찾아 【설치】 버튼을 클릭하면, 설치 화면에서 설치할 수 있습니다
수동 개통 스크립트¶
-
Func 콘솔에 로그인한 뒤 【스크립트 마켓】을 클릭하여 Guance 스크립트 마켓플레이스로 들어가
integration_aws_emr를 검색합니다 -
【설치】를 클릭한 뒤 AWS AK ID, AK Secret 및 계정명을 입력합니다
-
【배포 및 시작 스크립트】를 클릭하면 시스템이 자동으로
Startup스크립트 세트를 생성하고, 해당 시작 스크립트를 자동으로 구성합니다 -
활성화한 뒤 「관리 / 자동 트리거 설정」에서 해당 자동 트리거 설정을 확인할 수 있습니다. 【실행】을 클릭하면 정기 실행을 기다리지 않고 즉시 한 번 실행할 수 있습니다. 잠시 후 실행 작업 기록과 해당 로그를 확인할 수 있습니다
검증¶
- 「관리 / 자동 트리거 설정」에서 해당 작업에 대한 자동 트리거 설정이 존재하는지 확인하고, 동시에 해당 작업 기록 및 로그를 확인해 이상이 있는지 검사합니다
- Guance의 「인프라 / 사용자 정의」에서 자산 정보가 존재하는지 확인합니다
- Guance의 「지표」에서 해당 모니터링 데이터가 있는지 확인합니다
지표¶
아마존 클라우드 모니터링을 구성하면 기본 지표 집합은 다음과 같습니다. 구성 방식으로 더 많은 지표를 수집할 수 있습니다 아마존 클라우드 모니터링 지표 상세
| 지표 | 설명 |
|---|---|
IsIdle |
클러스터가 더 이상 작업을 실행하지 않지만 여전히 활성 상태이며 비용이 발생하고 있음을 나타냅니다. 작업이 없고 작업이 실행 중인 상태가 없으면 이 지표는 1로 설정되고, 그렇지 않으면 0으로 설정됩니다. 시스템은 5분마다 한 번씩 이 값을 확인하며, 값이 1이라는 것은 확인 시점에 클러스터가 유휴 상태였음을 의미할 뿐, 5분 전체 동안 유휴 상태였다는 의미는 아닙니다. 오탐을 피하려면 연속으로 여러 번 5분 간격 확인에서 모두 1이 나올 때 경고를 발생해야 합니다. 예를 들어, 이 값이 30분 이상 1이면 경고를 발생해야 합니다. 사용 사례: 클러스터 성능 모니터링 단위: 부울 |
ContainerAllocated |
할당된 ResourceManager 컨테이너 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
ContainerReserved |
예약된 컨테이너 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
ContainerPending |
대기열에서 아직 할당되지 않은 컨테이너 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
AppsCompleted |
YARN에 제출되었고 완료된 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
AppsFailed |
YARN에 제출되었지만 완료되지 못한 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링, 클러스터 상태 모니터링 단위: 개수 |
AppsKilled |
YARN에 제출되었고 종료된 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링, 클러스터 상태 모니터링 단위: 개수 |
AppsPending |
YARN에 제출되었고 보류 상태인 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
AppsRunning |
YARN에 제출되었고 실행 중인 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
AppsSubmitted |
YARN에 제출된 애플리케이션 수입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
CoreNodesRunning |
실행 중인 코어 노드 수입니다. 해당 인스턴스 그룹이 존재할 때만 이 지표의 데이터 포인트가 보고됩니다. 사용 사례: 클러스터 상태 모니터링 단위: 개수 |
LiveDataNodes |
Hadoop에서 작업을 수신하는 데이터 노드의 비율입니다. 사용 사례: 클러스터 상태 모니터링 단위: 퍼센트 |
MRActiveNodes |
현재 MapReduce 작업 또는 작업을 실행 중인 노드 수입니다. YARN 지표 mapred.resourcemanager.NoOfActiveNodes와 동일합니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MRLostNodes |
MapReduce에 할당되었고 LOST 상태로 표시된 노드 수입니다. YARN 지표 mapred.resourcemanager.NoOfLostNodes와 동일합니다. 사용 사례: 클러스터 상태 모니터링, 클러스터 진행 상태 모니터링 단위: 개수 |
MRTotalNodes |
현재 MapReduce 작업에 사용할 수 있는 노드 수입니다. YARN 지표 mapred.resourcemanager.TotalNodes와 동일합니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MRActiveNodes |
현재 MapReduce 작업 또는 작업을 실행 중인 노드 수입니다. YARN 지표 mapred.resourcemanager.NoOfActiveNodes와 동일합니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MRRebootedNodes |
다시 시작되어 “재부팅됨” 상태로 표시된 사용 가능한 노드 수입니다. MapReduce에서는 YARN 지표 mapred.resourcemanager.NoOfRebootedNodes와 동일합니다. 사용 사례: 클러스터 상태 모니터링, 클러스터 진행 상태 모니터링 단위: 개수 |
MRUnhealthyNodes |
“비정상” 상태로 표시된 MapReduce 작업에 사용할 수 있는 노드 수입니다. YARN 지표 mapred.resourcemanager.NoOfUnhealthyNodes와 동일합니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MRDecommissionedNodes |
이미 비활성화 상태로 표시된 MapReduce 애플리케이션에 할당된 노드 수입니다. YARN 지표 mapred.resourcemanager.NoOfDecommissionedNodes와 동일합니다. 사용 사례: 클러스터 상태 모니터링, 클러스터 진행 상태 모니터링 단위: 개수 |
S3BytesWritten |
Amazon S3에 기록된 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다. 사용 사례: 클러스터 성능 분석, 클러스터 진행 상태 모니터링 단위: 개수 |
S3BytesRead |
Amazon S3에서 읽은 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다. 사용 사례: 클러스터 성능 분석, 클러스터 진행 상태 모니터링 단위: 개수 |
HDFSUtilization |
현재 사용 중인 HDFS 저장소의 비율입니다. 사용 사례: 클러스터 성능 분석 단위: 퍼센트 |
TotalLoad |
동시 데이터 전송의 총 수입니다. 사용 사례: 클러스터 상태 모니터링 단위: 개수 |
MemoryTotalMB |
클러스터의 총 메모리 양입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MemoryReservedMB |
예약된 메모리 양입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
HDFSBytesRead |
HDFS에서 읽은 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다. 사용 사례: 클러스터 성능 분석, 클러스터 진행 상태 모니터링 단위: 개수 |
HDFSBytesWritten |
HDFS에 기록된 바이트 수입니다. 이 지표는 MapReduce 작업만 집계하며, Amazon EMR의 다른 워크로드에는 적용되지 않습니다. 사용 사례: 클러스터 성능 분석, 클러스터 진행 상태 모니터링 단위: 개수 |
MissingBlocks |
HDFS에서 복제본이 없는 데이터 블록 수입니다. 이러한 데이터 블록은 손상되었을 수 있습니다. 사용 사례: 클러스터 상태 모니터링 단위: 개수 |
MemoryAvailableMB |
할당 가능한 메모리 양입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
MemoryAllocatedMB |
클러스터에 할당된 메모리 양입니다. 사용 사례: 클러스터 진행 상태 모니터링 단위: 개수 |
PendingDeletionBlocks |
삭제 대상으로 표시된 데이터 블록 수입니다. 사용 사례: 클러스터 진행 상태 모니터링, 클러스터 상태 모니터링 단위: 개수 |
UnderReplicatedBlocks |
한 번 이상 복제해야 하는 데이터 블록 수입니다. 사용 사례: 클러스터 진행 상태 모니터링, 클러스터 상태 모니터링 단위: 개수 |
DfsPendingReplicationBlocks |
|
CapacityRemainingGB |
남은 HDFS 디스크 용량입니다. 사용 사례: 클러스터 진행 상태 모니터링, 클러스터 상태 모니터링 단위: 개수 |
객체¶
수집된 AWS EMR 객체 데이터 구조입니다. 「인프라-사용자 정의」에서 객체 데이터를 볼 수 있습니다
{
"measurement": "aws_emr",
"tags": {
"Id" : "xxxxx",
"ClusterName" : "xxxxx",
"ClusterArn" : "xxxx",
"RegionId" : "cn-north-1",
"OutpostArn" : "xxxx",
},
"fields": {
"Status" : "{인스턴스 상태 JSON 데이터}",
"message" : "{인스턴스 JSON 데이터}"
}
}
주의:
tags와fields의 필드는 이후 업데이트에 따라 변경될 수 있습니다