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.
Fehlerbehebung bei Amazon ECS Managed Instances
Verwenden Sie die folgenden Verfahren, um Amazon ECS Managed Instances zu beheben, einschließlich häufiger Probleme, Diagnosetechniken und Lösungsschritte.
Voraussetzungen
Stellen Sie vor der Fehlerbehebung bei Amazon ECS Managed Instances sicher, dass Sie die folgenden Anforderungen erfüllen.
-
Das AWS CLI ist mit den entsprechenden Berechtigungen installiert und konfiguriert
Weitere Informationen finden Sie unter Installieren oder Aktualisieren auf die neueste Version der AWS Command Line Interface im Benutzerhandbuch für AWS Command Line Interface .
Zugriff auf einen Cluster mit dem Kapazitätsanbieter Amazon ECS Managed Instances. Weitere Informationen finden Sie unter Erstellen eines Clusters für Amazon ECS Managed Instances.
Allgemeine Problembehandlungsszenarien
Container-Agent-Protokolle für Amazon ECS Managed Instances anzeigen
Sie können diese Amazon ECS-Protokolldateien in Amazon ECS Managed Instances anzeigen, indem Sie eine Verbindung zu einem privilegierten Container herstellen, der in der Instance ausgeführt wird.
Schritte zur Diagnose
Stellen Sie einen Debug-Container mit Rechten und Linux-Funktionen als Amazon ECS-Aufgabe bereit:
Legen Sie die folgenden Umgebungsvariablen fest.
Ersetzen Sie die user-input durch Ihre Werte.
export ECS_CLUSTER_NAME="your-cluster-name" export AWS_REGION="your-region" export ACCOUNT_ID="your-account-id"
Erstellen Sie eine Aufgabendefinition mit einer CLI JSON-Datei namensnode-debugger.json.
cat << EOF > node-debugger.json { "family": "node-debugger", "taskRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "cpu": "256", "memory": "1024", "networkMode": "host", "pidMode": "host", "requiresCompatibilities": ["MANAGED_INSTANCES", "EC2"], "containerDefinitions": [ { "name": "node-debugger", "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "essential": true, "privileged": true, "command": ["sleep", "infinity"], "healthCheck": { "command": ["CMD-SHELL", "echo debugger || exit 1"], "interval": 30, "retries": 3, "timeout": 5 }, "linuxParameters": { "initProcessEnabled": true }, "mountPoints": [ { "sourceVolume": "host-root", "containerPath": "/host", "readOnly": false } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/aws/ecs/node-debugger", "awslogs-create-group": "true", "awslogs-region": "${AWS_REGION}", "awslogs-stream-prefix": "ecs" } } } ], "volumes": [ { "name": "host-root", "host": { "sourcePath": "/" } } ] } EOF
Registrieren Sie sich und führen Sie dann die Aufgabe aus. Führen Sie die folgenden Befehle aus.
aws ecs register-task-definition --cli-input-json file://node-debugger.json TASK_ARN=$(aws ecs run-task \ --cluster $ECS_CLUSTER_NAME \ --task-definition node-debugger \ --enable-execute-command \ --capacity-provider-strategy capacityProvider=managed-instances-default,weight=1 \ --query 'tasks[0].taskArn' --output text) # Wait for task to be running aws ecs wait tasks-running --cluster $ECS_CLUSTER_NAME --tasks $TASK_ARN
Connect zum Container her. Führen Sie den folgenden Befehl aus.
aws ecs execute-command \ --cluster $ECS_CLUSTER_NAME \ --task $TASK_ARN \ --container node-debugger \ --interactive \ --command "/bin/sh"
Überprüfen Sie die Amazon ECS-Agentenprotokolle:
Führen Sie in der interaktiven Sitzung des Containers die folgenden Befehle aus:
# Install required tools yum install -y util-linux-core # View ECS agent logs nsenter -t 1 -m -p cat /var/log/ecs/ecs-agent.log | tail -50 # Check agent registration nsenter -t 1 -m -p grep "Registered container instance" /var/log/ecs/ecs-agent.log Example Output: {"level":"info","time":"2025-10-16T12:39:37.665","msg":"Registered container instance with cluster!"} # Verify capabilities nsenter -t 1 -m -p grep "Response contained expected value for attribute" /var/log/ecs/ecs-agent.log
Überprüfen Sie die Agent-Metriken:
Führen Sie den folgenden Befehl aus, um die Protokolle anzuzeigen.
# View metrics logs nsenter -t 1 -m -p cat /var/log/ecs/metrics.log | tail -20
Probleme bei der Aufgabenplatzierung
Im Folgenden sind Symptome von Problemen bei der Aufgabenverteilung aufgeführt:
Aufgaben bleiben im Status AUSSTEHEND hängen
Aufgaben konnten auf Amazon ECS Managed Instances nicht gestartet werden
Fehler bei unzureichenden Ressourcen
Diagnoseschritte
Führen Sie die folgenden Befehle aus, um Probleme mit der Aufgabenplatzierung zu diagnostizieren und Informationen über Clusterkapazität, Container-Instances und Systemdienste zu sammeln:
# Check cluster capacity aws ecs describe-clusters --clusterscluster-name--include STATISTICS # Check cluster capacity providers aws ecs describe-clusters --clusterscluster-name--include STATISTICS --query 'clusters[].capacityProviders' # List container instances aws ecs list-container-instances --clustercluster-name# Check container instance details aws ecs describe-container-instances --clustercluster-name--container-instancescontainer-instance-arn# Check container instance remaining resources CPU/Mem aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instancescontainer-instance-arn--query 'containerInstances[].remainingResources' # Check container instance Security Group aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instancescontainer-instance-arn--query 'containerInstances[].ec2InstanceId' --output text aws ec2 describe-instances --instance-idsinstance-id--query 'Reservations[0].Instances[0].SecurityGroups' aws ec2 describe-security-groups --group-ids security-group-id
Überwachung der Systemdienste:
# Check Containerd status nsenter -t 1 -m -p systemctl status containerd.service # Check Amazon ECS container agent status nsenter -t 1 -m -p systemctl status ecs
Auflösung
Gehen Sie wie folgt vor, um Probleme mit der Aufgabenverteilung zu lösen, um die richtige Konfiguration und Kapazität sicherzustellen:
Überprüfen Sie die Ressourcenanforderungen für Aufgaben im Vergleich zur verfügbaren Kapazität
Prüfen Sie die Platzierungsbeschränkungen und Strategien
Stellen Sie sicher, dass der Kapazitätsanbieter für Amazon ECS Managed Instances konfiguriert ist
Stellen Sie sicher, dass die Task- und Container-Instance-Sicherheitsgruppe über eine ausgehende Regel verfügen, die den Datenverkehr für die Amazon ECS-Agentenverwaltungsendpunkte zulässt.
Netzwerkprobleme
Im Folgenden sind die Symptome von Netzwerkproblemen aufgeführt:
Aufgaben können keine externen Dienste erreichen
Probleme mit der DNS-Auflösung
Diagnoseschritte
Tests der Netzwerkkonnektivität:
Führen Sie im Debug-Container die folgenden Befehle aus:
Anmerkung
Vergewissern Sie sich, dass die Ihrem Kapazitätsanbieter oder Ihrer Amazon ECS-Aufgabe zugeordnete Sicherheitsgruppe den Datenverkehr zulässt.
# Install DNS Utility yum install bind-utils -y # Test DNS resolution nslookup amazon.com # Test external connectivity curl -I https://amazon.com
Einschränkungen für Ressourcen
Im Folgenden sind die Symptome von Netzwerkproblemen aufgeführt:
Aufgaben wurden aufgrund von Speicherbeschränkungen beendet
CPU-Drosselung
Probleme mit dem Festplattenspeicher
Diagnoseschritte
Führen Sie Befehle aus, um die Ressourcen- und Containerlimits zu überwachen.
Überwachung der Ressourcen:
# Check memory usage nsenter -t 1 -m -p free -h # Check disk usage nsenter -t 1 -m -p lsblk # Check disk usage nsenter -t 1 -m -p df -h
Container-Grenzwerte:
# Check OOM kills nsenter -t 1 -m -p dmesg | grep -i "killed process"
Problem beim Trennen des Container-Instance-Agenten
Im Folgenden sind die Symptome von Problemen beim Trennen des Container-Instance-Agents aufgeführt:
Container-Instances werden in der Amazon ECS-Konsole als getrennt angezeigt
Aufgaben, die bestimmten Instances nicht zugewiesen werden konnten
Fehler bei der Agentenregistrierung in Protokollen
Diagnoseschritte
Wenn auf dem Host bereits eine Privilegien-Task ausgeführt wird, auf die ECS Exec zugreifen kann, führen Sie die folgenden Befehle aus, um Probleme mit der Agenten-Konnektivität zu diagnostizieren:
# check service status nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd # restart stopped services nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd
Andernfalls erzwingen Sie die Abmeldung der Amazon ECS Managed Instances. Führen Sie den folgenden Befehl aus:
# list ECS Managed Instance container aws ecs list-container-instances --cluster managed-instances-cluster --query 'containerInstanceArns' --output text # deregister the specific container instance aws ecs deregister-container-instance \ --cluster $ECS_CLUSTER_NAME \ --container-instance container-instance-arn \ --force
Auflösung
Gehen Sie wie folgt vor, um Probleme beim Trennen der Agentenverbindung zu lösen:
Überprüfen Sie die IAM-Rollenberechtigungen für die Container-Instance
Überprüfen Sie, ob die Sicherheitsgruppenregeln ausgehenden HTTPS-Verkehr zu ECS-Endpunkten zulassen
Stellen Sie die Netzwerkkonnektivität zu Diensten sicher AWS
Starten Sie den ECS-Agent-Dienst neu, falls erforderlich:
nsenter -t 1 -m -p systemctl restart ecsStellen Sie sicher, dass die ECS_CLUSTER-Konfiguration in/etc/ecs/ecs.config Ihrem Clusternamen entspricht
Protokollanalyse in von Amazon ECS verwalteten Instances
Systemprotokolle
Verwenden Sie die folgenden Befehle, um Systemprotokolle zu untersuchen und mögliche Probleme mit der verwalteten Instanz zu identifizieren:
# Check system messages nsenter -t 1 -m -p journalctl --no-pager -n 50 # Check kernel logs nsenter -t 1 -m -p dmesg | tail -20 # Check for disk space errors nsenter -t 1 -m -p journalctl --no-pager | grep -i "no space\|disk full\|enospc"
Verwenden Sie den EC2 AWS CLI , um die Konsolenausgabe von einer Amazon ECS Managed Instance abzurufen
Verwenden Sie die EC2 Amazon-Instance-ID, um die Konsolenausgabe abzurufen.
Ersetzen Sie die user-input durch Ihre Werte.
aws ec2 get-console-output --instance-idinstance-id--latest --output text
Bereinigen
Führen Sie den folgenden Befehl aus, um die Debug-Aufgabe zu beenden und die Registrierung der Aufgabendefinition aufzuheben.
# Stop debug task aws ecs stop-task --cluster $ECS_CLUSTER_NAME --task $TASK_ARN # Deregister task definition (optional) aws ecs deregister-task-definition --task-definition node-debugger
Weitere Ressourcen
Weitere Informationen zur Fehlerbehebung bei Amazon ECS Managed Instances finden Sie in den folgenden Ressourcen: