Installieren Sie den CloudWatch Agenten mit dem Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm - 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.

Installieren Sie den CloudWatch Agenten mit dem Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm

Sie können entweder das Amazon CloudWatch Observability EKS-Add-on oder das Amazon CloudWatch Observability Helm-Diagramm verwenden, um den CloudWatch Agenten und den Fluent-Bit-Agenten auf einem Amazon EKS-Cluster zu installieren. Sie können das Helm-Diagramm auch verwenden, um den CloudWatch Agenten und den Fluent-Bit-Agenten auf einem Kubernetes-Cluster zu installieren, der nicht auf Amazon EKS gehostet wird.

Die Verwendung einer der beiden Methoden auf einem Amazon EKS-Cluster ermöglicht standardmäßig sowohl Container Insights mit verbesserter Observability für Amazon EKS als auch CloudWatch Application Signals. Mit beiden Features können Sie Infrastrukturmetriken, Anwendungs-Leistungstelemetrie und Container-Protokolle aus dem Amazon-EKS-Cluster erfassen.

Bei Container Insights mit verbesserter Beobachtbarkeit für Amazon EKS werden die Container-Insights-Metriken pro Beobachtung abgerechnet, anstatt pro gespeicherter Metrik oder aufgenommenem Protokoll. Bei Application Signals basiert die Abrechnung auf eingehenden Anforderungen an Ihre Anwendungen, ausgehenden Anforderungen von Ihren Anwendungen und jedem konfigurierten Servicelevel-Ziel (SLO). Jede eingehende Anforderung generiert ein Anwendungssignal, und jede ausgehende Anforderung generiert ein Anwendungssignal. Jeder SLO erzeugt zwei Anwendungssignale pro Messzeitraum. Weitere Informationen zur CloudWatch Preisgestaltung finden Sie unter CloudWatch Amazon-Preise.

Beide Methoden aktivieren Container Insights sowohl auf Linux- als auch auf Windows-Worker-Knoten im Amazon-EKS-Cluster. Um Container Insights unter Windows zu aktivieren, müssen Sie Version 1.5.0 oder höher des Amazon-EKS-Add-ons oder das Helm-Chart verwenden. Application Signals wird unter Windows in Amazon-EKS-Clustern nicht unterstützt.

Das Amazon CloudWatch Observability EKS-Add-on wird auf Amazon EKS-Clustern unterstützt, die mit Kubernetes Version 1.23 oder höher ausgeführt werden.

Wenn Sie das Add-on oder das Helm-Diagramm installieren, müssen Sie auch IAM-Berechtigungen erteilen, damit der CloudWatch Agent Metriken, Protokolle und Traces an senden kann. CloudWatch Es gibt zwei Möglichkeiten dafür:

  • Fügen Sie eine Richtlinie an die IAM-Rolle Ihrer Worker-Knoten an. Diese Option gewährt Worker-Knoten die Erlaubnis, Telemetrie an sie zu senden. CloudWatch

  • Verwenden Sie eine IAM-Rolle für Servicekonten für die Agenten-Pods und fügen Sie die Richtlinie an diese Rolle an. Dies funktioniert nur für Amazon-EKS-Cluster. Diese Option gewährt nur CloudWatch Zugriff auf die entsprechenden Agenten-Pods.

Option 1: Installation mithilfe von EKS Pod Identity

Bei Verwendung von Version 3.1.0 oder höher des Add-ons können Sie EKS Pod Identity nutzen, um dem Add-On die erforderlichen Berechtigungen zu erteilen. EKS Pod Identity ist die empfohlene Option und bietet Vorteile wie geringste Berechtigung, Rotation von Anmeldeinformationen und Überprüfbarkeit. Darüber hinaus ermöglicht Ihnen die Nutzung von EKS Pod Identity, das EKS-Add-on als Teil der Clustererstellung selbst zu installieren.

Zur Verwendung dieser Methode befolgen Sie die Schritte zur EKS-Pod-Identity-Zuordnung, um die IAM-Rolle zu erstellen und den EKS-Pod-Identity-Agenten einzurichten.

Installieren Sie anschließend das Amazon CloudWatch Observability EKS-Add-on. Um das Add-on zu installieren, können Sie die AWS CLI Amazon EKS-Konsole oder Terraform verwenden. CloudFormation

AWS CLI
AWS CLI Um das Amazon CloudWatch Observability EKS-Add-on zu installieren

Geben Sie die folgenden Befehle ein. my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters und 111122223333 ersetzen Sie es durch Ihre Konto-ID. my-roleErsetzen Sie durch die IAM-Rolle, die Sie im Zuordnungsschritt EKS Pod Identity erstellt haben.

aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy aws eks create-addon \ --addon-name amazon-cloudwatch-observability \ --cluster-name my-cluster-name \ --pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
Amazon EKS console
So verwenden Sie die Amazon EKS-Konsole, um das Amazon CloudWatch Observability EKS-Add-on hinzuzufügen
  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Cluster aus.

  3. Wählen Sie den Namen des Clusters, für den Sie das Amazon CloudWatch Observability EKS-Add-on konfigurieren möchten.

  4. Wählen Sie die Registerkarte Add-ons.

  5. Wählen Sie Weitere Add-Ons erhalten.

  6. Führen Sie auf der Seite Add-Ons auswählen die folgenden Schritte aus:

    1. Aktivieren Sie im Bereich Amazon EKS-Addons das Kontrollkästchen Amazon CloudWatch Observability.

    2. Wählen Sie Weiter aus.

  7. Gehen Sie auf der Seite Konfigurieren ausgewählter Add-Ons-Einstellungen wie folgt vor:

    1. Wählen Sie die Version aus, die Sie verwenden möchten.

    2. Wählen Sie für Add-on-Zugriff die Option EKS Pod Identity aus.

    3. Wenn Sie keine IAM-Rolle konfiguriert haben, wählen Sie Empfohlene Rolle erstellen und dann Weiter aus, bis Sie bei Schritt 3 Name, Überprüfung und Erstellung angelangt sind. Sie können Ihren Rollennamen bei Bedarf ändern. Andernfalls wählen Sie Rolle erstellen aus, kehren Sie dann zur Add-on-Seite zurück und wählen Sie die IAM-Rolle aus, die Sie gerade erstellt haben.

    4. (Optional) Sie können Optionale Konfigurationseinstellungen erweitern. Wenn Sie Überschreiben für Methode zur Konfliktlösung auswählen, können eine oder mehrere der Einstellungen für das vorhandene Add-on mit den Einstellungen des Amazon-EKS-Add-ons überschrieben werden. Wenn Sie diese Option nicht aktivieren und ein Konflikt mit Ihren vorhandenen Einstellungen vorliegt, schlägt der Vorgang fehl. Sie können die sich daraus ergebende Fehlermeldung heranziehen, um den Konflikt zu beheben. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie selbst verwalten müssen.

    5. Wählen Sie Weiter aus.

  8. Wählen Sie auf der Seite Überprüfen und hinzufügen die Option Erstellen aus. Nachdem die Installation der Add-Ons abgeschlossen ist, wird Ihr installiertes Add-On angezeigt.

CloudFormation
CloudFormation Zur Installation des Amazon CloudWatch Observability EKS-Add-ons
  1. Führen Sie zunächst den folgenden AWS CLI Befehl aus, um die erforderliche IAM-Richtlinie an Ihre IAM-Rolle anzuhängen. my-roleErsetzen Sie sie durch die Rolle, die Sie im Zuordnungsschritt EKS Pod Identity erstellt haben.

    aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  2. Erstellen Sie dann die folgende Ressource: my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters, 111122223333 ersetzen Sie es durch Ihre Konto-ID und my-role ersetzen Sie es durch die IAM-Rolle, die im Zuordnungsschritt EKS Pod Identity erstellt wurde. Weitere Informationen finden Sie unter AWS::EKS::Addon.

    { "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name", "PodIdentityAssociations": [ { "ServiceAccount": "cloudwatch-agent", "RoleArn": "arn:aws:iam::111122223333:role/my-role" } ] } } } }
Terraform
Um Terraform zur Installation des Amazon CloudWatch Observability EKS-Add-ons zu verwenden
  1. Verwenden Sie Folgendes: my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters, ersetzen 111122223333 Sie es durch Ihre Konto-ID und my-service-account-role ersetzen Sie es durch die IAM-Rolle, die im Zuordnungsschritt EKS Pod Identity erstellt wurde.

    Weitere Informationen finden Sie unter Resource: aws_eks_addon in der Terraform-Dokumentation.

  2. resource "aws_iam_role_policy_attachment" "CloudWatchAgentServerPolicy" { policy_arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" role = "my-role" } resource "aws_eks_addon" "example" { cluster_name = "my-cluster-name" addon_name = "amazon-cloudwatch-observability" pod_identity_associations { roleArn = "arn:aws:iam::111122223333:role/my-role" serviceAccount = "cloudwatch-agent" } }

Option 2: Installation mit IAM-Berechtigungen auf Worker-Knoten

Um diese Methode zu verwenden, fügen Sie zunächst die CloudWatchAgentServerPolicyIAM-Richtlinie Ihren Worker-Knoten hinzu, indem Sie den folgenden Befehl eingeben. Ersetzen Sie my-worker-node-role diesen Befehl durch die IAM-Rolle, die von Ihren Kubernetes-Worker-Knoten verwendet wird.

aws iam attach-role-policy \ --role-name my-worker-node-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Installieren Sie anschließend das Amazon CloudWatch Observability EKS-Add-on. Um das Add-on zu installieren, können Sie die AWS CLI, die Konsole oder CloudFormation Terraform verwenden.

AWS CLI
AWS CLI Um das Amazon CloudWatch Observability EKS-Add-on zu installieren

Geben Sie den folgenden Befehl ein. Ersetzen Sie my-cluster-name mit dem Namen Ihres Clusters.

aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name
Amazon EKS console
So verwenden Sie die Amazon EKS-Konsole, um das Amazon CloudWatch Observability EKS-Add-on hinzuzufügen
  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Cluster aus.

  3. Wählen Sie den Namen des Clusters, für den Sie das Amazon CloudWatch Observability EKS-Add-on konfigurieren möchten.

  4. Wählen Sie die Registerkarte Add-ons.

  5. Wählen Sie Weitere Add-Ons erhalten.

  6. Führen Sie auf der Seite Add-Ons auswählen die folgenden Schritte aus:

    1. Aktivieren Sie im Bereich Amazon EKS-Addons das Kontrollkästchen Amazon CloudWatch Observability.

    2. Wählen Sie Weiter aus.

  7. Gehen Sie auf der Seite Konfigurieren ausgewählter Add-Ons-Einstellungen wie folgt vor:

    1. Wählen Sie die Version aus, die Sie verwenden möchten.

    2. (Optional) Sie können Optionale Konfigurationseinstellungen erweitern. Wenn Sie Überschreiben für Methode zur Konfliktlösung auswählen, können eine oder mehrere der Einstellungen für das vorhandene Add-on mit den Einstellungen des Amazon-EKS-Add-ons überschrieben werden. Wenn Sie diese Option nicht aktivieren und ein Konflikt mit Ihren vorhandenen Einstellungen vorliegt, schlägt der Vorgang fehl. Sie können die sich daraus ergebende Fehlermeldung heranziehen, um den Konflikt zu beheben. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie selbst verwalten müssen.

    3. Wählen Sie Weiter aus.

  8. Wählen Sie auf der Seite Überprüfen und hinzufügen die Option Erstellen aus. Nachdem die Installation der Add-Ons abgeschlossen ist, wird Ihr installiertes Add-On angezeigt.

CloudFormation
CloudFormation Zur Installation des Amazon CloudWatch Observability EKS-Add-ons

Ersetzen Sie my-cluster-name mit dem Namen Ihres Clusters. Weitere Informationen finden Sie unter AWS::EKS::Addon.

{ "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name" } } } }
Helm chart
Um das amazon-cloudwatch-observability Helm-Chart zu verwenden
  1. Helm muss installiert sein, um dieses Diagramm verwenden zu können. Weitere Informationen zur Installation von Helm finden Sie in der Helm-Dokumentation.

  2. Geben Sie nach der Installation von Helm die folgenden Befehle ein. my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters und my-cluster-region ersetzen Sie es durch die Region, in der der Cluster ausgeführt wird.

    helm repo add aws-observability https://aws-observability.github.io/helm-charts helm repo update aws-observability helm install --wait --create-namespace --namespace amazon-cloudwatch amazon-cloudwatch-observability aws-observability/amazon-cloudwatch-observability --set clusterName=my-cluster-name --set region=my-cluster-region
Terraform
Um Terraform zur Installation des Amazon CloudWatch Observability EKS-Add-ons zu verwenden

Ersetzen Sie my-cluster-name mit dem Namen Ihres Clusters. Weitere Informationen finden Sie unter Resource: aws_eks_addon.

resource "aws_eks_addon" "example" { addon_name = "amazon-cloudwatch-observability" cluster_name = "my-cluster-name" }

Option 3: Installation mithilfe der IAM-Servicekonto-Rolle (gilt nur für die Verwendung des Add-ons)

Diese Methode ist nur gültig, wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden. Vor dem Verwenden dieser Methode, überprüfen Sie die folgenden Voraussetzungen:

  • Sie besitzen einen funktionsfähigen Amazon-EKS-Cluster mit angefügten Knoten in einer der AWS-Regionen , von denen Container Insights unterstützt wird. Eine Liste der unterstützten Regionen finden Sie unter Container Insights.

  • Sie haben kubectl für den Cluster installiert und konfiguriert. Weitere Informationen finden Sie unter Installieren von kubectl im Amazon-EKS-Benutzerhandbuch.

  • Sie haben eksctl installiert. Weitere Informationen finden Sie unter Installieren oder Aktualisieren von eksctl im Amazon-EKS-Benutzerhandbuch.

AWS CLI
AWS CLI Um das Amazon CloudWatch Observability EKS-Add-on mithilfe der IAM-Servicekontorolle zu installieren
  1. Geben Sie den folgenden Befehl ein, um einen OpenID-Connect-Anbieter (OIDC) zu erstellen, falls der Cluster noch keinen hat. Weitere Informationen finden Sie unter Konfigurieren eines Kubernetes-Servicekontos zur Übernahme einer IAM-Rolle im Amazon-EKS-Benutzerhandbuch.

    eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
  2. Geben Sie den folgenden Befehl ein, um die IAM-Rolle mit der angehängten CloudWatchAgentServerPolicyRichtlinie zu erstellen, und konfigurieren Sie das Agent-Servicekonto so, dass es diese Rolle mithilfe von OIDC übernimmt. my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters und my-service-account-role ersetzen Sie es durch den Namen der Rolle, der Sie das Dienstkonto zuordnen möchten. Wenn diese Rolle noch nicht vorhanden ist, erstellt eksctl sie für Sie.

    eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch --cluster my-cluster-name \ --role-name my-service-account-role \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --role-only \ --approve
  3. Installieren Sie das Add-On indem Sie den folgenden Befehl eingeben. my-cluster-nameErsetzen Sie es durch den Namen Ihres Clusters, 111122223333 ersetzen Sie es durch Ihre Konto-ID und my-service-account-role ersetzen Sie es durch die IAM-Rolle, die im vorherigen Schritt erstellt wurde.

    aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
Amazon EKS console
So verwenden Sie die Konsole zur Installation des Amazon CloudWatch Observability EKS-Add-ons mithilfe der IAM-Servicekontorolle
  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Cluster aus.

  3. Wählen Sie den Namen des Clusters, für den Sie das Amazon CloudWatch Observability EKS-Add-on konfigurieren möchten.

  4. Wählen Sie die Registerkarte Add-ons.

  5. Wählen Sie Weitere Add-Ons erhalten.

  6. Führen Sie auf der Seite Add-Ons auswählen die folgenden Schritte aus:

    1. Aktivieren Sie im Bereich Amazon EKS-Addons das Kontrollkästchen Amazon CloudWatch Observability.

    2. Wählen Sie Weiter aus.

  7. Gehen Sie auf der Seite Konfigurieren ausgewählter Add-Ons-Einstellungen wie folgt vor:

    1. Wählen Sie die Version aus, die Sie verwenden möchten.

    2. Wählen Sie für Add-on-Zugriff die Option IAM-Rollen für Servicekonten (IRSA) aus

    3. Wählen Sie im Feld Add-on-Zugriff die IAM-Rolle aus.

    4. (Optional) Sie können Optionale Konfigurationseinstellungen erweitern. Wenn Sie Überschreiben für Methode zur Konfliktlösung auswählen, können eine oder mehrere der Einstellungen für das vorhandene Add-on mit den Einstellungen des Amazon-EKS-Add-ons überschrieben werden. Wenn Sie diese Option nicht aktivieren und ein Konflikt mit Ihren vorhandenen Einstellungen vorliegt, schlägt der Vorgang fehl. Sie können die sich daraus ergebende Fehlermeldung heranziehen, um den Konflikt zu beheben. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie selbst verwalten müssen.

    5. Wählen Sie Weiter aus.

  8. Wählen Sie auf der Seite Überprüfen und hinzufügen die Option Erstellen aus. Nachdem die Installation der Add-Ons abgeschlossen ist, wird Ihr installiertes Add-On angezeigt.

Hinweise zu Amazon EKS Hybrid Nodes

Metriken auf Knotenebene sind für Hybridknoten nicht verfügbar, da dies von der Verfügbarkeit des EC2 Instance Metadata Service (IMDS) für Metriken auf Knotenebene Container Insights abhängt. Für Hybridknoten sind Metriken auf Cluster-, Workload-, Pod- und Container-Ebene verfügbar.

Nachdem Sie das Add-on gemäß den Schritten in den vorherigen Abschnitten installiert haben, müssen Sie das Add-on-Manifest aktualisieren, damit der Agent erfolgreich auf Hybridknoten ausgeführt werden kann. Bearbeiten Sie die amazoncloudwatchagents-Ressource im Cluster, um die Umgebungsvariable RUN_WITH_IRSA hinzuzufügen, die den folgenden Werten entspricht.

kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
apiVersion: v1
       items:
       - apiVersion: cloudwatch.aws.amazon.com/v1alpha1
         kind: AmazonCloudWatchAgent
         metadata:
           ...
           name: cloudwatch-agent
           namespace: amazon-cloudwatch
           ...
         spec:
           ...
           env:
           - name: RUN_WITH_IRSA # <-- Add this
             value: "True" # <-- Add this
           - name: K8S_NODE_NAME
             valueFrom:
               fieldRef:
                 fieldPath: spec.nodeName
                 ...
       

(Optional) Zusätzliche Konfiguration

Die Erfassung von Container-Protokollen deaktivieren

Standardmäßig verwendet das Add-on Fluent Bit, um Container-Logs von allen Pods zu sammeln und sendet die Logs dann an Logs. CloudWatch Informationen darüber, welche Protokolle gesammelt werden, finden Sie unter Einrichten von Fluent Bit.

Anmerkung

Weder das Add-on noch das Helm-Chart verwalten vorhandene Fluentd- oder Fluent Bit-Ressourcen in einem Cluster. Sie können die vorhandenen Fluentd- oder Fluent-Bit-Ressourcen löschen, bevor Sie das Add-on oder das Helm-Chart installieren. Alternativ können Sie Fluent Bit deaktivieren, indem Sie den Anweisungen in diesem Abschnitt folgen, um das vorhandene Setup beizubehalten und zu verhindern, dass das Add-on oder das Helm-Chart ebenfalls installiert werden.

Um die Erfassung von Container-Protokollen zu deaktivieren, wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden, übergeben Sie bei der Erstellung oder Aktualisierung des Add-ons die folgende Option:

--configuration-values '{ "containerLogs": { "enabled": false } }'

Um die Erfassung von Container-Protokollen zu deaktivieren, wenn Sie das Helm-Chart verwenden, übergeben Sie bei der Erstellung oder Aktualisierung des Add-ons die folgende Option:

--set containerLogs.enabled=false

Eine benutzerdefinierte Fluent Bit-Konfiguration verwenden

Ab Version 1.7.0 des Amazon CloudWatch Observability EKS-Add-ons können Sie die Fluent Bit-Konfiguration ändern, wenn Sie das Add-on oder das Helm-Diagramm erstellen oder aktualisieren. Sie geben die benutzerdefinierte Fluent Bit-Konfiguration im Abschnitt auf containerLogs Stammebene der erweiterten Konfiguration des Add-ons oder die Wertüberschreibungen im Helm-Chart an. In diesem Abschnitt geben Sie die benutzerdefinierte Fluent-Bit-Konfiguration im Abschnitt config (für Linux) oder im Abschnitt configWindows (für Windows) an. Die config ist in die folgenden Unterabschnitte unterteilt:

  • service: Dieser Abschnitt stellt die SERVICE-Konfiguration zur Definition des globalen Verhaltens der Fluent Bit-Engine dar.

  • customParsers: Dieser Abschnitt stellt alle globalen PARSER dar, die Sie einbeziehen möchten und die in der Lage sind, unstrukturierte Protokolleinträge zu verarbeiten und ihnen eine Struktur zu geben, um sie einfacher zu verarbeiten und weiter zu filtern.

  • extraFiles: Dieser Abschnitt kann verwendet werden, um zusätzliche Fluent-Bit conf-Dateien hinzuzufügen. Standardmäßig sind die folgenden 3 conf-Dateien enthalten:

    • application-log.conf— Eine conf Datei zum Senden von Anwendungsprotokollen von Ihrem Cluster an die Protokollgruppe /aws/containerinsights/my-cluster-name/application in Logs. CloudWatch

    • dataplane-log.conf— Eine conf Datei zum Senden von Protokollen, die den Datenebenenkomponenten Ihres Clusters entsprechen, einschließlich der CRI-Protokolle, Kubelet-Protokolle, Kube-Proxy-Protokolle und Amazon VPC-CNI-Protokolle, an die Protokollgruppe in Logs. /aws/containerinsights/my-cluster-name/dataplane CloudWatch

    • host-log.conf— A conf zum Senden von Protokollen von /var/log/dmesg/var/log/messages, und unter Linux und System unter Windows /var/log/secure winlogs an die Protokollgruppe in. /aws/containerinsights/my-cluster-name/host CloudWatch

Anmerkung

Geben Sie die vollständige Konfiguration für jeden dieser einzelnen Abschnitte an, auch wenn Sie nur ein Feld innerhalb eines Unterabschnitts ändern. Wir empfehlen, die unten angegebene Standardkonfiguration als Grundlage zu verwenden und sie dann zu ändern, damit Sie die standardmäßig aktivierten Funktionen nicht deaktivieren. Sie können die folgende YAML-Konfiguration verwenden, wenn Sie die erweiterte Konfiguration für das Amazon-EKS-Add-on ändern oder wenn Sie Wertüberschreibungen für das Helm-Chart angeben.

Den config Abschnitt für Ihren Cluster finden Sie unter aws-observability /helm-charts. Dort finden Sie die Version, die der Version des Add-ons oder Helm-Charts entspricht, das Sie installieren. GitHub Navigieren Sie dann zu /charts/amazon-cloudwatch-observability/values.yaml und zum Abschnitt config (für Linux) bzw. zum Abschnitt configWindows (für Windows) im Abschnitt fluentBit unter containerLogs.

Als Beispiel finden Sie hier die Standardkonfiguration für Fluent Bit für Version 1.7.0.

Wir empfehlen, dass Sie die config als YAML angeben, wenn Sie es mit der erweiterten Konfiguration des Amazon-EKS-Add-ons bereitstellen oder wenn Sie es als Wertüberschreibungen für Ihre Helm-Installation angeben. Stellen Sie sicher, dass das YAML die folgende Struktur hat.

containerLogs: fluentBit: config: service: | ... customParsers: | ... extraFiles: application-log.conf: | ... dataplane-log.conf: | ... host-log.conf: | ...

Im folgenden Beispiel config wird die globale Einstellung für das Bereinigungsintervall auf 45 Sekunden geändert. Auch wenn die einzige Änderung das Feld Flush betrifft, müssen Sie dennoch die vollständige SERVICE-Definition für den Service-Unterabschnitt angeben. Da in diesem Beispiel keine Überschreibungen für die anderen Unterabschnitte angegeben wurden, werden für sie die Standardwerte verwendet.

containerLogs: fluentBit: config: service: | [SERVICE] Flush 45 Grace 30 Log_Level error Daemon off Parsers_File parsers.conf storage.path /var/fluent-bit/state/flb-storage/ storage.sync normal storage.checksum off storage.backlog.mem_limit 5M

Die folgende Beispielkonfiguration beinhaltet eine zusätzliche Fluent-Bit conf-Datei. In diesem Beispiel fügen wir eine benutzerdefinierte my-service.conf unter extraFiles hinzu, zusätzlich zu den drei bestehenden standardmäßigen extraFiles.

containerLogs: fluentBit: config: extraFiles: my-service.conf: | [INPUT] Name tail Tag myservice.* Path /var/log/containers/*myservice*.log DB /var/fluent-bit/state/flb_myservice.db Mem_Buf_Limit 5MB Skip_Long_Lines On Ignore_Older 1d Refresh_Interval 10 [OUTPUT] Name cloudwatch_logs Match myservice.* region ${AWS_REGION} log_group_name /aws/containerinsights/${CLUSTER_NAME}/myservice log_stream_prefix ${HOST_NAME}- auto_create_group true

Im nächsten Beispiel wird eine bestehende conf-Datei vollständig von extraFiles entfernt. Die application-log.conf wird vollständig ausgeschlossen, indem sie mit einer leeren Zeichenfolge überschrieben wird. Würden Sie einfach application-log.conf in extraFiles weglassen, würde die Standardeinstellung verwendet, was wir in diesem Beispiel nicht wollen. Das Gleiche gilt für das Entfernen von benutzerdefinierten conf-Dateien, die Sie möglicherweise zuvor zu extraFiles hinzugefügt haben.

containerLogs: fluentBit: config: extraFiles: application-log.conf: ""

Verwalten von Kubernetes-Toleranzen für die installierten Pod-Workloads

Ab Version 1.7.0 des Amazon CloudWatch Observability EKS-Add-ons legen das Add-on und das Helm-Diagramm standardmäßig Kubernetes-Toleranzen fest, um alle Fehler in den Pod-Workloads zu tolerieren, die durch das Add-on oder das Helm-Diagramm installiert werden. Dadurch wird sichergestellt, dass Daemonsets wie der CloudWatch Agent und Fluent Bit standardmäßig Pods auf allen Knoten in Ihrem Cluster planen können. Weitere Informationen zu Taints und Toleranzen finden Sie unter Taints und Toleranzen in der Kubernetes-Dokumentation.

Die vom Add-on oder dem Helm-Chart festgelegten Standardtoleranzen lauten wie folgt:

tolerations: - operator: Exists

Sie können die Standardtoleranzen überschreiben, indem Sie das Feld tolerations auf der Stammebene festlegen, wenn Sie die erweiterte Konfiguration des Add-ons verwenden oder wenn Sie das Helm-Chart mit Wertüberschreibungen installieren oder aktualisieren. Ein Beispiel könnte folgendermaßen aussehen:

tolerations: - key: "key1" operator: "Exists" effect: "NoSchedule"

Um Toleranzen vollständig auszulassen, können Sie eine Konfiguration verwenden, die wie die folgende aussieht:

tolerations: []

Alle Änderungen an den Toleranzen gelten für alle Pod-Workloads, die durch das Add-on oder das Helm-Chart installiert werden.

Deaktivieren der Erfassung von Accelerated Compute-Metriken

Standardmäßig erfasst Container Insights mit verbesserter Observability Metriken für die Accelerated Compute-Überwachung, darunter NVIDIA-GPU-Metriken, AWS Neuron-Metriken für AWS Trainium und AWS Inferentia sowie AWS Elastic Fabric Adapter (EFA) -Metriken.

NVIDIA-GPU-Metriken von Amazon EKS-Workloads werden standardmäßig erfasst, beginnend mit v1.3.0-eksbuild.1 der Version des EKS-Add-ons oder des Helm-Diagramms und 1.300034.0 der Version des CloudWatch Agenten. Eine Liste der erfassten Metriken und der Voraussetzungen finden Sie unter NVIDIA-GPU-Metriken.

AWS Neuron-Metriken für AWS Trainium- und AWS Inferentia-Beschleuniger werden standardmäßig erfasst, beginnend mit v1.5.0-eksbuild.1 der Version des EKS-Add-ons oder des Helm-Diagramms und der Version des Agenten. 1.300036.0 CloudWatch Eine Liste der erfassten Metriken und der Voraussetzungen finden Sie unter AWS Neuronenmetriken für AWS Trainium und Inferentia AWS.

AWS Elastic Fabric Adapter (EFA) -Metriken von Linux-Knoten auf Amazon EKS-Clustern werden standardmäßig erfasst, beginnend mit v1.5.2-eksbuild.1 der Version des EKS-Add-ons oder des Helm-Diagramms und 1.300037.0 der Version des CloudWatch Agenten. Eine Liste der erfassten Metriken und der Voraussetzungen finden Sie unter AWS Metriken für Elastic Fabric Adapter (EFA) .

Sie können die Erfassung dieser Metriken deaktivieren, indem Sie das accelerated_compute_metrics Feld in der CloudWatch Agenten-Konfigurationsdatei auf false setzen. Dieses Feld befindet sich im kubernetes Abschnitt des metrics_collected Abschnitts in der CloudWatch Konfigurationsdatei. Im Folgenden finden Sie eine Opt-out-Beispielkonfiguration. Weitere Informationen zur Verwendung benutzerdefinierter CloudWatch Agentenkonfigurationen finden Sie im folgenden Abschnitt,Verwenden Sie eine benutzerdefinierte CloudWatch Agentenkonfiguration.

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true, "accelerated_compute_metrics": false } } } }

Verwenden Sie eine benutzerdefinierte CloudWatch Agentenkonfiguration

Um andere Metriken, Logs oder Traces mithilfe des CloudWatch Agenten zu erfassen, können Sie eine benutzerdefinierte Konfiguration angeben und gleichzeitig Container Insights und CloudWatch Application Signals aktiviert lassen. Betten Sie dazu die CloudWatch Agentenkonfigurationsdatei in den Konfigurationsschlüssel unter dem Agentenschlüssel der erweiterten Konfiguration ein, den Sie bei der Erstellung oder Aktualisierung des EKS-Add-ons oder des Helm-Diagramms verwenden können. Im Folgenden wird die standardmäßige Agentenkonfiguration dargestellt, wenn Sie keine zusätzliche Konfiguration angeben.

Wichtig

Jede benutzerdefinierte Konfiguration, die Sie mithilfe zusätzlicher Konfigurationseinstellungen angeben, hat Vorrang vor der vom Agenten verwendeten Standardkonfiguration. Achten Sie darauf, standardmäßig aktivierte Funktionen wie Container Insights mit verbesserter Beobachtbarkeit und CloudWatch Application Signals nicht ungewollt zu deaktivieren. In dem Szenario, bei dem Sie eine benutzerdefinierte Agentenkonfiguration bereitstellen müssen, empfehlen wir, die folgende Standardkonfiguration als Basiskonfiguration zu verwenden und sie dann entsprechend zu ändern.

  • Für die Verwendung des Amazon CloudWatch Observability EKS-Add-ons

    --configuration-values '{ "agent": { "config": { "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } } }'
  • Zur Verwendung des Helm-Charts

    --set agent.config='{ "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } }'

Das folgende Beispiel zeigt die Standard-Agentenkonfiguration für den CloudWatch Agenten unter Windows. Der CloudWatch Agent unter Windows unterstützt keine benutzerdefinierte Konfiguration.

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true }, } } }

Webhook-TLS-Zulassungszertifikate verwalten

Das Amazon CloudWatch Observability EKS-Add-on und das Helm-Diagramm nutzen Kubernetes-Zulassungswebhooks zur Validierung und Mutation sowie Instrumentation benutzerdefinierte Ressourcenanfragen (CR) AmazonCloudWatchAgent und optional Kubernetes-Pod-Anfragen auf dem Cluster, wenn Application Signals aktiviert ist. CloudWatch In Kubernetes benötigen Webhooks ein TLS-Zertifikat, dem der API-Server vertraut, um die sichere Kommunikation zu gewährleisten.

Standardmäßig generieren das Amazon CloudWatch Observability EKS-Add-on und das Helm-Diagramm automatisch eine selbstsignierte CA und ein von dieser CA signiertes TLS-Zertifikat, um die Kommunikation zwischen dem API-Server und dem Webhook-Server zu sichern. Dieses automatisch generierte Zertifikat hat eine Standardablaufzeit von 10 Jahren und wird nach Ablauf nicht automatisch verlängert. Darüber hinaus werden das CA-Paket und das Zertifikat jedes Mal neu generiert, wenn das Add-on oder das Helm-Chart aktualisiert oder neu installiert wird, wodurch der Ablauf zurückgesetzt wird. Wenn Sie den Standardablauf des automatisch generierten Zertifikats ändern möchten, können Sie beim Erstellen oder Aktualisieren des Add-Ons die folgenden zusätzlichen Konfigurationen verwenden. Ersetzen Sie es expiry-in-days durch die gewünschte Ablaufdauer in Tagen.

  • Verwenden Sie dies für das Amazon CloudWatch Observability EKS-Add-on

    --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }'
  • Verwenden Sie dies für das Helm-Chart

    --set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days

Für eine sicherere und featurereichere Zertifizierungsstellen-Lösung bietet das Add-On optionale Unterstützung für cert-manager, eine weit verbreitete Lösung für die Verwaltung von TLS-Zertifikaten in Kubernetes, die den Prozess der Beschaffung, Verlängerung, Verwaltung und Verwendung dieser Zertifikate vereinfacht. Dies stellt sicher, dass Zertifikate gültig und aktuell sind, und versucht, Zertifikate zu einem konfigurierten Zeitpunkt vor Ablauf zu erneuern. cert-manager erleichtert auch die Ausstellung von Zertifikaten aus einer Vielzahl unterstützter Quellen, einschließlich AWS Certificate Manager Private Certificate Authority.

Wir empfehlen Ihnen, sich mit den bewährten Methoden für die Verwaltung von TLS-Zertifikaten auf Ihren Clustern vertraut zu machen und sich für Produktionsumgebungen für cert-manager zu entscheiden. Beachten Sie, dass Sie, wenn Sie sich dafür entscheiden, den Cert-Manager für die Verwaltung der Zulassungs-Webhook-TLS-Zertifikate zu aktivieren, Cert-Manager auf Ihrem Amazon EKS-Cluster vorinstallieren müssen, bevor Sie das Amazon CloudWatch Observability EKS-Add-on oder das Helm-Diagramm installieren. Weitere Informationen zu den verfügbaren Installationsoptionen finden Sie in der cert-manager-Dokumentation. Nach der Installation können Sie sich dafür entscheiden, cert-manager für die Verwaltung der Webhook-TLS-Zugangszertifikate zu verwenden. Verwenden Sie dazu die folgende zusätzliche Konfiguration.

  • Wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden

    --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'
  • Wenn Sie das Helm-Chart verwenden

    --set admissionWebhooks.certManager.enabled=true
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'

Die in diesem Abschnitt beschriebene erweiterte Konfiguration verwendet standardmäßig einen SelfSignedEmittenten.

Amazon EBS-Volume sammeln IDs

Wenn Sie das Amazon EBS-Volume IDs in den Leistungsprotokollen erfassen möchten, müssen Sie der IAM-Rolle, die den Worker-Knoten oder dem Servicekonto zugeordnet ist, eine weitere Richtlinie hinzufügen. Fügen Sie Folgendes als eingebundenen Richtlinie hinzu. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes" ], "Resource": "*", "Effect": "Allow" } ] }

Erfassung von Java Management Extensions (JMX)-Metriken

Der CloudWatch Agent unterstützt die Erfassung von Java Management Extensions (JMX) -Metriken auf Amazon EKS. Sie können damit zusätzliche Metriken von Java-Anwendungen erfassen, die auf Amazon-EKS-Clustern ausgeführt werden, und Einblicke in Leistung, Speicherverbrauch, Datenverkehr und andere wichtige Metriken erhalten. Weitere Informationen finden Sie unter Erfassung von Java Management Extensions (JMX)-Metriken.

Aktivieren von Kueue-Metriken

Ab v2.4.0-eksbuild.1 der Version des CloudWatch Observability EKS-Add-ons unterstützt Container Insights for Amazon EKS die Erfassung von Kueue-Metriken aus Amazon EKS-Clustern. Weitere Informationen zu diesen Metriken finden Sie unter Kueue-Metriken .

Wenn Sie das Amazon SageMaker AI Hyperpod Task Governance EKS-Add-on verwenden, können Sie die Schritte im Abschnitt Voraussetzungen überspringen und einfach den Schritten unter folgen. Das Konfigurations-Flag aktivieren

Voraussetzungen

Bevor Sie Kueue in Ihrem Amazon-EKS-Cluster installieren, nehmen Sie die folgenden Aktualisierungen in der Manifestdatei vor:

  1. Aktivieren Sie die optionalen Cluster-Warteschlangenressourcen-Metriken für Kueue. Ändern Sie dazu die Inline controller_manager_config.yaml in der. kueue-system ConfigMap Fügen Sie im Abschnitt metrics die Zeile enableClusterQueueResources: true hinzu oder entfernen Sie sie.

    apiVersion: v1 data: controller_manager_config.yaml: | apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration health: healthProbeBindAddress: :8081 metrics: bindAddress: :8080 enableClusterQueueResources: true <-- ADD/UNCOMMENT THIS LINE
  2. Standardmäßig sind alle k8s-Services clusterweit verfügbar. Kueue erstellt den Service kueue-controller-manager-metrics-service zum Bereitstellen der Metriken. Um doppelte Beobachtungen für Metriken zu vermeiden, ändern Sie diesen Service so, dass nur der Zugriff auf den Metrik-Service von demselben Knoten aus möglich ist. Fügen Sie dazu die Zeile internalTrafficPolicy: Local zur Definition kueue-controller-manager-metrics-service hinzu.

    apiVersion: v1 kind: Service metadata: labels: ... name: kueue-controller-manager-metrics-service namespace: kueue-system spec: ports: - name: https port: 8443 protocol: TCP targetPort: https internalTrafficPolicy: Local <-- ADD THIS LINE selector: control-plane: controller-manager
  3. Schließlich erstellt der Pod kueue-controller-manager einen Container kube-rbac-proxy. Dieser Container wird derzeit ausführlich protokolliert, was dazu führt, dass das Bearer-Token des Clusters von diesem Container erfasst wird, wenn der Metrik-Scraper auf kueue-controller-manager-metrics-service zugreift. Es wird empfohlen, die Ausführlichkeit der Protokollierung zu verringern. Der Standardwert im von Kueue verteilten Manifest ist 10. Wir empfehlen, ihn auf 0 zu ändern.

    apiVersion: apps/v1 kind: Deployment metadata: labels: ... name: kueue-controller-manager namespace: kueue-system spec: ... template: ... spec: containers: ... - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=0 <-- CHANGE v=10 TO v=0 image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 name: kube-rbac-proxy ...

Das Konfigurations-Flag aktivieren

Um die Kueue-Metriken zu aktivieren, müssen Sie kueue_container_insights im Add-on aktivieren. Sie können dies entweder mit dem AWS CLI zur Einrichtung des EKS Observability Add-ons oder mit der Amazon EKS-Konsole tun.

Nachdem Sie das EKS Observability-Add-on mit einer der folgenden Methoden erfolgreich installiert haben, können Sie Ihre Amazon EKS-Cluster-Metriken auf der Registerkarte Dashboard der HyperPod Konsole einsehen.

AWS CLI
Um Kueue-Metriken zu aktivieren, verwenden Sie AWS CLI
  • Geben Sie den folgenden AWS CLI Befehl ein, um das Add-on zu installieren.

    aws eks create-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability --configuration-values "configuration_json_file"

    Im Folgenden finden Sie ein Beispiel für die JSON-Datei mit den Konfigurationswerten.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }
Amazon EKS console
So aktivieren Sie Kueue-Metriken mithilfe der Amazon-EKS-Konsole
  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie den Namen Ihres Clusters aus.

  3. Wählen Sie Add-ons aus.

  4. Suchen Sie das Amazon CloudWatch Observability-Add-on in der Liste und installieren Sie es. Wählen Sie Optionale Konfiguration aus und geben Sie die folgenden JSON-Konfigurationswerte an.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }

OpenTelemetry Collector-Konfigurationsdateien anhängen

Der CloudWatch Agent unterstützt neben seinen eigenen Konfigurationsdateien auch zusätzliche OpenTelemetry Collector-Konfigurationsdateien. Mit dieser Funktion können Sie CloudWatch Agentenfunktionen wie CloudWatch Application Signals oder Container Insights über die CloudWatch Agentenkonfiguration nutzen und Ihre bestehende OpenTelemetry Collector-Konfiguration mit einem einzigen Agenten integrieren.

Um Zusammenführungskonflikte mit automatisch vom CloudWatch Agenten erstellten Pipelines zu vermeiden, empfehlen wir, dass Sie jeder Komponente und Pipelines in Ihrer OpenTelemetry Collector-Konfiguration ein benutzerdefiniertes Suffix hinzufügen. Dadurch werden Komplikationen und Merge-Konflikte vermieden.

  • Wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden

    --configuration-values file://values.yaml

    oder

    --configuration-values ' agent: otelConfig: receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '
  • Wenn Sie das Helm-Chart verwenden

    --set agent.otelConfig=' receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '

Aktivierung von APM über Application Signals für Ihren Amazon EKS-Cluster

Standardmäßig wird die OpenTelemetry (OTEL) -basierte Anwendungsleistungsüberwachung (APM) über Application Signals aktiviert, wenn entweder das CloudWatch Observability EKS-Add-on (V5.0.0 oder höher) oder das Helm-Diagramm installiert wird. Sie können spezifische Einstellungen mithilfe der erweiterten Konfiguration für das Amazon-EKS-Add-on weiter anpassen oder indem Sie Werte mit dem Helm-Chart überschreiben.

Anmerkung

Wenn Sie eine OpenTelemetry (OTEL) -basierte APM-Lösung verwenden, wirkt sich die Aktivierung von Application Signals auf Ihr bestehendes Observability-Setup aus. Überprüfen Sie Ihre aktuelle Implementierung, bevor Sie fortfahren. Informationen zur Beibehaltung Ihres vorhandenen APM-Setups nach dem Upgrade auf Version 5.0.0 oder höher finden Sie unter. Melden Sie sich von Application Signals ab

Automatische Überwachung für Application Signals

Version 5.0.0 des Amazon EKS-Add-ons CloudWatch Observability und des Helm-Diagramms bietet neue Funktionen. Sie können Application Signals jetzt automatisch für alle oder bestimmte Service-Workloads in Ihrem EKS-Cluster über die Auto-Monitor-Konfiguration aktivieren. Die folgenden autoMonitor-Einstellungen können im Abschnitt applicationSignals unter dem Abschnitt manager der erweiterten Konfiguration angegeben werden.

  • monitorAllServices— Ein boolesches Flag, um die Überwachung aller Service-Workloads durch Auto Monitor zu aktivieren (true) oder zu deaktivieren (false). Standardwert ist „true“. Durch die Aktivierung dieses Flags wird sichergestellt, dass alle Kubernetes-Workloads (Deployments DaemonSets, und StatefulSets) im Cluster, die einem Kubernetes-Dienst zugeordnet sind, für die automatische Aktivierung von Application Signals gelten, wenn sie zum ersten Mal gestartet werden (oder wenn sie für bestehende Workloads neu gestartet werden). Das System schließt standardmäßig Workloads in den Namespaces kube-system und amazon-cloudwatch aus.

  • languages: Eine String-Liste, die angibt, mit welchen Sprachen Application Signals versuchen wird, Ihre Services automatisch zu instrumentieren, wenn monitorAllServices aktiviert ist. Standardmäßig werden alle unterstützten Sprachen verwendet.

  • restartPods: Ein boolesches Flag steuert, ob Workloads nach Konfigurationsänderungen neu gestartet werden. Standardwert "false". Durch die Aktivierung dieses Flags mit true wird gesteuert, ob Kubernetes-Workloads im Auto-Monitor-Bereich beim Speichern von Konfigurationsänderungen automatisch neu gestartet werden. Alle Einstellungen in Ihren Kubernetes-Workloads, die sich auf den Neustart der Pods auswirken, wie updateStrategy, werden berücksichtigt. Bedenken Sie, dass ein Neustart zu Serviceausfällen führen kann.

  • customSelector: Einstellungen zur Auswahl bestimmter Kubernetes-Namespaces oder Workloads für Auto-Monitor.

    • java: Geben Sie Workloads an, die automatisch mit Java instrumentiert werden sollen

    • python: Geben Sie Workloads an, die automatisch mit Python instrumentiert werden sollen

    • nodejs: Geben Sie Workloads an, die automatisch mit Node.js instrumentiert werden sollen

    • dotnet: Geben Sie Workloads an, die automatisch mit .NET instrumentiert werden sollen

    Für jede der oben genannten Sprachen können die folgenden Felder konfiguriert werden.

    • namespaces: Eine String-Liste der Namespaces, die ausgewählt werden können. Standardmäßig ist die Liste leer, also []

    • deployment: Eine String-Liste der Bereitstellungen, die ausgewählt werden können. Im Format namespace/deployment angeben. Standardmäßig ist die Liste leer, also []

    • daemonsets: Eine String-Liste der daemonsets, die ausgewählt werden können. Im Format namespace/daemonset angeben. Standardmäßig ist die Liste leer, also []

    • statefulsets: Eine String-Liste der statefulsets, die ausgewählt werden können. Im Format namespace/statefulset angeben. Standardmäßig ist die Liste leer, also []

  • exclude: Einstellungen zum Ausschluss bestimmter Kubernetes-Namespaces oder Workloads von Auto-Monitor. Das Ausschließen eines Workloads hat Vorrang, wenn derselbe Workload auch im Geltungsbereich von monitorAllServices oder customSelector liegt.

    • java: Geben Sie Workloads an, die nicht automatisch mit Java instrumentiert werden sollen

    • python: Geben Sie Workloads an, die nicht automatisch mit Python instrumentiert werden sollen

    • nodejs: Geben Sie Workloads an, die nicht automatisch mit Node.js instrumentiert werden sollen

    • dotnet: Geben Sie Workloads an, die nicht automatisch mit .NET instrumentiert werden sollen

    Für jede der oben genannten Sprachen können die folgenden Felder konfiguriert werden.

    • namespaces: Eine String-Liste der Namespaces, die ausgeschlossen werden sollen. Standardmäßig ist die Liste leer, also []

    • deployment: Eine String-Liste der Bereitstellungen, die ausgeschlossen werden sollen. Im Format namespace/deployment angeben. Standardmäßig ist die Liste leer, also []

    • daemonsets: Eine String-Liste der daemonsets, die ausgeschlossen werden sollen. Im Format namespace/daemonset angeben. Standardmäßig ist die Liste leer, also []

    • statefulsets: Eine String-Liste der statefulsets, die ausgeschlossen werden sollen. Im Format namespace/statefulset angeben. Standardmäßig ist die Liste leer, also []

Im Folgenden finden Sie eine Beispielkonfiguration, die Application Signals automatisch für alle vorhandenen und neuen Service-Workloads auf dem Cluster aktiviert.

manager: applicationSignals: autoMonitor: monitorAllServices: true restartPods: true

Im Folgenden finden Sie eine Beispielkonfiguration, die Application Signals automatisch für jeden neuen Service-Workload aktiviert, der gestartet wird, und für jeden vorhandenen Service-Workload, der explizit auf dem Cluster neu gestartet wird.

manager: applicationSignals: autoMonitor: monitorAllServices: true

Die folgende Beispielkonfiguration aktiviert automatisch Application Signals mit Java für alle vorhandenen und neuen Pods, die einem Workload im Namespace pet-warehouse entsprechen.

manager: applicationSignals: autoMonitor: restartPods: true customSelector: java: namespaces: ["pet-warehouse"]

Im Folgenden finden Sie eine Beispielkonfiguration, die Application Signals with Python automatisch für alle vorhandenen und neuen Service-Workloads im Cluster mit Ausnahme der Bereitstellung pet-clinic aktiviert.

manager: applicationSignals: autoMonitor: monitorAllServices: true languages: ["python"] restartPods: true exclude: python: deployments: ["pet-warehouse/pet-clinic"]

Im Folgenden finden Sie eine Beispielkonfiguration, die Application Signals mit Java automatisch für alle Service-Workloads im Cluster mit Ausnahme der Workloads im Namespace python-apps aktiviert und außerdem Application Signals mit Python speziell für die Bereitstellung sample-python-app im Namespace python-apps aktiviert.

manager: applicationSignals: autoMonitor: monitorAllServices: true languages: ["java"] restartPods: true customSelector: python: deployments: ["python-apps/sample-python-app"] exclude: java: namespaces: ["python-apps"]

Fehlerbehebung beim Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm

Verwenden Sie die folgenden Informationen, um Probleme mit dem Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm zu beheben

Aktualisieren und Löschen des Amazon CloudWatch Observability EKS-Add-ons oder des Helm-Diagramms

Anweisungen zum Aktualisieren oder Löschen des Amazon CloudWatch Observability EKS-Add-ons finden Sie unter Amazon EKS-Add-Ons verwalten. Verwenden Sie als amazon-cloudwatch-observability Name des Add-Ons.

Geben Sie den folgenden Befehl ein, um das Helm-Chart in einem Cluster zu löschen:

helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait

Überprüfen Sie die Version des CloudWatch Agenten, die vom Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm verwendet wird

Das Amazon CloudWatch Observability EKS-Add-on und das Helm-Diagramm installieren eine benutzerdefinierte Art von RessourceAmazonCloudWatchAgent, die das Verhalten des CloudWatch Agenten-Daemonsets auf dem Cluster steuert, einschließlich der Version des verwendeten CloudWatch Agenten. Sie können eine Liste aller auf Ihrem Cluster installierten, benutzerdefinierten AmazonCloudWatchAgent-Ressourcen abrufen, indem Sie den folgenden Befehl eingeben:

kubectl get amazoncloudwatchagent -A

In der Ausgabe dieses Befehls sollten Sie in der Lage sein, die Version des Agenten zu überprüfen. CloudWatch Alternativ können Sie auch die amazoncloudwatchagent-Ressource oder einen der cloudwatch-agent-*-Pods beschreiben, die auf Ihrem Cluster ausgeführt werden, um das verwendete Image zu überprüfen.

Umgang mit a ConfigurationConflict bei der Verwaltung des Add-ons oder des Helm-Charts

Wenn Sie bei der Installation oder Aktualisierung des Amazon CloudWatch Observability EKS-Add-ons oder des Helm-Diagramms einen Fehler feststellen, der durch vorhandene Ressourcen verursacht wird, liegt dies wahrscheinlich daran, dass Sie den CloudWatch Agenten und die zugehörigen Komponenten wie den ServiceAccount, den ClusterRole und den bereits auf dem Cluster ClusterRoleBinding installiert haben.

Der vom Add-on angezeigte Fehler beinhaltet: Conflicts found when trying to apply. Will not continue due to resolve conflicts mode

Der im Helm-Chart angezeigte Fehler wird ähnlich sein wie Error: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata..

Wenn das Add-on oder das Helm-Diagramm versucht, den CloudWatch Agenten und die zugehörigen Komponenten zu installieren, und wenn es eine Änderung des Inhalts feststellt, schlägt die Installation oder Aktualisierung standardmäßig fehl, um zu verhindern, dass der Status der Ressourcen auf dem Cluster überschrieben wird.

Wenn Sie versuchen, das Amazon CloudWatch Observability EKS-Add-on zu integrieren und dieser Fehler auftritt, empfehlen wir, ein vorhandenes CloudWatch Agenten-Setup zu löschen, das Sie zuvor auf dem Cluster installiert hatten, und dann das EKS-Add-on oder das Helm-Diagramm zu installieren. Stellen Sie sicher, dass Sie alle Anpassungen, die Sie möglicherweise am ursprünglichen CloudWatch Agenten-Setup vorgenommen haben, wie z. B. eine benutzerdefinierte Agentenkonfiguration, sichern und diese bei der nächsten Installation oder Aktualisierung in das Add-on oder das Helm-Diagramm übernehmen. Wenn Sie den CloudWatch Agenten für das Onboarding in Container Insights bereits installiert hatten, finden Sie Der CloudWatch Agent und Fluent Bit für Container Insights werden gelöscht weitere Informationen unter.

Alternativ unterstützt das Add-On eine Konfigurationsoption zur Konfliktlösung, die OVERWRITE spezifizieren kann. Sie können diese Option verwenden, um mit der Installation oder Aktualisierung des Add-Ons fortzufahren, indem Sie die Konflikte auf dem Cluster überschreiben. Wenn Sie die Amazon-EKS-Konsole verwenden, finden Sie die Methode zur Konfliktlösung, wenn Sie beim Erstellen oder Aktualisieren des Add-Ons die optionalen Konfigurationseinstellungen auswählen. Wenn Sie den verwenden AWS CLI, können Sie den in Ihren Befehl eingeben, --resolve-conflicts OVERWRITE um das Add-on zu erstellen oder zu aktualisieren.

Melden Sie sich von Application Signals ab

Passen Sie Ihre Einstellungen für die Dienstüberwachung in der CloudWatch Konsole oder mit dem SDK an.

Gehen Sie für Versionen vor 5.0.0 wie folgt vor, um die automatische Überwachung von Application Signals zu deaktivieren:

CLI oder SDK verwenden

Die folgende Konfiguration kann entweder als erweiterte Konfiguration für das EKS-Add-On oder als Werteüberschreibung bei Verwendung des Helmdiagramms angewendet werden.

{ "manager": { "applicationSignals": { "autoMonitor": { "monitorAllServices": false } } } }

Starten Sie Ihre Dienste neu, damit die Änderungen wirksam werden.

Verwenden der Konsole

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

  1. Wählen Sie im Navigationsbereich unter Application Signals (APM) die Option Services aus.

  2. Wählen Sie „Anwendungssignale aktivieren“, um die Aktivierungsseite aufzurufen.

  3. Deaktivieren Sie das Kontrollkästchen Automatische Überwachung für jeden Dienst, den Sie nicht überwachen möchten.

  4. Starten Sie Ihre Dienste neu, damit die Änderungen wirksam werden.