Wie behebe ich Fehler mit invalidSequenceToken in den CloudWatch-Protokollen?

Letzte Aktualisierung: 24.03.2022

Ich erhalte einen InvalidSequenceToken-Fehler in den Protokolldateien, wenn ich mithilfe des CloudWatch-Agenten Protokolle an Amazon CloudWatch sende. Wie kann ich diesen Fehler beheben?

Kurzbeschreibung

Der CloudWatch-Agent verwendet die PutlogEvents-API, um in CloudWatch zu veröffentlichen. Diese API verwendet ein Sequenz-Token für jeden aufeinanderfolgenden PutLogEvents-Aufruf, und jedem Protokollstream ist ein Sequenz-Token zugeordnet. Wenn der CloudWatch-Agent den PutLogEvents-Aufruf ausführt, wird ein Sequenz-Token bereitgestellt (sofern nicht in einen neu erstellten Protokollstream geschrieben wird). Als Antwort gibt CloudWatch das nächste erwartete Sequenz-Token an diese Quelle zurück. Das zurückgegebene Sequenz-Token muss für das nächste Push-Protokollereignis verwendet werden.

Wenn CloudWatch ein Ereignis mit einem Sequenz-Token erhält, das es für ein Protokollsystem nicht erwartet, gibt es den InvalidSequenceToken-Fehler mit dem erwarteten Sequenz-Token zurück. Bei Bedarf können Sie den API-Aufruf DescribeLogStreams verwenden, um ein aktualisiertes Token abzurufen.

Der InvalidSequenceToken-Fehler tritt auf, wenn:

  • Sie kürzlich den CloudWatch-Agent-Service installiert oder neu gestartet haben.
  • Mehrere Quellen Protokolle an dieselben Streams senden.

Auflösung

Fehler mit InvalidSequenceToken nach dem Neustart des CloudWatch-Agent

Möglicherweise wird dieser Fehler nach dem Neustart des CloudWatch-Agent angezeigt. Wenn der CloudWatch-Agent-Service gerade gestartet oder neu gestartet wurde, schlägt der erste Versuch, die Protokolle zu pushen, fehl. Dies ist ein erwartetes Verhalten, das auftritt, da der Protokollstream bereits in den CloudWatch-Protokollen vorhanden ist. Daher weiß der CloudWatch-Agent nicht, welches Sequenz-Token er verwenden soll. Da er über einen integrierten Wiederholungsmechanismus verfügt, nimmt der CloudWatch-Agent das richtige Sequenz-Token auf und verwendet es, um die Protokolle erneut zu pushen.

InvalidSequenceToken-Fehler, wenn mehrere Quellen Protokolle an denselben Protokollstream senden

Sie erhalten einen InvalidSequenceToken-Fehler, wenn Sie mehrere Instances haben, die Protokolle an denselben Protokollstream senden. Wenn Sie mehrere Protokolldateien in derselben Instance haben, die Protokolle an denselben Protokollstream senden, wird ein Fehler angezeigt. Dies passiert, weil das Sequenz-Token, das im PutLogEvents-Aufruf gesendet wurde, nicht mit dem Token übereinstimmt, das der Stream erwartet hatte.

Beheben von Fehlern mit InvalidSequenceToken

Überprüfen Sie die Agent-Konfigurationsdateien und stellen Sie sicher, dass Sie keine Protokolle aus mehreren Quellen an denselben Protokollstream senden. Das Konfigurieren mehrerer Protokollquellen zum Senden von Daten an einen einzelnen Protokollstream wird nicht unterstützt. Aktualisieren Sie die Agentenkonfigurationsdatei, sodass für jede Quelle eindeutige Protokollstreamnamen verwendet werden. Starten Sie anschließend den Agent-Service mit dem Befehl fetch-config neu.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?