Wie erhalte ich SSM-Agent-Protokolle für Fargate-Aufgaben, bei denen Amazon ECS Exec aktiviert ist?

Lesedauer: 4 Minute
0

Ich möchte die Protokolle des AWS Systems Manager Agent (SSM Agent) für AWS Fargate-Aufgaben abrufen, für die Amazon Elastic Container Service (Amazon ECS) Exec aktiviert ist. Aber ich weiß nicht wie.

Kurzbeschreibung

Bevor Sie Amazon ECS Exec verwenden, sehen Sie sich die Voraussetzungen für die Verwendung von ECS Exec an.

Um SSM-Agent-Protokolle für Fargate-Aufgaben abzurufen, bei denen ECS Exec aktiviert ist, erstellen Sie ein Amazon Elastic File System (Amazon EFS)-Dateisystem. Mounten Sie dann das Amazon EFS-Dateisystem auf dem Fargate-Container. Anschließend mounten Sie dasselbe Dateisystem auf einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance, um die Protokolle des SSM-Agents zu erhalten.

Wichtig: Das Amazon-EFS-Dateisystem, der Amazon-ECS-Cluster und die Fargate-Aufgaben müssen sich alle in derselben Amazon Virtual Private Cloud (Amazon VPC) befinden.

Hinweis: Die folgende Lösung gilt nur für Fargate-Aufgaben, bei denen ECS Exec aktiviert ist. Verwenden Sie die Lösungsschritte ausschließlich zum Debuggen. Um zu vermeiden, dass Protokolle überschrieben werden, starten Sie den Vorgang als eigenständige Aufgabe oder setzen Sie desiredCount für die Aufgaben in Ihrem Amazon ECS-Service auf „1“. Sie können die folgende Lösung auch für Szenarien verwenden, in denen Sie Protokolle ohne stderr/stdout aus den Containern überprüfen müssen.

Lösung

Erstellen Sie Ihr Amazon-EFS-Dateisystem und mounten Sie es in einer Aufgabe oder einem Service auf einem Fargate-Container.

  1. Erstellen Sie Ihr Amazon-EFS-Dateisystem.
  2. Notieren Sie sich die Amazon-EFS-ID und die Sicherheitsgruppen-ID.
  3. Bearbeiten Sie die Regeln für die Sicherheitsgruppe des Dateisystems, um eingehende Verbindungen über Port 2049 von der Sicherheitsgruppe zuzulassen, die mit Ihrer Fargate-Aufgabe verknüpft ist.
  4. Aktualisieren Sie Ihre Amazon ECS-Sicherheitsgruppe, um ausgehende Verbindungen auf Port 2049 zur Sicherheitsgruppe Ihres Dateisystems zuzulassen.
  5. Öffnen Sie die Amazon ECS-Konsole und navigieren Sie zu Ihrer Amazon-ECS-Aufgabendefinition.
  6. Wählen Sie im Abschnitt Volumes die Option Add volume (Volume hinzufügen) aus.
  7. Geben Sie unter Name einen Namen für Ihr Volume ein.
  8. Geben Sie als Volume type (Volume-Typ) „EFS“ ein.
  9. Geben Sie als File system ID (Dateisystem-ID) die ID für Ihr Dateisystem ein.
  10. Navigieren Sie im Abschnitt Containers definition (Container-Definition) zum Abschnitt STORAGE AND LOGGING (Speicher und Protokollierung) und wählen Sie das Volume aus, das Sie für das Quell-Volume erstellt haben.
  11. Wählen Sie als Container path (Containerpfad) /var/log/amazon aus.
  12. Aktualisieren Sie den Fargate-Service oder die Fargate-Aufgabe mit der von Ihnen erstellten Aufgabendefinition.

Das Amazon-EFS-Dateisystem auf einer Amazon-EC2-Instance mounten und SSM-Agent-Protokolle abrufen

1.    Mounten Sie Ihr Dateisystem auf einer EC2-Instance.

2.    Führen Sie den folgenden Befehl aus, um die Protokolldaten abzurufen:

sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-01b0bxxxxxxxx.efs.ap-southeast-1.amazonaws.com:/ /efs

Beispielausgabe:

# df -h
Filesystem                                          Size  Used Avail Use% Mounted on
fs-01b0bxxxxxxxx.efs.us-west-2.amazonaws.com:/      8.0E     0  8.0E   0% /efs

Das Folgende ist ein Beispiel für Protokolle, die im Pfad /var/log/amazon/ssm/amazon-ssm-agent.log im Fargate-Container gespeichert sind:

[root@ip-172-31-32-32 efs]# cd ssm/
[root@ip-172-31-32-32 ssm]# ls
amazon-ssm-agent.log  audits
[root@ip-172-31-32-32 ssm]# cat amazon-ssm-agent.log | tail -n 10
2022-10-20 11:50:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] ended idempotency deletion thread
2022-10-20 11:50:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 11:50:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
2022-10-20 11:55:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 11:55:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
2022-10-20 12:00:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] started idempotency deletion thread
2022-10-20 12:00:34 WARN [ssm-agent-worker] [MessageService] [MessageHandler] [Idempotency] encountered error open /var/lib/amazon/ssm/170b15cacf5846ed836bcd7903cbee48-2531612879/idempotency: no such file or directory while listing replies in /var/lib/amazon/ssm/170b15cacf5846ed836bcd7903cbee48-2531612879/idempotency
2022-10-20 12:00:34 INFO [ssm-agent-worker] [MessageService] [MessageHandler] ended idempotency deletion thread
2022-10-20 12:00:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread started
2022-10-20 12:00:37 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] send failed reply thread done
[root@ip-172-31-32-32 ssm]#

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr