Warum kann ich mit dem awslogs-Agenten keine Protokolldaten an CloudWatch Logs übertragen?

Lesedauer: 4 Minute
0

Ich kann mit dem CloudWatch Logs-Agenten (awslogs) keine Protokolldaten an Amazon CloudWatch Logs übertragen.

Lösung

Bevor Sie beginnen, vergewissern Sie sich, dass der awslogs-Agent eine Verbindung zum CloudWatch Logs-API-Endpunkt herstellen kann.

Stellen Sie sicher, dass Ihre Konfiguration die folgenden Attribute hat:

  • Internetkonnektivität
  • Gültige Konfigurationen von Sicherheitsgruppen
  • Gültige Netzwerk-Zugriffskontrolllisten (Netzwerk-ACLs)

Wichtig: Diese Referenz bezieht sich auf den früheren CloudWatch Logs-Agenten, der nicht mehr unterstützt wird. Wenn Sie Instance Metadata Service Version 2 (IMDSv2) verwenden, müssen Sie den neuen einheitlichen CloudWatch-Agenten verwenden. Auch wenn Sie IMDSv2 nicht verwenden, empfiehlt es sich, den neueren Unified CloudWatch-Agenten anstelle des Logs-Agenten zu verwenden.

Probleme mit dem Fingerabdruck

Überprüfen Sie die Kopfzeilen der Quellprotokolldatei. Sie legen den Pfad dieser Datei fest, wenn Sie die Daten konfigurieren, die an CloudWatch übertragen werden sollen.

  • Wenn die ersten Zeilen leer sind oder Daten enthalten, die keine Ereignisse sind und unverändert bleiben, kann es zu Problemen mit dem Hash kommen, der das Protokoll identifiziert.
  • Wenn die Headerzeilen identisch sind, aktualisieren Sie die Option file_fingerprint_lines in der Agentenkonfigurationsdatei. Stellen Sie sicher, dass Sie in jeder Datei die Zeilen angeben, die für die Generierung des identifizierenden Hashs verwendet werden.

Überprüfen Sie die awslogs-Protokolldatei auf Fehler

Überprüfen Sie die Protokolldatei /var/log/awslogs.log. Notieren Sie sich alle Fehlermeldungen.

Zu den Berechtigungsfehlern gehören:

  • NoCredentialsError: Unable to locate credentials (Anmeldeinformationen konnten nicht gefunden werden) – Wenn Sie der Instance keine AWS Identity and Access Management (IAM)-Rolle hinzugefügt haben, erstellen Sie eine IAM-Rolle und hängen Sie sie an. Wenn Sie der Instanz bereits eine IAM-Rolle hinzugefügt haben, aktualisieren Sie die IAM-Benutzeranmeldeinformationen in der Datei /etc/awslogs/awscli.conf.
  • ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:iam::012345678910: / is not authorized to perform: logs:PutLogEvents[...] (Beim Aufrufen der PutLogEvents-Operation ist ein Fehler aufgetreten (AccessDeniedException):User: arn:aws:iam: :012345678910:/ist nicht autorisiert, Folgendes auszuführen: logs:putLogEvents\ [...]) – Konfigurieren Sie die IAM-Rolle oder den IAM-Benutzer mit den erforderlichen Berechtigungen für CloudWatch Logs.

Zu den Zeitstempelfehlern gehören:

  • Fall back to previous event time: {'timestamp': 1492395793000, 'start_position': 17280L, 'end_position': 17389L}, previousEventTime: 1492395793000, reason: timestamp could not be parsed from message. (Auf die Uhrzeit des vorherigen Ereignisses zurückgreifen: {'timestamp':1492395793000, 'start\ _position':17280L, 'end_position':17389L}, Zeit des vorherigen Events:17389L}, Zeit des vorherigen Events:1492395793000, Grund: Der Zeitstempel konnte nicht aus der Nachricht gelesen werden.) – Vergewissern Sie sich, dass die Protokollereignisse mit einem Zeitstempel beginnen. Prüfen Sie, ob das datetime_format, das in /etc/awslogs/awslogs.conf angegeben ist, mit dem Zeitstempelformat der Protokollereignisse übereinstimmt. Ändern Sie das datetime_format nach Bedarf so, dass es dem Zeitstempelformat entspricht.
  • **Es wurde keine Datei mit dem angegebenen Pfad ' ' gefunden ** – Aktualisieren Sie den Pfad der Protokolldatei in der Agentenkonfigurationsdatei auf den richtigen Pfad.

Andere Probleme mit awslogs

  • Wenn die Logs nach einer Log-Rotation nicht mehr übertragen werden, überprüfen Sie die unterstützten Log-Rotationsmethoden. Für weitere Informationen siehe Häufig gestellte Fragen zu CloudWatch Logs-Agenten.
  • Wenn Protokolle nur kurz nach dem Neustart des awslogs-Agenten übertragen werden, suchen Sie im Abschnitt**[logstream]** der Agentenkonfigurationsdatei nach Duplikaten. Jeder Abschnitt muss einen eindeutigen Namen haben.
  • Wenn die Protokolldatei awslogs.log zu viel Speicherplatz beansprucht, überprüfen Sie die Protokolldatei auf Fehler und korrigieren Sie diese anschließend. Wenn die Protokolldatei nur Informationsmeldungen enthält, geben Sie eine niedrigere Protokollierungsebene für die Option logging_config_file in der Agentenkonfigurationsdatei an.

Weitere Problembehebung

Notieren Sie sich zur weiteren Problembehandlung die Instance-ID (die ID Ihrer Instance). Erfassen und überprüfen Sie dann die folgenden Informationen auf der Grundlage Ihrer Konfiguration.

Yum-Installationen:

  • yum-Version
$ yum info awslogs
$ yum info aws-cli-plugin-cloudwatch-logs
  • /etc/awslogs/awslogs.conf-Datei
  • /etc/awslogs/awscli.conf-Datei
  • Andere relevante Dateien in /etc/awslogs/
  • /var/log/awslogs.log-Datei

Skriptbasierte Installationen:

  • Die awslogs-Version, die mit dem folgenden Befehl abgerufen wurde:
$ /var/awslogs/bin/awslogs-version.sh
  • /var/awslogs/etc/awslogs.conf-Datei
  • /var/awslogs/etc/awscli.conf-Datei
  • Andere relevante Dateien in /var/awslogs/etc/
  • /var/log/awslogs.log
  • /var/log/awslogs-agent-setup.log

Bei Problemen im Zusammenhang mit der Rotation sollten Sie Folgendes sammeln und überprüfen:

  • Ein Auszug aus den Quellprotokollen
  • Eine Liste des Inhalts des Überwachungszielverzeichnisses. Verwenden Sie den Befehl ls -la mit dem Verzeichnispfad, um Folgendes zu erhalten:
$ ls -la <Monitoring-Target-Directory-Path>

Ähnliche Informationen

Erste Schritte mit CloudWatch Logs

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr