CloudWatch Logs Insights를 사용하여 로그 분석 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

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

CloudWatch Logs Insights를 사용하여 로그 분석

이전 섹션에서 설명한 대로 애플리케이션에 CloudWatch 로깅 옵션을 추가한 후에는 CloudWatch Logs Insights를 사용하여 로그 스트림에서 특정 이벤트 또는 오류를 쿼리할 수 있습니다.

CloudWatch Logs Insights를 사용하면 CloudWatch Logs 내 로그 데이터를 대화식으로 검색해 분석할 수 있습니다.

CloudWatch Logs Insights 사용법에 관한 자세한 내용은 CloudWatch Logs Insights를 사용한 로그 데이터 분석을 참조하세요.

샘플 쿼리 실행

이 섹션에서는 샘플 CloudWatch Logs Insights 쿼리를 실행하는 방법을 설명합니다.

사전 조건 

  • CloudWatch Logs 내에 설정된 기존 로그 그룹 및 로그 스트림.

  • CloudWatch Logs에 저장된 기존 로그입니다.

AWS CloudTrail Amazon Route 53 또는 Amazon VPC와 같은 서비스를 사용하는 경우 CloudWatch Logs로 이동하도록 해당 서비스의 로그를 이미 설정했을 수 있습니다. CloudWatch Logs로 로그를 전송하는 방법에 관한 자세한 내용은 Amazon CloudWatch Logs 시작하기를 참조하세요.

CloudWatch Logs Insights의 쿼리가 로그 이벤트에서 일련의 필드를 반환하거나 로그 이벤트에 대해 수행된 수학적 집계 또는 다른 작업의 결과를 반환합니다. 이 섹션에서는 로그 이벤트 목록을 반환하는 쿼리를 보여줍니다.

CloudWatch Logs Insights 샘플 쿼리를 실행하려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

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

  3. 화면 상단의 쿼리 편집기에는 가장 최근의 로그 이벤트 20개를 반환하는 기본 쿼리가 포함되어 있습니다. 쿼리 편집기 위에서 쿼리할 로그 그룹을 선택합니다.

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

  4. 쿼리 실행을 선택합니다.

    쿼리의 결과가 표시됩니다. 이 예제에서 결과는 모든 유형의 최신 로그 이벤트 20개입니다.

  5. 반환된 로그 이벤트 중 하나에 대한 모든 필드를 보려면 해당 로그 이벤트 왼쪽에 있는 화살표를 선택합니다.

CloudWatch Logs Insights 쿼리를 실행하고 수정하는 방법에 대한 자세한 내용은 샘플 쿼리 실행 및 수정을 참조하세요.

예제 쿼리 검토

이 섹션에는 Managed Service for Apache Flink 애플리케이션 로그를 분석하기 위한 CloudWatch Logs Insights 예제 쿼리가 포함되어 있습니다. 이러한 쿼리는 몇 가지 예제 오류 조건을 검색하고 다른 오류 조건을 찾는 쿼리를 작성하기 위한 템플릿 역할을 합니다.

참고

다음 쿼리 예제의 리전(us-west-2), 계정 ID(012345678901) 및 애플리케이션 이름(YourApplication)을 애플리케이션의 리전 및 계정 ID로 바꾸세요.

작업 분석: 작업 배포

다음 CloudWatch Logs Insights 쿼리는 Apache Flink Job Manager가 작업 관리자 간에 배포하는 작업 수를 반환합니다. 쿼리가 이전 작업의 작업을 반환하지 않도록 쿼리 시간을 한 작업 실행과 일치하도록 설정해야 합니다. 병렬에 관한 자세한 내용은 애플리케이션 조정 구현 섹션을 참조하세요.

fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000

다음 CloudWatch Logs Insights 쿼리는 각 작업 관리자에 할당된 하위 작업을 반환합니다. 총 하위 작업 수는 모든 작업의 병렬 처리 수를 합한 값입니다. 작업 병렬은 연산자 병렬에서 파생되며 코드에서 setParallelism을 지정하여 변경하지 않는 한 기본적으로 애플리케이션의 병렬과 동일합니다. 연산자 병렬 처리 설정에 대한 자세한 내용은 Apache Flink 설명서병렬 처리 설정: 연산자 수준을 참조하세요.

fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000

작업 예약에 대한 자세한 내용은 Apache Flink 설명서작업 및 예약을 참조하세요.

작업 분석: 병렬 처리의 변화

다음 CloudWatch Logs Insights 쿼리는 애플리케이션의 병렬 처리(예: 자동 스케일링)에 대한 변경 사항을 반환합니다. 또한 이 쿼리는 애플리케이션 병렬 처리에 대한 수동 변경 내용을 반환합니다. 자동 스케일링에 대한 자세한 내용은 Managed Service for Apache Flink에서 자동 조정 사용 섹션을 참조하세요.

fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc

오류 분석: 액세스 거부됨

다음 CloudWatch Logs Insights 쿼리는 Access Denied 로그를 반환합니다.

fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /AccessDenied/ | sort @timestamp desc

오류 분석: 소스 또는 싱크를 찾을 수 없음

다음 CloudWatch Logs Insights 쿼리는 ResourceNotFound 로그를 반환합니다. Kinesis 소스 또는 싱크를 찾을 수 없는 경우 ResourceNotFound 로그 결과를 기록합니다.

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc

오류 분석: 애플리케이션 작업 관련 실패

다음 CloudWatch Logs Insights 쿼리는 애플리케이션의 작업 관련 실패 로그를 반환합니다. 이러한 로그는 애플리케이션 상태가 RUNNING에서 RESTARTING로 전환될 때 발생합니다.

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to RESTARTING/ | sort @timestamp desc

Apache Flink 버전 1.8.2 이하를 사용하는 애플리케이션의 경우 작업 관련 오류가 발생하면 애플리케이션 상태가 RUNNING에서 FAILED로 전환되는 결과를 낳습니다. Apache Flink 1.8.2 이전 버전을 사용하는 경우 다음 쿼리를 사용하여 애플리케이션 작업 관련 실패를 검색하세요.

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc