Logs Insights를 통한 CloudWatch 로그 분석 - Managed Service for Apache Flink

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

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

Logs Insights를 통한 CloudWatch 로그 분석

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

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

로그 인사이트를 시작하는 방법에 대한 자세한 내용은 CloudWatch 로그 인사이트를 통한 CloudWatch 로그 데이터 분석을 참조하십시오.

샘플 쿼리 실행

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

사전 조건 

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

  • 로그에 저장된 기존 CloudWatch 로그.

Amazon Route 53 또는 Amazon VPC와 AWS CloudTrail같은 서비스를 사용하는 경우 해당 서비스에서 로그로 이동하도록 CloudWatch 이미 로그를 설정했을 것입니다. 로그로 CloudWatch 로그를 보내는 방법에 대한 자세한 내용은 로그 시작하기를 참조하십시오. CloudWatch

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

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

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

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

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

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

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

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

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

쿼리 예제

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

참고

다음 쿼리 예제에서 지역 (us-west-2), 계정 ID (012345678901) 및 애플리케이션 이름 YourApplication() 을 애플리케이션의 지역 및 계정 ID로 바꾸십시오.

작업 분석: 작업 분배

다음 CloudWatch 로그 인사이트 쿼리는 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 쿼리는 애플리케이션의 병렬 처리 (예: 자동 크기 조정) 에 대한 변경 사항을 반환합니다. 또한 이 쿼리는 애플리케이션 병렬 처리에 대한 수동 변경 내용을 반환합니다. 자동 스케일링에 대한 자세한 내용은 자동 크기 조정 섹션을 참조하세요.

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

오류 분석: 액세스가 거부되었습니다.

다음 CloudWatch 로그 인사이트 쿼리는 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 로그 인사이트 쿼리는 ResourceNotFound 로그를 반환합니다. ResourceNotFoundKinesis 소스 또는 싱크를 찾을 수 없는 경우 결과를 기록합니다.

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