Cloudwatch 로그에서 InvalidSequenceToken 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 3월 24일

CloudWatch 에이전트를 사용하여 Amazon CloudWatch로 로그를 전송할 때 로그 파일에 InvalidSequenceToken 오류가 표시됩니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

CloudWatch 에이전트는 PutLogEvents API를 사용하여 CloudWatch에 게시합니다. 이 API는 모든 연속 PutLogEvents 호출에 시퀀스 토큰을 사용하며 각 로그 스트림에는 시퀀스 토큰이 연결되어 있습니다. CloudWatch 에이전트가 PutLogEvents 호출을 수행할 때 시퀀스 토큰이 제공됩니다 (새로 생성된 로그 스트림에 쓰지 않는 한). 이에 대한 응답으로 CloudWatch는 예상되는 다음 시퀀스 토큰을 해당 소스로 반환합니다. 반환된 시퀀스 토큰은 다음 푸시된 로그 이벤트에 사용해야 합니다.

CloudWatch가 로그 시스템에 예상하지 못한 시퀀스 토큰이 포함된 이벤트를 수신하면 예상했던 시퀀스 토큰과 함께 InvalidSequenceToken 오류를 반환합니다. 필요한 경우 DescribeLogStreams API 호출을 사용하여 업데이트된 토큰을 가져올 수 있습니다.

InvalidSequenceToken 오류는 다음과 같은 경우에 발생합니다.

  • CloudWatch 에이전트 서비스를 최근에 설치했거나 재시작함
  • 여러 소스가 동일한 스트림에 로그를 보내고 있음

해결 방법

CloudWatch 에이전트가 다시 시작된 후 InvalidSquenceToken 오류가 발생했습니다.

CloudWatch 에이전트가 다시 시작된 후에 이 오류가 표시될 수 있습니다. CloudWatch 에이전트 서비스가 막 시작되거나 다시 시작된 경우 로그를 푸시하려는 첫 번째 시도는 실패합니다. 이는 CloudWatch 로그에 로그 스트림이 이미 존재하기 때문에 예상되는 동작입니다. 따라서 CloudWatch 에이전트는 어떤 시퀀스 토큰을 사용해야 할지 알 수 없습니다. 기본 제공 재시도 메커니즘이 있으므로 CloudWatch 에이전트는 올바른 시퀀스 토큰을 선택하고 이를 사용하여 로그를 다시 푸시합니다.

여러 소스가 동일한 로그 스트림으로 로그를 보낼 때 InvalidSequenceToken 오류가 발생합니다.

여러 인스턴스가 동일한 로그 스트림으로 로그를 전송하는 경우 InvalidSequenceToken 오류가 발생합니다. 마찬가지로 동일한 인스턴스에 여러 로그 파일이 동일한 로그 스트림으로 로그를 전송하는 경우 오류가 발생합니다. 이 문제는 PutLogEvents 호출에서 전송된 시퀀스 토큰이 스트림에서 예상했던 토큰과 일치하지 않기 때문에 발생합니다.

InvalidSequenceToken 오류 해결

에이전트 구성 파일을 검토하고 여러 소스에서 동일한 로그 스트림으로 로그를 보내지 않는지 확인합니다. 단일 로그 스트림으로 데이터를 보내도록 여러 로그 소스를 구성하는 것은 지원되지 않습니다. 각 소스에 고유한 로그 스트림 이름을 사용하도록 에이전트 구성 파일을 업데이트합니다. 그런 다음 fetch-config 명령을 사용하여 에이전트 서비스를 다시 시작합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?