

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# `AWSSupport-AnalyzeEMRLogs`
<a name="automation-awssupport-analyzeemrlogs"></a>

 **설명** 

이 실행서는 Amazon EMR 클러스터에서 작업을 실행하는 동안 발생하는 오류를 식별하는 데 도움이 됩니다. 실행서는 파일 시스템에 정의된 로그 목록을 분석하고 미리 정의된 키워드 목록을 찾습니다. 이러한 로그 항목은 Amazon CloudWatch Events 이벤트를 생성하는 데 사용되므로 이벤트를 기반으로 필요한 조치를 취할 수 있습니다. 선택적으로, 실행서는 사용자가 선택한 Amazon CloudWatch Logs 로그 그룹에 로그 항목을 게시합니다. 이 실행서는 현재 로그 파일에서 다음과 같은 오류 및 패턴을 찾습니다.
+  container\$1out\$1of\$1memory – YARN 컨테이너의 메모리가 부족하여 실행 중인 작업이 실패할 수 있습니다.
+  yarn\$1nodemanager\$1health: CORE 또는 TASK 노드의 디스크 공간이 부족하여 작업을 실행할 수 없습니다.
+  node\$1state\$1change: MASTER 노드에서 CORE 또는 TASK 노드에 연결할 수 없습니다.
+  step\$1failure: EMR 단계가 실패했습니다.
+  no\$1core\$1nodes\$1running: 현재 실행 중인 CORE 노드가 없고 클러스터가 비정상입니다.
+  hdfs\$1missing\$1blocks: HDFS 블록이 누락되어 데이터가 손실될 수 있습니다.
+  hdfs\$1high\$1util: HDFS 사용률이 높아 작업 및 클러스터 상태에 영향을 미칠 수 있습니다.
+  instance\$1controller\$1restart: Instance-Controller 프로세스가 다시 시작되었습니다. 이 프로세스는 클러스터 상태를 유지하는 데 필수적입니다.
+  instance\$1controller\$1restart\$1legacy: Instance-Controller 프로세스가 다시 시작되었습니다. 이 프로세스는 클러스터 상태를 유지하는 데 필수적입니다.
+  high\$1load: High Load Average가 감지되어 노드 상태 보고에 영향을 미치거나 시간 초과 또는 속도 저하를 초래할 수 있습니다.
+  yarn\$1node\$1blacklisted: YARN이 실행 중인 작업에서 CORE 또는 TASK 노드를 블랙리스트에 올렸습니다.
+  yarn\$1node\$1lost: CORE 또는 TASK 노드가 YARN에 의해 손실된 것으로 표시되었습니다.연결 문제가 있을 수 있습니다.

 지정하는 인스턴스와 `ClusterID`(와)과 연결된 인스턴스는 AWS Systems Manager에 의해 관리되어야 합니다. 이 자동화를 한 번 실행하거나, 특정 시간 간격으로 실행되도록 자동화를 예약하거나, 자동화로 이전에 생성한 일정을 제거할 수 있습니다. 이 실행서는 Amazon EMR 릴리스 버전 5.20\$16.30을 지원합니다.

 [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-AnalyzeEMRLogs) 

**문서 유형**

자동화

**소유자**

Amazon

**플랫폼**

Linux, macOS, Windows 

**파라미터**
+ AutomationAssumeRole

  유형: 문자열

  설명: (선택 사항) 사용자를 대신하여 Systems Manager Automation을 통해 작업을 수행할 수 있도록 허용하는 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름(ARN)입니다. 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
+ ClusterID

  유형: 문자열

  설명: (필수) 분석하려는 노드 로그가 있는 클러스터의 ID입니다.
+ 연산

  유형: 문자열

  유효한 값: Run Once \$1 Schedule \$1 Remove Schedule 

  설명: (필수) 클러스터에서 수행할 작업입니다.
+ IntervalTime

  유형: 문자열

  유효한 값: 5 minutes \$1 10 minutes \$1 15 minutes

   설명: (선택 사항) 자동화 실행 사이의 시간입니다. 이 파라미터는 `Operation` 파라미터에 대해 `Schedule` 값을 지정하는 경우에만 적용할 수 있습니다.
+ LogToCloudWatchLogs

  유형: 문자열

  유효한 값: yes \$1 no

   설명: (선택 사항) 이 파라미터에 대해 `yes` 값을 지정하면 자동화가 `CloudWatchLogGroup` 파라미터에서 지정된 이름을 가진 CloudWatch Logs 로그 그룹을 생성하여 일치하는 로그 항목을 저장합니다.
+ CloudWatchLogGroup

  유형: 문자열

   설명: (선택 사항) 일치하는 로그 항목을 모두 저장하려는 CloudWatch Logs 로그 그룹의 이름입니다. 이 파라미터는 `LogToCloudWatchLogs` 파라미터에 대해 `yes` 값을 지정하는 경우에만 적용할 수 있습니다.
+ CreateLogInsightsDashboard

  유형: 문자열

  유효한 값: yes \$1 no

   설명: (선택 사항) `yes`(을)를 지정하면, 해당 내용이 아직 없는 경우 CloudWatch 대시보드가 생성됩니다. 이 파라미터는 `LogToCloudWatchLogs` 파라미터에 대해 `yes` 값을 지정하는 경우에만 적용할 수 있습니다.
+ CreateMetricFilters

  유형: 문자열

  유효한 값: yes \$1 no

   설명: (선택 사항) CloudWatch Logs 로그 그룹에 대한 지표 필터를 생성하려는 경우 `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` - 클러스터에서 실행 중인 모든 인스턴스의 ID를 수집합니다.
    +  `aws:assertAwsResourceProperty` - 클러스터의 모든 인스턴스에서 SSM 에이전트가 실행되고 있는지 확인합니다.
    +  `aws:branch` - 자동화를 한 번 실행하도록 지정했는지, 또는 일정에 따라 실행하도록 지정했는지에 따라 분기합니다.
      +  제공된 작업이 `Run Once`인 경우: 
        +  `aws:branch` - `LogToCloudWatchLogs` 파라미터에서 지정된 값을 기반으로 분기합니다.
          +  `LogToCloudWatchLogs` 값이 `yes`인 경우: 
            +  `aws:executeScript` - `CloudWatchLogGroup` 파라미터에서 지정된 이름을 가진 CloudWatch Logs 로그 그룹이 이미 존재하는지 확인합니다. 그렇지 않은 경우, 지정된 이름으로 그룹이 생성됩니다.
            +  `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.output

FindLogPatternOnEMRNode.CommandId