Wie konfiguriere ich CloudWatch Container Insights, um meine ECS-Aufgaben und die Container-Bereitstellung zu überwachen?

Zuletzt aktualisiert: 08.04.2022

Ich möchte Amazon CloudWatch Container Insights so konfigurieren, dass es meine Amazon Elastic Container Service (Amazon ECS)-Aufgaben und die Container-Bereitstellung überwacht. Wie kann ich vorgehen?

Kurzbeschreibung

Container Insights sammelt Metriken auf der Cluster-, Aufgaben- und Service-Ebene. Diese Metriken umfassen die Verwendung von Ressourcen wie CPU, Arbeitsspeicher, Festplatte und Netzwerk und sie sind in automatischen CloudWatch-Dashboards verfügbar.

Sie können Amazon ECS so konfigurieren, dass standardmäßig alle neuen Cluster für Container Insights aktiviert werden. Oder Sie können Container Insights auf einzelnen Clustern mithilfe der Cluster-Einstellungen während der Clustererstellung aktivieren. Sie können Container Insights auch auf vorhandenen Clustern mithilfe der AWS Command Line Interface (AWS CLI) aktivieren.

Auflösung

Hinweis: Wenn beim Ausführen von AWS-CLI-Befehlen Fehler gemeldet werden, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

Kontoeinstellungen ändern

Aktivieren Sie Container Insights für alle neuen Cluster, die erstellt werden, indem Sie die Kontoeinstellung für Container Insights wählen.

Ändern der Kontoeinstellungen mit der CloudWatch-Konsole

  1. Öffnen Sie die Amazon-ECS-Konsole.
  2. Wählen Sie im Navigationsbereich die Region aus, für die Sie die Kontoeinstellungen ändern möchten.
  3. Wählen Sie Account settings (Kontoeinstellungen).
  4. Im Abschnitt CloudWatch Container Insights können Sie das Kontrollkästchen für jede Kontoeinstellung für den authentifizierten AWS Identity and Access Management (IAM)-Benutzer und -Rollen aktivieren oder deaktivieren. Wählen Sie anschließend Save (Speichern).
  5. Wählen Sie auf dem Bestätigungsbildschirm Confirm (Bestätigen), um die Auswahl zu speichern.

Wenn Sie sich als Root-Benutzer des AWS-Kontos anmelden, können Sie die Standardeinstellung des Kontos ändern. Oder Sie können die Einstellung eines bestimmten IAM-Benutzers oder einer IAM-Rolle im Konto ändern.

Ändern der Standardkontoeinstellungen für alle IAM-Benutzer oder -Rollen in Ihrem Konto (AWS CLI)

Verwenden Sie diesen Befehl, um die Standardkontoeinstellung für alle IAM-Benutzer oder -Rollen in Ihrem Konto zu ändern. Die daraus resultierenden Änderungen gelten für das gesamte AWS-Konto, sofern nicht ein IAM-Benutzer oder eine IAM-Rolle diese Einstellungen explizit überschreibt.

aws ecs put-account-setting-default --name containerInsights --value enabled --region <REGION_NAME>

Weitere Informationen finden Sie unter Kontoeinstellungen ändern.

Erstellen eines Clusters mit aktivierten Container Insights

Sie können entweder die Amazon-ECS-Konsole oder die AWS CLI verwenden, um Container Insights während der Clustererstellung zu aktivieren.

Erstellen eines Clusters mit aktivierten Container Insights mithilfe der Konsole

Hinweis: Stellen Sie sicher, dass Sie die neue Amazon-ECS-Konsole (v2) verwenden, um diese Schritte abzuschließen. Wenn Sie die klassische Konsole verwenden möchten, lesen Sie Erstellen eines Clusters mit der klassischen Konsole.

  1. Öffnen Sie die neue Amazon-ECS-Konsole.
  2. Wählen Sie im Navigationsbereich die Region aus, in der Sie Ihren Cluster erstellen möchten.
  3. Wählen Sie Clusters und dann Create cluster (Cluster erstellen).
  4. Wählen Sie im Abschnitt der Cluster-Konfiguration die erforderlichen Einstellungen aus, um Ihren Cluster zu erstellen.
  5. Erweitern Sie Monitoring (Überwachung) und aktivieren Sie dann Use Container Insights (Container Insights verwenden).
  6. Wählen Sie Create (Erstellen).

Erstellen eines Clusters mit aktivierten Container Insights mithilfe der AWS CLI

Führen Sie diesen Befehl aus, um einen neuen Cluster mit aktivierten Container Insights zu erstellen:

aws ecs create-cluster --cluster-name <CLUSTER_NAME> --settings "name=containerInsights,value=enabled" --region <REGION_NAME>

Container Insights auf einem vorhandenen Amazon-ECS-Cluster aktivieren

Führen Sie diesen Befehl aus, um Container Insights auf einem vorhandenen Cluster zu aktivieren:

aws ecs update-cluster-settings --cluster <CLUSTER_NAME> --settings name=containerInsights,value=enabled --region <REGION_NAME>

Überlegungen zu Container Insights

Wenn Sie CloudWatch Container Insights verwenden, sollten Sie Folgendes beachten:

  • Wenn Sie einen Amazon Elastic Compute Cloud (Amazon EC2)-Launchtyp verwenden, muss Ihre Aufgabe keine Container-CPU-Ressourcenkonfigurationen haben. Um CPU-Auslastungsmetriken auf ECS-Aufgabenebene anzuzeigen, definieren Sie den CPU-Parameter auf Aufgabenebene oder Container-Ebene in der Aufgabendefinition.
  • Netzwerkmetriken sind für alle Aufgaben verfügbar, die auf AWS Fargate ausgeführt werden. Netzwerkmetriken sind auch für Aufgaben verfügbar, die auf Amazon-EC2-Instances mit dem Netzwerkmodus bridge oder awsvpc ausgeführt werden.
  • Um Metriken auf Instance-Ebene von ECS-Clustern zu sammeln, die auf einer EC2-Instance gehostet werden, stellen Sie den CloudWatch-Agenten bereit.

Verwenden Sie CloudWatch Logs Insights, um Container-Insights-Daten anzuzeigen

Die von Containers Insights für Amazon ECS gesammelten Metriken sind nicht detailliert genug, um die Verfolgung einzelner Aufgaben zu ermöglichen. Dies liegt daran, dass die verfügbaren Metriken alle auf der Ebene der Aufgabendefinitions-Familie aggregiert werden und der Durchschnitt von ihnen ermittelt wird. Verwenden Sie Abfragen an CloudWatch Logs Insights, um eine tiefere Analyse der erfassten Leistungsdaten durchzuführen.

Die Leistungsmetriken von Container Insights werden automatisch in Form von Protokollen mithilfe von Leistungsprotokoll-Ereignissen erfasst. Öffnen Sie die Konsole von CloudWatch Logs Insights und wählen Sie eine Protokollgruppe in diesem Format aus:

/aws/ecs/containerinsights/<CLUSTER_NAME>/performance

Diese Abfrage zeigt beispielsweise die Auslastung auf Aufgabenebene für CPU und Arbeitsspeicher an:

stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId
| filter Type="Task"
| sort Mem, CPU desc