Warum überträgt der Unified CloudWatch-Agent keine Protokollereignisse?

Lesedauer: 4 Minute
0

Ich verwende den Unified CloudWatch-Agent, um Protokolle an Amazon CloudWatch Logs zu übertragen. Ich kann die Protokolle jedoch nicht in der CloudWatch Logs-Konsole sehen. Warum überträgt der Unified CloudWatch-Agent keine Protokollereignisse?

Kurzbeschreibung

Die folgenden Probleme können verhindern, dass der Unified CloudWatch-Agent Protokollereignisse weiterleitet:

  • Nicht synchronisierte Metadaten, die durch die Erstellung eines Amazon Machine Images (AMI) nach der Installation des CloudWatch-Agents verursacht wurden
  • Verwenden einer veralteten Version des CloudWatch-Agents
  • Es konnte keine Verbindung zum CloudWatch Logs-Endpunkt hergestellt werden
  • Falsche Konto-, Regions- oder Protokollgruppenkonfigurationen
  • Unzureichende AWS-Berechtigungen für Identity and Access Management (IAM)
  • Fehler beim Ausführen des CloudWatch-Agents
  • Probleme mit dem Zeitstempel

Lösung

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.

Wichtig: Die folgenden Schritte zur Fehlerbehebung gelten nicht für Container Insights. Einzelheiten zur Fehlerbehebung bei Container Insights finden Sie unter Problembehandlung bei Container Insights und Wie kann ich Probleme mit dem Pod-Status in Amazon EKS beheben?

Die Installationsmethode für den CloudWatch-Agent überprüfen

Es hat sich bewährt, den CloudWatch-Agent beim Start mithilfe von AWS CloudFormation, AWS Systems Manager Agent (SSM Agent), Benutzerdatenskripten oder der AWS-CLI zu installieren. Es empfiehlt sich zudem, vor der Installation des CloudWatch-Agents ein AMI zu erstellen. AMIs erfassen in der Regel eindeutige Informationen von der ursprünglichen Instance. Die Synchronisation der Metadaten geht verloren und dieser Zustand kann dazu führen, dass der CloudWatch-Agent nicht wie vorgesehen funktioniert. Nicht synchronisierte Metadaten sind der Grund dafür, dass viele Windows-Instances Sysprep benötigen, wenn sie mit AMI arbeiten. Weitere Informationen finden Sie unter Wie kann ich Sysprep verwenden, um benutzerdefinierte wiederverwendbare Windows-AMIs in Amazon EC2 zu erstellen und zu installieren?

Sicherstellen, dass Sie die neueste Version des CloudWatch-Agents verwenden

Laden Sie die README-Dateien für die Versionshinweise des CloudWatch-Agents und die neueste Versionsnummer herunter und überprüfen Sie sie. Wenn Sie eine ältere Version des CloudWatch-Agents verwenden, sollten Sie unbedingt ein Upgrade durchführen. Die neueste Version enthält möglicherweise Updates, die das aufgetretene Problem beheben.

Die Konnektivität zu Ihrem CloudWatch Logs-Endpunkt testen

Testen Sie die Konnektivität zum CloudWatch Logs-Endpunkt mit einem der folgenden Befehle:

telnet logs.<region>.amazonaws.com 443
nc -zv logs.<region>.amazonaws.com 443

Wenn Verbindungsfehler auftreten, stellen Sie sicher, dass:

  • Die Regeln für Sicherheitsgruppen und die Netzwerk-Zugriffssteuerungsliste (ACL) Konnektivität ermöglichen
  • Ihre Instance den öffentlichen Endpunkt über ein Internet-Gateway oder ein Network Address Translation (NAT)-Gateway erreichen kann
  • Wenn Sie VPC-Endpunkte verwenden, wird der Endpunkt in eine VPC-IP aufgelöst und die Endpunkt-Sicherheitsgruppe ermöglicht den Zugriff von der Quell-Instance aus

Überprüfen Sie Ihre Konto-, Regions- und Protokollgruppenkonfigurationen

In der CloudWatch-Agent-Konfigurationsdatei:

  • Stellen Sie sicher, dass die angegebene Region mit der Konsolenregion übereinstimmt
  • Stellen Sie sicher, dass die Protokolle im richtigen Konto überprüft wurden

Optional können Sie die Datei common-config.toml verwenden, um die Systemstandardwerte für den CloudWatch-Agent zu überschreiben. Diese Systemstandardwerte beinhalten den Proxy, die Region und die Anmeldeinformationen für den Agent. Die Datei ist an den folgenden Speicherorten zu finden.

Linux:

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml

-oder-

/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

Ihre IAM-Berechtigungen überprüfen

Der CloudWatch-Agent verwendet Anmeldeinformationen aus dem IAM-Benutzer oder der IAM-Rollenrichtlinie, um Protokollereignisse an den CloudWatch-Dienst zu übertragen. Bevor ein Protokollereignis veröffentlicht werden kann, müssen Sie eine Protokollgruppe und einen Protokollstream erstellen. Wenn es keine Protokollgruppe oder keinen Protokollstream gibt, erstellt der CloudWatch-Agent sie.

Vergewissern Sie sich, dass Ihre Richtlinie die folgenden IAM-Berechtigungen beinhaltet:

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

Fügen Sie alle fehlenden IAM-Berechtigungen zur Benutzerrichtlinie oder Rollenrichtlinie hinzu.

**Hinweis:**Beim Erstellen von IAM-Rollen und Benutzern empfiehlt es sich, die von Amazon erstellten Richtlinien CloudWatchAgentServerPolicy und CloudWatchAgentAdminPolicy anstelle benutzerdefinierter Richtlinien zu verwenden.

Fehler beim Ausführen des CloudWatch-Agents beheben

Stellen Sie sicher, dass der CloudWatch-Agent läuft. Wenn der Agent nicht läuft, überprüfen Sie die Protokolldatei auf Fehler und beheben Sie diese. Protokolldateien befinden sich an den folgenden Speicherorten.

Linux:

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

Hinweis: Für Protokolle kann ein benutzerdefinierter Speicherort für Protokolldateien festgelegt worden sein. Überprüfen Sie die Agent-Konfigurationsdatei, um alle benutzerdefinierten Protokollspeicherorte zu identifizieren.

Aktivieren Sie in der Agent-Konfigurationsdatei die umfassende Debug-Protokollierung mithilfe des Debug-Parameters. Wenn Sie den Parameter run_as_user verwenden, stellen Sie sicher, dass der Benutzer über Berechtigungen für den Pfad zum Protokollspeicherort verfügt. Ohne die erforderlichen Berechtigungen kann der CloudWatch-Agent keine Protokolle an den Speicherort schreiben.

Probleme mit Zeitstempeln lösen

Suchen Sie nach Zeitstempeln für Protokollereignisse, die älter als 14 Tage oder mehr als zwei Stunden in der Zukunft liegen. Der Befehl PutLogEvents erlaubt in keinem der Zeiträume Protokollstapel.

Stellen Sie außerdem sicher, dass der Systemzeitdienst auf der Instance korrekt konfiguriert ist. Weitere Informationen finden Sie unter Festlegen der Uhrzeit für Ihre Linux-Instance oder Festlegen der Uhrzeit für eine Windows-Instance.


Ähnliche Informationen

Fehlerbehebung beim CloudWatch-Agent

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren