Speicherorte der Amazon ECS-Protokolldateien - Amazon Elastic Container Service

Speicherorte der Amazon ECS-Protokolldateien

Amazon ECS speichert Protokolle im Ordner /var/log/ecs Ihrer Container-Instances. Es sind Protokolle vom Amazon ECS-Container-Agenten und vom ecs-init-Service verfügbar, der den Status des Agenten (Start/Stopp) auf der Container-Instance kontrolliert. Sie können diese Protokolldateien anzeigen, indem Sie sich mithilfe von SSH mit der Container-Instance verbinden. Weitere Informationen finden Sie unter Stellen Sie über die klassische Konsole eine Verbindung zu Ihrer Container-Instance her.

Anmerkung

Wenn Sie nicht sicher sind, wie Sie alle verschiedenen Protokolle auf Ihren Container-Instances sammeln können, können Sie den Amazon ECS-Protokollsammler verwenden. Weitere Informationen finden Sie unter Collector für Amazon ECS-Protokolle.

Amazon ECS-Container-Agenten-Protokoll

Der Amazon ECS-Container-Agent speichert Protokolle auf Ihren Container-Instances.

Bei Container-Agent-Version 1.36.0 und höher befinden sich die Protokolle standardmäßig unter /var/log/ecs/ecs-agent.log auf Linux-Instances und unter C:\ProgramData\Amazon\ECS\log\ecs-agent.log auf Windows-Instances.

Bei Container-Agent-Version 1.35.0 und früher befinden sich die Protokolle standardmäßig unter /var/log/ecs/ecs-agent.log.timestamp auf Linux-Instances und unter C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp auf Windows-Instances.

Standardmäßig werden die Agent-Protokolle stündlich rotiert, wobei maximal 24 Protokolle gespeichert werden.

Im Folgenden finden Sie die Konfigurationsvariablen des Container-Agenten, die verwendet werden können, um das standardmäßige Agenten-Protokollierungsverhalten zu ändern. Weitere Informationen finden Sie unter Konfiguration des Amazon ECS-Container-Agenten.

ECS_LOGFILE

Beispielwerte: /ecs-agent.log

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Bestimmt den Speicherort, an dem Agenten-Protokolle geschrieben werden sollen. Wenn Sie den Agenten über ecs-init ausführen, was die Standardmethode bei Verwendung des Amazon ECS-optimierten AMI ist, ist der Pfad im Container /log und ecs-init mountet dies an /var/log/ecs/ auf dem Host.

ECS_LOGLEVEL

Beispielwerte: crit, error, warn, info, debug

Standardwert unter Linux: info

Standardwert unter Windows: info

Die zu protokollierende Detailebene.

ECS_LOGLEVEL_ON_INSTANCE

Beispielwerte: none, crit, error, warn, info, debug

Standardwert unter Linux: none, wenn ECS_LOG_DRIVER explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wie ECS_LOGLEVEL

Standardwert unter Windows: none, wenn ECS_LOG_DRIVER explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wie ECS_LOGLEVEL

Kann verwendet werden, um ECS_LOGLEVEL zu überschreiben und um eine Detailebene festzulegen, die in der On-Instance-Protokolldatei protokolliert werden soll, unabhängig von der Ebene, die im Protokollierungstreiber protokolliert wird. Wenn ein Protokollierungstreiber explizit festgelegt ist, werden On-Instance-Protokolle standardmäßig deaktiviert, können aber mit dieser Variablen wieder aktiviert werden.

ECS_LOG_ROLLOVER_TYPE

Beispielwerte: size, hourly

Standardwert unter Linux: hourly

Standardwert unter Windows: hourly

Bestimmt, ob die Container-Agent-Protokolldatei stündlich oder basierend auf der Größe rotiert wird. Standardmäßig wird die Agent-Protokolldatei stündlich rotiert.

ECS_LOG_OUTPUT_FORMAT

Beispielwerte: logfmt, json

Standardwert unter Linux: logfmt

Standardwert unter Windows: logfmt

Bestimmt das Protokollausgabeformat. Wenn das json-Format verwendet wird, wird jede Zeile im Protokoll eine strukturierte JSON-Karte sein.

ECS_LOG_MAX_FILE_SIZE_MB

Beispielwerte: 10

Standardwert unter Linux: 10

Standardwert unter Windows: 10

Wenn die Variable ECS_LOG_ROLLOVER_TYPE auf size gesetzt ist, bestimmt diese Variable die maximale Größe (in MB) der Protokolldatei, bevor sie rotiert wird. Wenn der Rollover-Typ auf hourly festgelegt ist, wird diese Variable ignoriert.

ECS_LOG_MAX_ROLL_COUNT

Beispielwerte: 24

Standardwert unter Linux: 24

Standardwert unter Windows: 24

Bestimmt die Anzahl der rotierten Protokolldateien, die beibehalten werden sollen. Ältere Protokolldateien werden gelöscht, nachdem diese Grenze erreicht ist.

Für Container-Agent Version 1.36.0 und höher folgt eine Beispielprotokolldatei für die Verwendung des logfmt-Formats.

level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go

Im Folgenden finden Sie eine Beispielprotokolldatei für die Verwendung des JSON-Formats.

{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}

Für Container-Agent-Versionen 1.35.0 und früher gilt das folgende Format der Protokolldatei.

2016-08-15T15:54:41Z [INFO] Starting Agent: Amazon ECS Agent - v1.12.0 (895f3c1) 2016-08-15T15:54:41Z [INFO] Loading configuration 2016-08-15T15:54:41Z [WARN] Invalid value for task cleanup duration, will be overridden to 3h0m0s, parsed value 0, minimum threshold 1m0s 2016-08-15T15:54:41Z [INFO] Checkpointing is enabled. Attempting to load state 2016-08-15T15:54:41Z [INFO] Loading state! module="statemanager" 2016-08-15T15:54:41Z [INFO] Detected Docker versions [1.17 1.18 1.19 1.20 1.21 1.22] 2016-08-15T15:54:41Z [INFO] Registering Instance with ECS 2016-08-15T15:54:41Z [INFO] Registered! module="api client"

Amazon ECS ecs-init-Protokoll

Der Prozess ecs-init speichert Protokolle unter /var/log/ecs/ecs-init.log.

cat /var/log/ecs/ecs-init.log

Ausgabe:

2018-02-16T18:13:54Z [INFO] pre-start 2018-02-16T18:13:56Z [INFO] start 2018-02-16T18:13:56Z [INFO] No existing agent container to remove. 2018-02-16T18:13:56Z [INFO] Starting Amazon Elastic Container Service Agent

Prüfprotokoll für IAM-Rollen für Aufgaben-Anmeldeinformationen

Wenn der Anmeldeinformationsanbieter für die IAM-Rolle verwendet wird, um Anmeldeinformationen für Aufgaben bereitzustellen, werden diese Anfragen in einem Überwachungsprotokoll gespeichert. Das Überwachungsprotokoll übernimmt dieselben Protokollrotationseinstellungen wie das Container-Agent-Protokoll. Die Konfigurationsvariablen ECS_LOG_ROLLOVER_TYPE, ECS_LOG_MAX_FILE_SIZE_MB und ECS_LOG_MAX_ROLL_COUNT des Container-Agenten können so eingestellt werden, dass sie das Verhalten des Überwachungsprotokolls beeinflussen. Weitere Informationen finden Sie unter Amazon ECS-Container-Agenten-Protokoll.

Für Container-Agent Version 1.36.0 und höher befindet sich das Überwachungsprotokoll unter /var/log/ecs/audit.log. Wenn das Protokoll rotiert wird, wird am Ende des Protokolldateinamens ein Zeitstempel im YYYY-MM-DD-HH-Format hinzugefügt.

Für Container-Agent Version 1.35.0 und früher befindet sich das Überwachungsprotokoll unter /var/log/ecs/audit.log.YYYY-MM-DD-HH.

Das Format des Protokolleintrags ist wie folgt:

  • Zeitstempel

  • HTTP-Antwortcode

  • IP-Adresse und Portnummer von Abfrageursprung

  • Relative URI des Anmeldeinformationsanbieters

  • Der Benutzeragent, der die Abfrage gesendet hat

  • Der ARN der Aufgabe, zu dem der abfragende Container gehört

  • Der GetCredentials-API-Name und Versionsnummer

  • Der Name des Amazon ECS-Clusters, für den die Container-Instance registriert ist

  • Der ARN der Container-Instance

Ein Beispielprotokolleintrag wird unten gezeigt:

cat /var/log/ecs/audit.log.2016-07-13-16

Ausgabe:

2016-07-13T16:11:53Z 200 172.17.0.5:52444 "/v1/credentials" "python-requests/2.7.0 CPython/2.7.6 Linux/4.4.14-24.50.amzn1.x86_64" TASK_ARN GetCredentials 1 CLUSTER_NAME CONTAINER_INSTANCE_ARN