Como soluciono erros de InvalidSequenceToken nos logs do CloudWatch?

Última atualização: 24/03/2022

Recebo um erro InvalidSequenceToken nos arquivos de log quando envio logs ao Amazon CloudWatch usando o agente do CloudWatch. Como posso solucionar o problema e resolver esse erro?

Breve descrição

O agente do CloudWatch usa a API PutLogEvents para publicar no CloudWatch. Essa API usa um token de sequência para cada chamada PutLogEvents consecutiva, e cada fluxo de log tem um token de sequência associado. Quando o agente do CloudWatch faz a chamada PutLogEvents, um token de sequência é fornecido (a menos que seja gravado em um stream de log recém-criado). Em resposta, o CloudWatch retorna o próximo token de sequência esperado para essa fonte. O token de sequência retornado precisa ser usado para o próximo evento de log enviado.

Se o CloudWatch receber um evento com um token de sequência que não está esperando para um sistema de log, ele retornará o erro InvalidSequenceToken com o token de sequência que estava esperando. Se necessário, você pode usar a chamada de API DescribeLogStreams para obter um token atualizado.

O erro InvalidSequenceToken ocorre quando:

  • Você instalou ou reiniciou recentemente o serviço de agente do CloudWatch
  • Várias fontes estão enviando registros para os mesmos fluxos

Resolução

Erros InvalidSquenceToken após a reinicialização do agente do CloudWatch

Você poderá ver esse erro depois que o agente do CloudWatch for reiniciado. Quando o serviço do agente do CloudWatch acaba de ser iniciado ou reiniciado, a primeira tentativa de envio de logs por push falha. Esse é o comportamento esperado, pois o stream de logs já existe nos logs do CloudWatch. Como resultado, o agente do CloudWatch não sabe qual token de sequência usar. Como ele tem um mecanismo de repetição integrado, o agente do CloudWatch seleciona o token de sequência correto e o usa para enviar os logs novamente.

Erros InvalidSequenceToken quando várias fontes enviam logs ao mesmo fluxo de log

Você receberá um erro InvalidSequenceToken se houver várias instâncias enviando logs ao mesmo fluxo de logs. Da mesma forma, se você tiver vários arquivos de log na mesma instância enviando logs ao mesmo fluxo de logs, receberá um erro. Isso acontece porque o token de sequência que foi enviado na chamada PutLogEvents não corresponde ao token que o fluxo estava esperando.

Resolver erros InvalidSequenceToken

Revise os arquivos de configuração do agente e verifique se você não está enviando logs de várias fontes ao mesmo fluxo de logs. Não há suporte para a configuração de várias fontes de log para enviar dados a um único stream de logs. Atualize o arquivo de configuração do agente para usar nomes de fluxo de logs exclusivos para cada fonte. Em seguida, reinicie o serviço do agente usando o comando fetch-config.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?