Cloudwatch Logs の 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 エラーの解決

エージェント設定ファイルを確認し、複数のソースから同じログストリームにログを送信していないことを確認します。1 つのログストリームにデータを送信するように複数のログソースを設定することはサポートされていません。エージェント設定ファイルを更新して、ソースごとに一意のログストリーム名を使用します。次に、fetch-config コマンドを使用してエージェントサービスを再起動します


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?