

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
<a name="service-connect-envoy-access-logs"></a>

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
<a name="service-connect-envoy-access-logs-considerations"></a>

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
<a name="service-connect-envoy-access-logs-formats"></a>

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
<a name="service-connect-envoy-access-logs-formats-http"></a>

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%"
}
```

------

### log di accesso HTTP2
<a name="service-connect-envoy-access-logs-formats-http2"></a>

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

------
#### [ 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
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

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
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

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](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) di Envoy.