View a markdown version of this page

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 dati di telemetria dettagliata sulle singole richieste elaborate dal proxy Service Connect. I log di accesso completano i log delle applicazioni esistenti acquisendo i metadati del traffico per richiesta come metodi HTTP, percorsi, codici di risposta, flag e informazioni sui tempi. Ciò consente una maggiore osservabilità dei modelli di traffico a livello di richiesta e delle interazioni tra i servizi per una risoluzione e un monitoraggio efficaci dei problemi.

Per abilitare i log di accesso, specifica sia gli oggetti che accessLogConfiguration gli oggetti contenuti logConfiguration nell'oggetto. serviceConnectConfiguration È possibile configurare il formato dei registri e se i registri devono includere i parametri di interrogazione nelaccessLogConfiguration. 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 abiliti l'accesso ai log di accesso, considera 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 Fluentd configurazione personalizzataFluent Bit.

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

  • i log di accesso sono supportati sui servizi Fargate che utilizzano la versione della piattaforma 1.4.0 e successive.

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

Formati dei log di accesso

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

log di accesso HTTP

I seguenti operatori di comando sono inclusi per impostazione predefinita per i 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%" }

registri di accesso HTTP2

Oltre agli operatori di comando inclusi per i log HTTP, i log HTTP2 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 l'%GRPC_STATUS()%operatore %STREAM_ID% 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 log 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, vedere Command Operators nella documentazione di Envoy.