Log di accesso di Amazon ECS Service Connect - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Log di accesso di Amazon ECS Service Connect

Amazon ECS Service Connect supporta i log di accesso per fornire telemetria dettagliata sulle singole richieste elaborate dal proxy Service Connect. I log di accesso completano i log delle applicazioni esistenti acquisendo metadati sul traffico per richiesta come metodi HTTP, percorsi, codici di risposta, flag e informazioni temporali. Ciò consente una maggiore osservabilità dei modelli di traffico a livello di richiesta e delle interazioni di servizio per una risoluzione e un monitoraggio efficaci.

Per abilitare i log di accesso, specificate sia gli oggetti che logConfiguration gli accessLogConfiguration oggetti nell'oggetto. serviceConnectConfiguration È possibile configurare il formato dei log e se i log devono includere i parametri di interrogazione in. accessLogConfiguration I log vengono consegnati al gruppo di log di destinazione dal driver di registro specificato in. logConfiguration

{ "serviceConnectConfiguration": { "enabled": true, "namespace": "myapp.namespace", "services": [ ... ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "my-envoy-log-group", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "myapp-envoy-logs" } }, "accessLogConfiguration": { "format": "TEXT", "includeQueryParameters": "ENABLED" } } }

Considerazioni

Quando si abilita l'accesso ai log di accesso, si consideri quanto segue

  • I registri di accesso e i registri delle applicazioni vengono entrambi scritti su. /dev/stdout Per separare i log di accesso dai log delle applicazioni, si consiglia di utilizzare il driver di awsfirelens log con una configurazione OR personalizzata. Fluent Bit Fluentd

  • Si consiglia di utilizzare il driver di awslogs registro per inviare i log delle applicazioni e degli accessi alla stessa destinazione. CloudWatch

  • i registri di accesso sono supportati sui servizi Fargate che utilizzano 1.4.0 versioni della piattaforma o successive.

  • I parametri di interrogazione come gli ID e i token delle richieste sono esclusi dai log di accesso per impostazione predefinita. Per includere i parametri di interrogazione nei log di accesso, impostate su. includeQueryParameters "ENABLED"

Formati dei log di accesso

i registri di accesso possono essere formattati in dizionari in formato JSON o stringhe in formato testo, con differenze negli operatori di comando supportati per i diversi tipi di log di accesso.

registri di accesso HTTP

I seguenti operatori di comando sono inclusi per impostazione predefinita nei log HTTP:

Text
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%" "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
JSON
{ "start_time": "%START_TIME%", "method": "%REQ(:METHOD)%", "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%", "protocol": "%PROTOCOL%", "response_code": "%RESPONSE_CODE%", "bytes_received": "%BYTES_RECEIVED%", "bytes_sent": "%BYTES_SENT%", "duration_ms": "%DURATION%", "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%", "forwarded_for": "%REQ(X-FORWARDED-FOR)%", "user_agent": "%REQ(USER-AGENT)%", "request_id": "%REQ(X-REQUEST-ID)%", "authority": "%REQ(:AUTHORITY)%", "upstream_host": "%UPSTREAM_HOST%" }

HTTP2 registri di accesso

Oltre agli operatori di comando inclusi per i log HTTP, i HTTP2 log includono l'%STREAM_ID%operatore per impostazione predefinita.

Text
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%" "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
JSON
{ "start_time": "%START_TIME%", "method": "%REQ(:METHOD)%", "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%", "protocol": "%PROTOCOL%", "response_code": "%RESPONSE_CODE%", "bytes_received": "%BYTES_RECEIVED%", "bytes_sent": "%BYTES_SENT%", "duration": "%DURATION%", "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%", "forwarded_for": "%REQ(X-FORWARDED-FOR)%", "user_agent": "%REQ(USER-AGENT)%", "request_id": "%REQ(X-REQUEST-ID)%", "authority": "%REQ(:AUTHORITY)%", "upstream_host": "%UPSTREAM_HOST%", "stream_id": "%STREAM_ID%" }

Log di accesso gRPC

Oltre agli operatori di comando inclusi per i log HTTP, i log di accesso gRPC includono %STREAM_ID% l'operatore %GRPC_STATUS()% and per impostazione predefinita.

Text
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %GRPC_STATUS()% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%" "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
JSON
{ "start_time": "%START_TIME%", "method": "%REQ(:METHOD)%", "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%", "protocol": "%PROTOCOL%", "response_code": "%RESPONSE_CODE%", "grpc_status": "%GRPC_STATUS()%", "bytes_received": "%BYTES_RECEIVED%", "bytes_sent": "%BYTES_SENT%", "duration": "%DURATION%", "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%", "forwarded_for": "%REQ(X-FORWARDED-FOR)%", "user_agent": "%REQ(USER-AGENT)%", "request_id": "%REQ(X-REQUEST-ID)%", "authority": "%REQ(:AUTHORITY)%", "upstream_host": "%UPSTREAM_HOST%", "stream_id": "%STREAM_ID%" }

Registri di accesso TCP

I seguenti operatori di comando sono inclusi per impostazione predefinita nei registri di accesso TCP:

Text
[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% %DOWNSTREAM_REMOTE_PORT% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %CONNECTION_TERMINATION_DETAILS% %CONNECTION_ID%\n
JSON
{ "start_time": "%START_TIME%", "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%", "downstream_remote_port": "%DOWNSTREAM_REMOTE_PORT%",s "bytes_received": "%BYTES_RECEIVED%", "bytes_sent": "%BYTES_SENT%", "duration": "%DURATION%", "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%", "connection_id": %CONNECTION_ID% }

Per ulteriori informazioni su questi operatori di comando, vedete Operatori di comando nella documentazione di Envoy.