

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Journaux d'accès Amazon ECS Service Connect
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect prend en charge les journaux d'accès afin de fournir une télémétrie détaillée sur les demandes individuelles traitées par le proxy Service Connect. Les journaux d'accès complètent les journaux d'applications existants en capturant les métadonnées du trafic par demande, telles que les méthodes HTTP, les chemins, les codes de réponse, les indicateurs et les informations temporelles. Cela permet une meilleure observabilité des modèles de trafic au niveau des demandes et des interactions entre les services pour un dépannage et une surveillance efficaces.

Pour activer les journaux d'accès, spécifiez à la fois `accessLogConfiguration` les objets `logConfiguration` et dans l'`serviceConnectConfiguration`objet. Vous pouvez configurer le format des journaux et indiquer si les journaux doivent inclure des paramètres de requête dans le`accessLogConfiguration`. Les journaux sont envoyés au groupe de journaux de destination par le pilote de journal spécifié dans le`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" 
        }
    }
}
```

## Considérations
<a name="service-connect-envoy-access-logs-considerations"></a>

Tenez compte des points suivants lorsque vous activez l'accès aux journaux d'accès
+ Les journaux d'accès et les journaux des applications sont tous deux écrits dans`/dev/stdout`. Pour séparer les journaux d'accès des journaux d'applications, nous vous recommandons d'utiliser le pilote de `awsfirelens` journal avec une Fluentd configuration personnaliséeFluent Bit.
+  Nous vous recommandons d'utiliser le pilote de `awslogs` journal pour envoyer les journaux d'applications et d'accès vers la même CloudWatch destination.
+ les journaux d'accès sont pris en charge sur les services Fargate qui utilisent la version de la plateforme `1.4.0` et les versions supérieures.
+ Les paramètres de requête tels que les identifiants de demande et les jetons sont exclus des journaux d'accès par défaut. Pour inclure les paramètres de requête dans les journaux d'accès, définissez `includeQueryParameters` sur`"ENABLED"`.

## Formats des journaux d'accès
<a name="service-connect-envoy-access-logs-formats"></a>

les journaux d'accès peuvent être formatés dans des dictionnaires au format JSON ou dans des chaînes de format texte, avec des différences dans les opérateurs de commande pris en charge pour les différents types de journaux d'accès.

### Journaux d'accès HTTP
<a name="service-connect-envoy-access-logs-formats-http"></a>

Les opérateurs de commande suivants sont inclus par défaut pour les journaux 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 journaux d'accès
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Outre les opérateurs de commande inclus pour les journaux HTTP, HTTP2 les journaux incluent l'`%STREAM_ID%`opérateur par défaut.

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

------

### Journaux d'accès au gRPC
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

Outre les opérateurs de commande inclus pour les journaux HTTP, les journaux d'accès gRPC incluent l'`%GRPC_STATUS()%`opérateur `%STREAM_ID%` and par défaut.

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

------

### Journaux d'accès TCP
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Les opérateurs de commande suivants sont inclus par défaut dans les journaux d'accès 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%
}
```

------

Pour plus d'informations sur ces opérateurs de commande, consultez la section [Opérateurs de commande](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) dans la documentation d'Envoy.

# Activation des journaux d'accès pour Amazon ECS Service Connect
<a name="service-connect-access-logs-configuration"></a>

Les journaux d'accès ne sont pas activés par défaut pour les services Amazon ECS qui utilisent Service Connect. Vous pouvez activer les journaux d'accès de différentes manières.

## Activez les journaux d'accès à l'aide du AWS CLI
<a name="service-connect-access-logs-configure-cli"></a>

La commande suivante montre comment activer les journaux d'accès pour un service Amazon ECS à l'aide du en AWS CLI spécifiant un `accessLogConfiguration` lors de la création du service :

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }],
        "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" 
        }
    }'
```

## Activer les journaux d'accès à l'aide de la console
<a name="service-connect-access-logs-configure-console"></a>

Pour une procédure détaillée de création de service, consultez la section [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md).

**Pour créer un service avec un espace de noms partagé à l'aide du AWS Management Console**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, sélectionnez le cluster dans lequel créer le service.

1. Sous **Services**, choisissez **Créer**.

1. Après avoir renseigné d’autres informations en fonction de votre charge de travail, dans la section **Service Connect**, sélectionnez **Utiliser Service Connect**.

1. Configurez les paramètres Service Connect selon les besoins de votre type de service (client ou client-serveur).

1. Développez la **configuration du journal d'accès**. Pour **Format**, choisissez **JSON** ou`TEXT`.

1. Pour inclure les paramètres de requête dans les journaux d'accès, sélectionnez **Inclure les paramètres de requête**.

1. Terminez le processus de création de service.