

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

------

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

Selain operator perintah yang disertakan untuk log HTTP, HTTP2 log 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.

# Mengaktifkan log akses untuk Amazon ECS Service Connect
<a name="service-connect-access-logs-configuration"></a>

Log akses tidak diaktifkan secara default untuk layanan Amazon ECS yang menggunakan Service Connect. Anda dapat mengaktifkan log akses dengan cara berikut.

## Aktifkan log akses menggunakan AWS CLI
<a name="service-connect-access-logs-configure-cli"></a>

Perintah berikut menunjukkan bagaimana Anda dapat mengaktifkan log akses untuk layanan Amazon ECS menggunakan AWS CLI dengan menentukan `accessLogConfiguration` saat Anda membuat layanan:

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

## Aktifkan log akses menggunakan konsol
<a name="service-connect-access-logs-configure-console"></a>

Untuk prosedur pembuatan layanan terperinci, lihat[Membuat penyebaran pembaruan bergulir Amazon ECS](create-service-console-v2.md).

**Untuk membuat layanan dengan namespace bersama menggunakan Konsol Manajemen AWS**

1. Buka konsol di [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Pada halaman **Clusters**, pilih cluster tempat Anda ingin membuat layanan.

1. Di bawah **Layanan**, pilih **Buat**.

1. Setelah mengisi detail lainnya tergantung pada beban kerja Anda, di bagian **Service Connect**, pilih **Use Service Connect**.

1. Konfigurasikan pengaturan Service Connect sesuai kebutuhan untuk jenis layanan Anda (klien atau client-server).

1. Perluas **konfigurasi log Access**. Untuk **Format**, pilih **JSON** atau`TEXT`.

1. Untuk menyertakan parameter kueri dalam log akses, pilih **Sertakan parameter kueri**.

1. Selesaikan proses pembuatan layanan.