View a markdown version of this page

Schnellstart: oTEL Container Insights auf Amazon EKS - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schnellstart: oTEL Container Insights auf Amazon EKS

Dieser Leitfaden führt Sie durch die Aktivierung von oTEL Container Insights auf einem vorhandenen Amazon EKS-Cluster. Am Ende dieses Verfahrens sendet Ihr Cluster Infrastrukturmetriken und Container-Logs CloudWatch mit aktivierter Enhanced Observability an Amazon.

Sie können oTEL Container Insights auf zwei Arten aktivieren: mit dem AWS-Managementkonsole (schnellsten) oder mit dem AWS CLI. Bei beiden Ansätzen wird dasselbe amazon-cloudwatch-observability EKS-Add-on mit der OTel Container Insights-Konfiguration installiert. Sie benötigen keine manuelle Agentenbereitstellung, Helm-Diagramme oder benutzerdefinierte Collector-Pipelines. Der gesamte Vorgang dauert weniger als 5 Minuten.

Voraussetzungen

Bevor Sie oTEL Container Insights aktivieren, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen.

  • Ein vorhandener Amazon EKS-Cluster, auf dem Kubernetes Version 1.28 oder höher ausgeführt wird

  • Plattformversion oder höher eks.1

  • Version 6.2.0 oder höher des Add-ons amazon-cloudwatch-observability

  • AWS CLI Version 2.15.0 oder höher (für die Installation) CLI-based

  • kubectlkonfiguriert für die Kommunikation mit Ihrem Zielcluster

  • IAM-Berechtigungen: eks:CreateAddoneks:DescribeAddon, und iam:CreateServiceLinkedRole

  • Das auf Ihrem Cluster installierte EKS Pod Identity Agent-Add-On oder die konfigurierten IAM-Rollen für Dienstkonten (IRSA)

  • Ausgehender Internetzugang vom Cluster zu den Endpunkten CloudWatch

Aktivieren Sie Otel Container Insights (Konsole)

Das AWS-Managementkonsole bietet den schnellsten Weg zur Aktivierung von OTel Container Insights.

Um OTel Container Insights über die Konsole zu aktivieren
  1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/.

  2. Wählen Sie Clusters und dann Ihren Clusternamen aus.

  3. Wählen Sie den Registerkarte Beobachtbarkeit.

  4. Wählen Sie „Container Insights aktivieren“ und folgen Sie den Anweisungen auf dem Bildschirm.

Eine ausführliche Anleitung zur Konsole finden Sie unter. Otel Container Insights von der Konsole aus aktivieren

Aktivieren Sie Otel Container Insights (AWS CLI)

Gehen Sie wie folgt vor, um OTel Container Insights zu aktivieren, indem Sie den verwenden AWS CLI.

Schritt 1: Erstellen Sie die IAM-Rolle für das

Erstellen Sie eine IAM-Rolle, an die das CloudWatch Observability-Add-on Daten senden kann. CloudWatch

Um die IAM-Rolle des CloudWatch Observability-Add-ons zu erstellen
  1. Führen Sie den folgenden Befehl aus, um die Rolle mit einer Vertrauensrichtlinie für EKS Pod Identity zu erstellen.

    aws iam create-role \ --role-name EKS-CloudWatch-Observability-Role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }] }'
  2. Hängen Sie die von CloudWatchAgentServerPolicy verwaltete Richtlinie an die Rolle an.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Observability-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Schritt 2: Erstellen Sie die Pod Identity-Zuordnung

Ordnen Sie die IAM-Rolle dem CloudWatch Agent-Dienstkonto in Ihrem Cluster zu.

Um die Pod Identity-Zuordnung zu erstellen
  • Führen Sie den folgenden Befehl aus. cluster-nameErsetzen Sie es durch den Namen Ihres Amazon EKS-Clusters und account-id durch Ihre AWS Konto-ID.

    aws eks create-pod-identity-association \ --cluster-name cluster-name \ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Observability-Role

Schritt 3: Installieren Sie das Amazon CloudWatch Observability-Add-on

Installieren Sie das amazon-cloudwatch-observability Add-on mit aktiviertem oTEL Container Insights.

Um das Add-on zu installieren
  • Führen Sie den folgenden Befehl aus. cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.

    aws eks create-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"otelContainerInsights":{"enabled":true}}'
    Wichtig

    Die otelContainerInsights.enabled Konfiguration ist erforderlich. oTEL Container Insights ist standardmäßig nicht aktiviert.

Schritt 4: Überprüfen Sie den Status des Add-ons

Vergewissern Sie sich, dass das Add-on erfolgreich installiert wurde.

Um den Status des Add-ons zu überprüfen
  • Führen Sie den folgenden Befehl aus. cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text

    Die erwartete Ausgabe istACTIVE.

Schritt 5: Stellen Sie sicher, dass die Agent-Pods ausgeführt werden

Stellen Sie sicher, dass die CloudWatch Agent-Pods im amazon-cloudwatch Namespace ausgeführt werden.

Um zu überprüfen, ob die Agenten-Pods ausgeführt werden
  • Führen Sie den folgenden Befehl aus.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Alle Agenten-Pods müssen Running den Status anzeigen.

Überprüfen Sie die Daten in CloudWatch

Nachdem Sie die Einrichtung abgeschlossen haben, werden die Container Insights-Daten CloudWatch innerhalb von 3 bis 5 Minuten angezeigt.

Überprüfen Sie die Kennzahlen

Um Metriken einzuchecken CloudWatch
  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Query Studio aus.

  3. Suchen Sie nach Metriken, z. B. mithilfe container_cpu_usage_seconds_total von PromQL.

-Protokolle überprüfen

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Protokollgruppen für Ihren Cluster existieren. cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.

aws logs describe-log-groups \ --log-group-name-prefix "/aws/containerinsights/cluster-name" \ --query "logGroups[].logGroupName" \ --output table

Erwartete Zeit bis zur Datenaufnahme

Die folgende Tabelle zeigt die erwartete Latenz für jeden Signaltyp, nachdem Sie OTel Container Insights aktiviert haben.

Signal Erwartete Latenz
Infrastruktur-Metriken 2—3 Minuten
Containerprotokolle 2—3 Minuten
Ereignisse im Leistungsprotokoll 3—5 Minuten

Fehlerbehebung

Verwenden Sie die folgenden Anleitungen, um häufig auftretende Probleme zu lösen, wenn Sie oTEL Container Insights auf Amazon EKS aktivieren.

Add-on Der Status zeigt CREATE_FAILED oder DEGRADED

Symptom: Beim Ausführen wird der Status aws eks describe-addon oder angezeigt. CREATE_FAILED DEGRADED

Ursache: Die Installation des Add-ons ist fehlgeschlagen. Dies ist in der Regel auf unzureichende IAM-Berechtigungen oder eine fehlende Pod Identity-Zuordnung zurückzuführen.

Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.

  1. Führen Sie den folgenden Befehl aus, um nach detaillierten Fehlerinformationen zu suchen. Ersetzen Sie cluster-name mit dem Namen Ihres Clusters.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.health"
  2. Stellen Sie sicher, dass die IAM-Rolle vorhanden ist und dass sie CloudWatchAgentServerPolicy angehängt ist.

  3. Stellen Sie sicher, dass die Pod Identity-Zuordnung auf den richtigen Namespace (amazon-cloudwatch) und das richtige Dienstkonto (cloudwatch-agent) abzielt.

  4. Löschen Sie das fehlgeschlagene Add-on und installieren Sie es erneut, nachdem Sie das Problem behoben haben.

    aws eks delete-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability

Agent-Pods befinden sich im Status CrashLoopBackOff oder Ausstehend

Symptom: Wenn Sie den Vorgang ausführenkubectl get pods -n amazon-cloudwatch, wird für einen oder mehrere Pods der Pending Status „CrashLoopBackOffUnser“ angezeigt.

Ursache: Die Agenten-Pods können aufgrund unzureichender Knotenressourcen, fehlender Berechtigungen oder Netzwerkverbindungsproblemen nicht gestartet werden.

Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.

  1. Überprüfen Sie die Pod-Ereignisse auf detaillierte Fehlermeldungen.

    kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
  2. Überprüfen Sie die Agent-Container-Protokolle auf Startfehler.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=50
  3. Stellen Sie sicher, dass Ihre Knoten über ausreichend CPU und Arbeitsspeicher für die Agenten-Pods verfügen.

  4. Stellen Sie sicher, dass das EKS Pod Identity Agent-Add-on installiert ist und ausgeführt wird.

    kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent

Metriken werden CloudWatch nach 5 Minuten nicht angezeigt

Symptom: Die Agenten-Pods zeigen Running den Status an, aber CloudWatch nach 5 Minuten werden keine Metriken angezeigt.

Ursache: Der Agent kann keine Daten an senden CloudWatch, was in der Regel auf Netzwerkeinschränkungen oder falsche IAM-Berechtigungen zurückzuführen ist.

Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.

  1. Stellen Sie sicher, dass die Agenten-Pods CloudWatch Endpunkte erreichen können. Vergewissern Sie sich, dass Ihre VPC-Sicherheitsgruppen und Netzwerk-ACLs ausgehenden HTTPS-Verkehr (Port 443) zu Endpunkten zulassen. CloudWatch

  2. Überprüfen Sie die Agentenprotokolle auf Berechtigungsfehler oder Verbindungstimeouts.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
  3. Stellen Sie sicher, dass die IAM-Rolle die CloudWatchAgentServerPolicy Richtlinie angehängt hat und ob die Vertrauensrichtlinie dies zulässt. pods.eks.amazonaws.com

  4. Wenn Sie einen VPC-Endpunkt für verwenden, vergewissern Sie sich CloudWatch, dass die Endpunktrichtlinie die erforderlichen Aktionen zulässt.