Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie behebe ich Protokollierungsprobleme in Amazon EKS?
Ich möchte Probleme lösen, die auftreten, wenn ich die Protokollierung in Amazon Elastic Kubernetes Service (Amazon EKS)-Clustern aktiviere.
Lösung
Stelle vor der Problembehandlung sicher, dass deine Anwendung Protokolle schreibt.
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Sicherstellen, dass das Netzwerk richtig konfiguriert ist
Stelle sicher, dass das Netzwerk für die Amazon Virtual Private Cloud (Amazon VPC)-Subnetze und -Sicherheitsgruppen korrekt konfiguriert ist. Überprüfe Folgendes:
- Wenn du ein Internet-Gateway verwendest, stelle sicher, dass es korrekt mit der Routing-Tabelle verknüpft ist. Stelle außerdem sicher, dass der eingehende oder ausgehende Netzwerkdatenverkehr korrekt weitergeleitet wird.
- Wenn du ein NAT-Gateway verwendest, stelle sicher, dass es in einem öffentlichen Subnetz ordnungsgemäß konfiguriert ist. Überprüfe dann, ob die zugehörige Routing-Tabelle die Weiterleitung korrekt vornimmt.
- Wenn du einen privaten Cluster mit eingeschränktem Internetzugang hast, stelle sicher, dass der Cluster über den VPC-Schnittstellenendpunkt com.amazonaws.region.logs verfügt, an den die richtige Richtlinie angefügt ist.
- Wenn du ein Servicekonto hast, hast du die Pods möglicherweise mit AWS Identity and Access Management (IAM)-Rollen konfiguriert. Wenn es keinen ausgehenden Internetzugang gibt, musst du den VPC-Endpunkt com.amazonaws.region.logs von AWS Security Token Service (AWS STS) in der VPC verwenden.
- Möglicherweise möchtest du Bilder aus einem privaten Amazon Elastic Container Registry (Amazon ECR)-Repository abrufen. Wenn du kein NAT-Gateway oder keinen ausgehenden Internetzugang hast, benötigst du die folgenden VPC-Endpunkte und den Amazon Simple Storage Service (Amazon S3)-Gateway-Endpunkt:
com.amazonaws.region-code.s3
com.amazonaws.region-code.ecr.api
com.amazon.region-code.ecr.dkr - Die Sicherheitsgruppe für den VPC-Endpunkt muss über eine Regel für eingehenden Datenverkehr verfügen, die den Datenverkehr von Port 443 zulässt. Stelle außerdem sicher, dass die Knoten-Sicherheitsgruppe ausgehenden Datenverkehr zu den VPC-Endpunkten zulässt.
Sicherstellen, dass die Pods über ausreichende Berechtigungen verfügen
Wenn du Pods mit IAM-Rollen für Servicekonten verwendest, überprüfe, ob du das Servicekonto mit der richtigen IAM-Rolle annotiert hast. Vergewissere dich anschließend, dass du den IAM OpenID Connect (OIDC)-Anbieter für den Cluster erstellt hast.
Gehe wie folgt vor, um die IAM-Rolle und die Berechtigungen des Servicekontos zu überprüfen:
-
Beschreibe die IAM-Rolle des Servicekontos und stelle dann sicher, dass die folgende Anmerkung vorhanden ist. Führe den folgenden Befehl aus:
eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/YOUR-ROLE-NAMEHinweis: Ersetze YOUR-ROLE-NAME durch den Namen der IAM-Rolle deines Kontos.
-
Vergewissere dich, dass CloudWatchAgentServerPolicy an die IAM-Rolle angefügt ist. Oder vergewissere dich, dass es eine Richtlinie mit denselben Berechtigungen gibt. Ist dies nicht der Fall, stelle sicher, dass die CloudWatchAgentServerPolicy an die Knotenrolle angefügt ist.
Fehlerbehebung bei der Fluent-Bit-Konfiguration
Wenn du den Fluent-Bit-Protokoll-Router installiert hast, stelle sicher, dass die Pods ausgeführt werden und das System Protokolle an Amazon CloudWatch sendet. Wenn nicht, hast du möglicherweise Probleme mit deinen IAM-Berechtigungen oder deinem Netzwerk.
Überprüfe Folgendes, um Fehler bei der Bereitstellung und Konfiguration von Fluent Bit zu beheben:
Führe den folgenden Befehl aus, um die Pods in dem Namespace zu überprüfen, in dem du Fluent Bit installiert hast:
kubectl get pods -n NAMESPACE
Hinweis: Ersetze NAMESPACE durch den Namen deines Namespace.
Wenn die Knoten Taints aufweisen, stelle sicher, dass die Pods mit den Toleranzen konfiguriert sind.
Wenn sich die Pods in einem anderen Status als WIRD ASUGEFÜHRT befinden, führe den folgenden Befehl aus, um die Pod-Ereignisse zu überprüfen:
kubectl describe pod POD_NAME -n NAMESPACE
Hinweis: Ersetze POD_NAME durch den Namen deines Pods und NAMESPACE durch den Namen deines Namespace.
Führe den folgenden Befehl aus, um die Pod-Protokolle auf Fehler zu überprüfen:
kubectl logs POD_NAME -n NAMESPACE
Hinweis: Ersetze POD_NAME durch den Namen deines Pods und NAMESPACE durch den Namen deines Namespace.
Standardmäßig ist die Protokollebene für Fluent Bit auf info gesetzt. Wenn du mehr Einblicke wünschst, konfiguriere es für das Debuggen. Weitere Informationen findest du unter Configuration file (Konfigurationsdatei) auf der Fluent Bit-Website.
Führe den folgenden Befehl aus, um deine Fluent-Bit-ConfigMap-Konfigurationen anzuzeigen:
kubectl get cm CONFIGMAP_NAME -n NAMESPACE -o yaml
Hinweis: Ersetze CONFIGMAP_NAME durch den Namen deiner ConfigMap und NAMESPACE durch den Namen deines Namespace.
Stelle sicher, dass die Knotenrolle oder Rolle, die dem Servicekonto zugeordnet ist, basierend auf dem konfigurierten Ziel über die richtigen IAM-Berechtigungen verfügt.
Problembehandlung beim CloudWatch Agent
Stelle sicher, dass die Knoten-IAM-Rolle über die erforderlichen Berechtigungen verfügt. Wenn du eine IAM-Rolle mit einer Servicekonto-Rolle verwendest, stelle sicher, dass du einen OIDC-Anbieter sowie eine IAM-Rolle und -Richtlinie erstellt hast. Stelle sicher, dass das Servicekonto korrekt mit der entsprechenden IAM-Rolle annotiert ist.
Vergewissere dich, dass die DaemonSet Pods von cloudwatch-agent ordnungsgemäß ausgeführt werden. Wenn deine Knoten Taints aufweisen, stelle sicher, dass die Pods mit Toleranzen konfiguriert sind. Führe den folgenden Befehl aus, um die Liste der Pods abzurufen:
kubectl logs POD_NAME -n amazon-cloudwatch
Hinweis: Ersetze POD_NAME durch den Namen deines Pods.
Wenn sich die Pods in einem anderen Zustand als WIRD AUSGEFÜHRT befinden, führe die Überprüfung der Pod-Ereignisse aus. Führe den folgenden Befehl aus:
kubectl describe pod POD_NAME -n amazon-cloudwatch
Hinweis: Ersetze POD_NAME durch den Namen deines Pods.
Stelle sicher, dass du den Clusternamen in der ConfigMap korrekt festgelegt hast. Führe den folgenden Befehl aus, um die Protokolle für die Pods zu überprüfen:
kubectl logs POD_NAME -n amazon-cloudwatch
Hinweis: Ersetze POD_NAME durch den Namen deines Pods.
Wenn du ein öffentliches Bild im DaemonSet verwendest, stelle sicher, dass die Knoten über einen Internetzugang verfügen. Wenn du ein Bild aus einem privaten Repository verwendest, vergewissere dich, dass der erforderliche Datenverkehr zulässig ist.
Beheben von Protokollierungsproblemen auf einem Fargate-Cluster
Hinweis: Die AWS Fargate-Protokollierung unterstützt keine dynamische Konfiguration von ConfigMaps. Änderungen gelten nicht für bestehende Pods, daher gelten alle Änderungen an ConfigMaps nur für neue Pods.
Führe den folgenden Befehl aus, um zu überprüfen, ob du einen Namespace mit dem Namen aws-observability mit dem Label aws-observability: enabled erstellt hast:
kubectl get ns aws-observability -o yaml
Vergewissere dich, dass du in der Pod-Ausführungsrolle für das Fargate-Profil die richtige IAM-Richtlinie angegeben hast. Wenn du beispielsweise Protokolle an CloudWatch senden möchtest, stelle sicher, dass die Pod-Ausführungsrolle über die folgenden Berechtigungen verfügt:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": "*" }] }
Vergewissere dich, dass du die ConfigMap im aws-observability-Namespace korrekt erstellt hast. Stelle sicher, dass die ConfigMap den Regeln entspricht, die Fargate zur Validierung von Feldern verwendet.
Wenn dir die Fluent-Bit-Prozessprotokolle fehlen, vergewissere dich, dass du flb_log_cw: "true" in der ConfigMap gesetzt hast.
Fehlerbehebung für das CloudWatch-Observability-Add-on in Amazon EKS
Wenn das CloudWatch-Observability-Add-on in Amazon EKS eine IAM-Rolle für das Servicekonto verwendet, vergewissere dich, dass du einen OIDC-Anbieter für den Cluster erstellt hast. Vergewissere dich dann, dass du das Servicekonto mit der richtigen Rolle konfiguriert hast. Der Rolle muss die CloudWatchAgentServerPolicy-Richtlinie angefügt sein.
Wenn du die AWS-Managementkonsole verwendet hast, um das verwaltete Add-on zu installieren, vergewissere dich, dass die Pods und der Status des Add-ons in der Konsole aktiv sind. Wenn sich das Add-on im Status „Fehlgeschlagen“ befindet, überprüfe den Grund für den Ausfall. Wenn du Helm zur Installation des Add-ons verwendet hast, vergewissere dich ebenfalls, dass die Helm-Installation erfolgreich war.
Wenn du einen Fehler aufgrund vorhandener Ressourcen feststellst, hast du möglicherweise bereits die erforderlichen Komponenten für das Add-on installiert. Wenn du den CloudWatch-Agent zuvor installiert hast, entferne ihn aus dem Cluster, bevor du das Add-on installierst. Du musst vor der Installation des Add-ons außerdem ein Backup aller Anpassungen oder Änderungen erstellen, die du am ursprünglichen CloudWatch-Agent vorgenommen hast. Du kannst die Anpassungen erneut anwenden, nachdem du das Add-on oder den Helm-Chart installiert oder aktualisiert hast.
Ähnliche Informationen
Wie behebe ich fehlende Container-Protokolle für Amazon ECS oder Amazon EKS?
Wie aktiviere ich Container-Insights-Metriken auf einem Amazon-EKS-Cluster?
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Monaten
AWS OFFICIALAktualisiert vor 5 Monaten
AWS OFFICIALAktualisiert vor 8 Monaten