기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSSupport-AnalyzeEMRLogs
설명
이 런북은 Amazon EMR 클러스터에서 작업을 실행하는 동안 발생하는 오류를 식별하는 데 도움이 됩니다. 실행서는 파일 시스템에 정의된 로그 목록을 분석하고 미리 정의된 키워드 목록을 찾습니다. 이러한 로그 항목은 Amazon CloudWatch Events 이벤트를 생성하는 데 사용되므로 이벤트를 기반으로 필요한 조치를 취할 수 있습니다. 선택적으로, Runbook은 선택한 Amazon CloudWatch Logs 로그 그룹에 로그 항목을 게시합니다. 이 실행서는 현재 로그 파일에서 다음과 같은 오류 및 패턴을 찾습니다.
-
container_out_of_memory — YARN 컨테이너 메모리가 부족하여 실행 중인 작업이 실패할 수 있습니다.
-
yarn_nodemanager_health: CORE 또는 TASK 노드의 디스크 공간이 부족하여 작업을 실행할 수 없습니다.
-
node_state_change: 또는 노드가 노드에 연결할 수 없습니다. CORE TASK MASTER
-
단계 실패: EMR 단계가 실패했습니다.
-
no_core_nodes_running: 현재 실행 중인 노드가 없고 클러스터가 비정상입니다. CORE
-
hdfs_missing_blocks: 누락된 블록으로 인해 데이터가 손실될 수 있습니다. HDFS
-
hdfs_high_util: 사용률이 높아 작업 및 클러스터 상태에 영향을 미칠 수 있습니다. HDFS
-
instance_controller_restart: Instance-Controller 프로세스가 다시 시작되었습니다. 이 프로세스는 클러스터 상태를 유지하는 데 필수적입니다.
-
instance_controller_restart_legacy: Instance-Controller 프로세스가 다시 시작되었습니다. 이 프로세스는 클러스터 상태를 유지하는 데 필수적입니다.
-
high_load: High Load Average가 감지되어 노드 상태 보고에 영향을 미치거나 시간 초과 또는 속도 저하를 초래할 수 있습니다.
-
yarn_node_블랙리스트에 올랐습니다. 또는 실행 중인 작업에서 노드가 블랙리스트에 올랐습니다. CORE TASK YARN
-
yarn_node_lost: 또는 노드가 로 표시되었으므로 연결 문제가 발생할 수 있습니다. CORE TASK LOST YARN
지정하는 인스턴스와 ClusterID
(와)과 연결된 인스턴스는 AWS Systems Manager에 의해 관리되어야 합니다. 이 자동화를 한 번 실행하거나, 특정 시간 간격으로 실행되도록 자동화를 예약하거나, 자동화로 이전에 생성한 일정을 제거할 수 있습니다. 이 런북은 Amazon EMR 릴리스 버전 5.20~6.30을 지원합니다.
문서 유형
자동화
소유자
Amazon
플랫폼
Linux, macOS, Windows
Parameters
-
AutomationAssumeRole
유형: 문자열
설명: (선택 사항) Systems Manager Automation이 사용자를 대신하여 작업을 수행할 수 있도록 하는 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름 (). ARN 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
-
ClusterID
유형: 문자열
설명: (필수) 분석하려는 노드 로그가 있는 클러스터의 ID입니다.
-
Operation
유형: 문자열
유효한 값: Run Once | Schedule | Remove Schedule
설명: (필수) 클러스터에서 수행할 작업입니다.
-
IntervalTime
유형: 문자열
유효한 값: 5 minutes | 10 minutes | 15 minutes
설명: (선택 사항) 자동화 실행 사이의 시간입니다. 이 파라미터는
Operation
파라미터에 대해Schedule
값을 지정하는 경우에만 적용할 수 있습니다. -
LogToCloudWatchLogs
유형: 문자열
유효한 값: yes | no
설명: (선택 사항) 이 파라미터의 값을
yes
지정하면 자동화가 파라미터에 지정된 이름을 가진 CloudWatch 로그 로그 그룹을 생성하여 일치하는 로그 항목을 저장합니다.CloudWatchLogGroup
-
CloudWatchLogGroup
유형: 문자열
설명: (선택 사항) 일치하는 CloudWatch 로그 항목을 모두 저장하려는 로그 로그 그룹의 이름입니다. 이 파라미터는
LogToCloudWatchLogs
파라미터에 대해yes
값을 지정하는 경우에만 적용할 수 있습니다. -
CreateLogInsightsDashboard
유형: 문자열
유효한 값: yes | no
설명: (선택 사항) 지정한
yes
경우 CloudWatch 대시보드가 아직 없는 경우 대시보드가 생성됩니다. 이 파라미터는LogToCloudWatchLogs
파라미터에 대해yes
값을 지정하는 경우에만 적용할 수 있습니다. -
CreateMetricFilters
유형: 문자열
유효한 값: yes | no
설명: (선택 사항) 로그 CloudWatch 로그 그룹에 대한 지표 필터를 생성할지
yes
여부를 지정합니다. 이 파라미터는LogToCloudWatchLogs
파라미터에 대해yes
값을 지정하는 경우에만 적용할 수 있습니다.
필수 IAM 권한
실행서를 성공적으로 사용하려면 AutomationAssumeRole
파라미터에 다음 작업이 필요합니다.
-
ssm:StartAutomationExecution
-
ssm:GetDocument
-
ssm:ListDocuments
-
ssm:DescribeAutomationExecutions
-
ssm:DescribeAutomationStepExecutions
-
ssm:GetAutomationExecution
-
ssm:DescribeInstanceInformation
-
ssm:ListCommandInvocations
-
ssm:ListCommands
-
ssm:SendCommand
-
iam:CreateRole
-
iam:DeleteRole
-
iam:GetRolePolicy
-
iam:PutRolePolicy
-
iam:DeleteRolePolicy
-
iam:passrole
-
cloudformation:DescribeStacks
-
cloudformation:DeleteStack
-
cloudformation:CreateStack
-
events:DeleteRule
-
events:RemoveTargets
-
events:PutTargets
-
events:PutRule
-
events:DescribeRule
-
logs:DescribeLogGroups
-
logs:CreateLogGroup
-
logs:PutMetricFilter
-
cloudwatch:PutDashboard
-
elasticmapreduce:ListInstances
-
elasticmapreduce:DescribeCluster
문서 단계
-
aws:executeAwsApi
-ClusterID
파라미터에 지정된 Amazon EMR 클러스터에 대한 정보를 수집합니다. -
aws:branch
- 입력을 기반으로 분기합니다.-
제공된 작업이
Run Once
또는Schedule
인 경우:-
aws:assertAwsResourceProperty
- 클러스터를 사용할 수 있는지 확인합니다. -
aws:executeAwsApi
- 클러스터에서 실행 중인 모든 인스턴스를 수집합니다. IDs -
aws:assertAwsResourceProperty
- 클러스터의 모든 인스턴스에서 SSM 에이전트가 실행되고 있는지 확인합니다. -
aws:branch
- 자동화를 한 번 실행하도록 지정했는지, 또는 일정에 따라 실행하도록 지정했는지에 따라 분기합니다.-
제공된 작업이
Run Once
인 경우:-
aws:branch
-LogToCloudWatchLogs
파라미터에서 지정된 값을 기반으로 분기합니다.-
LogToCloudWatchLogs
값이yes
인 경우:-
aws:executeScript
- 매개 변수에 지정된 이름을 가진 CloudWatch 로그 로그 그룹이CloudWatchLogGroup
이미 존재하는지 확인합니다. 그렇지 않은 경우, 지정된 이름으로 그룹이 생성됩니다. -
aws:branch
-CreateMetricFilters
파라미터에서 지정된 값을 기반으로 분기합니다.-
CreateMetricFilters
값이yes
인 경우:-
aws:executeAwsApi
- 각 지표 필터에 대해 12단계가 실행됩니다. -
aws:branch
-CreateLogInsightsDashboard
파라미터에서 지정된 값을 기반으로 분기합니다.-
CreateLogInsightsDashboard
값이yes
인 경우:-
aws:executeAwsApi
-CloudWatchLogGroup
매개 변수에 지정된 것과 같은 이름의 CloudWatch 대시보드를 생성합니다 (아직 없는 경우).
-
-
CreateLogInsightsDashboard
값이no
인 경우:-
aws:runCommand
- 쉘 스크립트를 실행하여 클러스터의 각 인스턴스에서 로그 패턴을 찾습니다.
-
-
-
-
CreateMetricFilters
값이no
인 경우:-
aws:branch
-CreateLogInsightsDashboard
파라미터에서 지정된 값을 기반으로 분기합니다.-
CreateLogInsightsDashboard
값이yes
인 경우:-
aws:executeAwsApi
-CloudWatchLogGroup
매개변수에 지정된 것과 같은 이름의 CloudWatch 대시보드를 생성합니다 (아직 없는 경우).
-
-
CreateLogInsightsDashboard
값이no
인 경우:-
aws:runCommand
- 쉘 스크립트를 실행하여 클러스터의 각 인스턴스에서 로그 패턴을 찾습니다.
-
-
-
-
-
-
LogToCloudWatchLogs
값이no
인 경우:-
aws:executeAwsApi
- 쉘 스크립트를 실행하여 클러스터의 각 인스턴스에서 로그 패턴을 찾습니다.
-
-
-
-
제공된 작업이
Schedule
인 경우:-
aws:createStack
- 이 런북을 대상으로 하는 Amazon EventBridge 이벤트를 생성합니다.
-
-
-
-
제공된 작업이
Remove Schedule
인 경우:-
aws:executeAwsApi
- 클러스터에 일정이 있는지 확인합니다. -
aws:deleteStack
- 일정을 삭제합니다.
-
-
출력
GetClusterInformation.ClusterName
GetClusterInformation.ClusterState
ListingClusterInstances.I. nstanceIDs
CreatingScheduleCloudFormationStack.StackStatus
RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus
CheckIfLogGroupExists. 출력
FindLogPatternOnEMRNode.CommandId