Wie erhalte ich SSM-Agentenprotokolle für Fargate-Aufgaben, für die Amazon ECS Exec aktiviert ist?
Ich möchte AWS Systems Manager Agent (SSM Agent) -Protokolle für AWS Fargate-Aufgaben abrufen, für die Amazon Elastic Container Service (Amazon ECS) Exec aktiviert ist.
Kurzbeschreibung
Voraussetzung:
Erfüllen Sie die Anforderungen für die Verwendung von ECS Exec.
Um SSM-Agentenprotokolle für Fargate-Aufgaben abzurufen, für die 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. Mounten Sie schließlich dasselbe Dateisystem auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance, um die SSM Agentenprotokolle abzurufen.
Wichtig: Bevor Sie das EFS-Dateisystem mounten, müssen Sie eine Amazon EC2-Instance starten. Ihr Amazon EFS-Dateisystem, Ihr Amazon ECS-Cluster und Ihre Fargate-Aufgaben müssen sich in derselben Amazon Virtual Private Cloud (Amazon VPC) befinden.
Lösung
Anmerkung: Die folgende Lösung gilt nur für Fargate-Aufgaben, bei denen ECS Exec aktiviert ist. Verwenden Sie die Lösungsschritte nur zum Debuggen. Um sicherzugehen, dass Sie Ihre Protokolle nicht überschreiben, starten Sie die Aufgabe als eigenständige Aufgabe. Oder belassen Sie die desiredCount an Aufgaben in Ihrem Amazon ECS-Service auf „1“. Sie können die folgende Lösung auch für Szenarien verwenden, in denen Sie Protokolle aus den Containern überprüfen müssen, die nicht stderr/stdout sind.
Erstellen Ihres Amazon EFS-Dateisystems und Mounten auf einem Fargate-Container
Gehen Sie wie folgt vor, um Ihr Amazon EFS-Dateisystem zu erstellen und es in einem Fargate-Container in einer Aufgabe oder einem Service bereitzustellen:
- Erstellen Sie Ihr Amazon EFS-Dateisystem.
- Notieren Sie sich die Amazon EFS-ID und die Sicherheitsgruppen-ID.
- Bearbeiten Sie die Sicherheitsgruppenregeln Ihres Dateisystems, um eingehende Verbindungen auf Port 2049 von der Sicherheitsgruppe zuzulassen, die Ihrer Fargate-Aufgabe zugeordnet ist.
- Aktualisieren Sie Ihre Amazon ECS-Sicherheitsgruppe, um ausgehende Verbindungen auf Port 2049 zur Sicherheitsgruppe Ihres Dateisystems zuzulassen.
- Öffnen Sie die Amazon-ECS-Konsole.
- Wählen Sie im Navigationsbereich Aufgabendefinitionen und dann Ihre Aufgabendefinition aus.
- Wählen Sie Neue Revision erstellen.
- Wählen Sie unter Speicher für Volumes die Option Volume hinzufügen aus. Geben Sie dann folgende Informationen ein
Geben Sie unter Volume-Name einen Namen für Ihr Volume ein.
Geben Sie als Volumetyp ** EFS** ein.
Geben Sie als Dateisystem-ID die ID für Ihr Dateisystem ein. - Wählen Sie für Container-Mountpunkte die Option Mountpunkt hinzufügen aus. Geben dann Sie folgende Informationen ein:
Wählen Sie für Container Ihren Container aus.
Wählen Sie für Quellvolume das Quellvolume aus.
Geben Sie für den Containerpfad /var/log/amazon ein. - Wählen Sie Erstellen.
Anmerkung: Bevor Sie das Amazon EFS-Dateisystem auf einer Amazon EC2-Instance mounten, muss sich die Aufgabe im Status Wird ausgeführt befinden.
Mounten Sie das Amazon EFS-Dateisystem auf einer Amazon EC2-Instance und rufen Sie die SSM-Agentenprotokolle ab
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Führen Sie die folgenden Schritte aus:
-
Führen Sie den folgenden AWS CLI-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]#
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren