기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSSupport-AnalyzeEMRLogs
설명
이 실행서는 Amazon EMR 클러스터에서 작업을 실행하는 동안 오류를 식별하는 데 도움이 됩니다. 실행서는 파일 시스템에 정의된 로그 목록을 분석하고 미리 정의된 키워드 목록을 찾습니다. 이러한 로그 항목은 이벤트를 기반으로 필요한 작업을 수행할 수 있도록 Amazon CloudWatch Events 이벤트를 생성하는 데 사용됩니다. 선택적으로 실행서는 선택한 Amazon CloudWatch Logs 로그 그룹에 로그 항목을 게시합니다. 이 실행서는 현재 로그 파일에서 다음과 같은 오류 및 패턴을 찾습니다.
-
container_out_of_memory – YARN 컨테이너에 메모리가 부족하여 작업을 실행하지 못할 수 있습니다.
-
yarn_nodemanager_health: CORE 또는 TASK 노드의 디스크 공간이 부족하여 작업을 실행할 수 없습니다.
-
node_state_change: CORE 또는 TASK 노드가 MASTER 노드에 연결할 수 없습니다.
-
step_failure: 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_blacklisted: 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이 사용자를 대신하여 작업을 수행할 수 있도록 허용하는 (ARN) 역할의 AWS Identity and Access Management Amazon 리소스 이름(IAM)입니다. 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
-
ClusterID
유형: 문자열
설명: (필수) 분석하려는 노드 로그가 있는 클러스터의 ID입니다.
-
Operation
유형: 문자열
유효한 값: Run Once | Schedule | Remove Schedule
설명: (필수) 클러스터에서 수행할 작업입니다.
-
IntervalTime
유형: 문자열
유효한 값: 5 minutes | 10 minutes | 15 minutes
설명: (선택 사항) 자동화 실행 사이의 시간입니다. 이 파라미터는
Operation
파라미터에 대해Schedule
값을 지정하는 경우에만 적용할 수 있습니다. -
LogToCloudWatchLogs
유형: 문자열
유효한 값: yes | no
설명: (선택 사항) 이 파라미터의 값에
yes
를 지정하면 자동화는CloudWatchLogGroup
파라미터에 지정된 이름으로 CloudWatch 로그 로그 로그 그룹을 생성하여 일치하는 로그 항목을 저장합니다. -
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.InstanceIDs
CreatingScheduleCloudFormationStack.StackStatus
RemovingScheduleByDeletingScheduleCloudFormationStack.StackStatus
CheckIfLogGroupExists.출력
FindLogPatternOnEMRNode.CommandId