

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Log akses Amazon ECS Service Connect
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect mendukung log akses untuk menyediakan telemetri terperinci tentang permintaan individual yang diproses oleh proxy Service Connect. Log akses melengkapi log aplikasi yang ada dengan menangkap metadata lalu lintas per permintaan seperti metode HTTP, jalur, kode respons, bendera, dan informasi waktu. Hal ini memungkinkan pengamatan yang lebih dalam ke dalam pola lalu lintas tingkat permintaan dan interaksi layanan untuk pemecahan masalah dan pemantauan yang efektif.

Untuk mengaktifkan log akses, tentukan `accessLogConfiguration` objek `logConfiguration` dan objek dalam `serviceConnectConfiguration` objek. Anda dapat mengonfigurasi format log dan apakah log harus menyertakan parameter kueri di file`accessLogConfiguration`. Log dikirimkan ke grup log tujuan oleh driver log yang ditentukan dalam file. `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" 
        }
    }
}
```

## Pertimbangan-pertimbangan
<a name="service-connect-envoy-access-logs-considerations"></a>

Pertimbangkan hal berikut ketika Anda mengaktifkan akses ke log akses
+ Log akses dan log aplikasi keduanya ditulis untuk`/dev/stdout`. Untuk memisahkan log akses dari log aplikasi, sebaiknya gunakan driver `awsfirelens` log dengan kustom Fluent Bit atau Fluentd konfigurasi.
+  Sebaiknya gunakan driver `awslogs` log untuk mengirim aplikasi dan mengakses log ke CloudWatch tujuan yang sama.
+ log akses didukung pada layanan Fargate yang menggunakan versi platform `1.4.0` dan yang lebih tinggi.
+ Parameter kueri seperti id permintaan dan token dikecualikan dari log akses secara default. Untuk menyertakan parameter kueri dalam log akses, atur `includeQueryParameters` ke`"ENABLED"`.

## Akses format log
<a name="service-connect-envoy-access-logs-formats"></a>

log akses dapat diformat dalam kamus format JSON atau string format Teks, dengan perbedaan operator perintah yang didukung untuk berbagai jenis log akses.

### Log akses HTTP
<a name="service-connect-envoy-access-logs-formats-http"></a>

Operator perintah berikut disertakan secara default untuk 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 akses HTTP2
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Selain operator perintah yang disertakan untuk log HTTP, log HTTP2 menyertakan `%STREAM_ID%` operator secara default.

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

Selain operator perintah yang disertakan untuk log HTTP, log akses gRPC menyertakan `%STREAM_ID%` dan `%GRPC_STATUS()%` operator secara default.

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

------

### Log akses TCP
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Operator perintah berikut disertakan secara default dalam log akses 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%
}
```

------

Untuk informasi selengkapnya tentang operator perintah ini, lihat [Operator Perintah](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) dalam dokumentasi Utusan.