Setelah menambahkan kluster Kubernetes ke instance Service Mesh (ASM), proxy Envoy yang diterapkan di bidang data dari instance ASM dapat mencetak semua log akses kluster. ASM memungkinkan Anda menyesuaikan field log akses yang dicetak oleh proxy Envoy. Topik ini menjelaskan cara menyesuaikan field log akses.
Prasyarat
Langkah 1: Aktifkan pencatatan akses
Untuk instance ASM versi lebih lama dari 1.17.2.35
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di pojok kanan atas halaman yang muncul, klik Settings.
Di panel Settings Update, pilih Enable access logging and print it to container stdout dan klik OK.
Secara default, kontainer istio-proxy mencetak log yang berisi field berikut. Jika pencatatan akses dinonaktifkan, kontainer istio-proxy tidak akan mencetak log akses dalam format JSON.
Untuk instance ASM versi 1.17.2.35 atau lebih baru
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Global, Namespace, atau Custom.
Jika Anda memilih tab Namespace, klik Create dan pilih namespace dari daftar drop-down Namespace.
Jika Anda memilih tab Custom, klik Create, pilih namespace dari daftar drop-down Namespace, dan kemudian atur Name dan Matching Label.
Di bagian Log Settings, aktifkan saklar Enable Log Output dan klik submit.
Setelah mengaktifkan saklar tersebut, sidecar proxy atau gateway pada bidang data dari instance ASM akan mencetak log akses ke output standar kontainer. ASM juga mendukung fitur filter log. Untuk informasi lebih lanjut, lihat Filter log di topik "Konfigurasikan Pengaturan Observabilitas".
Lihat log di aliran output standar kontainer sidecar pada bidang data.
Contoh berikut menunjukkan cara menggunakan kubectl untuk melihat log akses.
Jalankan perintah berikut untuk melihat log proxy sidecar:
kubectl logs httpbin-5c5944c58c-w**** -c istio-proxy --tail 1Jalankan perintah berikut untuk melihat log gateway masuk:
kubectl -n istio-system logs istio-ingressgateway-6cff9b6b58-r**** --tail 1
(Opsional) Lihat log akses di konsol Container Service for Kubernetes (ACK).
Jika Anda menggunakan kluster ACK, Anda juga dapat melihat log akses di konsol ACK.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Pods, klik nama pod yang diinginkan dan klik tab Logs untuk melihat log akses.
Untuk informasi lebih lanjut tentang log, lihat Konfigurasikan Pengaturan Observabilitas dan Aktifkan pengumpulan log bidang kontrol dan peringatan berbasis log di instance ASM versi 1.17.2.35 atau lebih baru.
Langkah 2: Sesuaikan field log akses
Untuk instance ASM versi lebih lama dari 1.17.2.35
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Pada bagian Config Info di halaman yang muncul, klik Update Access Log Format di samping opsi Enable access logging and print it to container stdout.
Di kotak dialog Update Access Log Format, tambahkan field dengan mengatur parameter accessLogFormat key menjadi my_custom_key dan parameter accessLogFormat value menjadi %REQ(end-user)%. Kemudian, klik OK.
Dalam contoh ini, my_custom_key digunakan untuk mengekstrak nilai field header end-user dalam permintaan HTTP untuk aplikasi sampel Bookinfo dan kemudian menyisipkan nilai tersebut ke dalam log akses. Anda dapat memilih field opsional yang disediakan oleh ASM atau menambahkan field kustom. Gambar berikut menunjukkan field opsional dan contoh field kustom. Kemudian, log akses akan dicetak dalam format kustom.

Untuk instance ASM versi 1.17.2.35 atau lebih baru
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Global, Namespace, atau Custom.
Jika Anda memilih tab Namespace, klik Create dan pilih namespace dari daftar drop-down Namespace.
Jika Anda memilih tab Custom, klik Create, pilih namespace dari daftar drop-down Namespace, dan kemudian atur Name dan Matching Label.
Di bagian Log Settings, pilih field yang diinginkan atau modifikasi informasi field kustom. Anda juga dapat mengklik ikon
di sebelah kanan metrik log di bagian bawah untuk menambahkan field log. Kemudian, klik submit.Anda hanya dapat menyesuaikan field log akses jika Anda mengaktifkan Aktifkan Output Log. Di bagian Log Format, field log yang dipilih secara default adalah wajib dan tidak dapat dimodifikasi. Anda dapat memilih untuk mendapatkan nilai field log dari header permintaan, header respons, atau nilai bawaan Envoy.
Contoh berikut mengatur accessLogFormat key menjadi accept-encoding, Type menjadi Request Properties, dan accessLogFormat value menjadi Accept-Encoding untuk mencetak header accept-encoding dalam permintaan.

Jalankan perintah berikut untuk melihat log komponen pada bidang data instance ASM:
kubectl logs httpbin-5c5944c58c-w**** -c istio-proxy --tail 1|grep accept-encoding --color=autoNilai header accept-encoding yang ditambahkan di sublangkah 4 dicetak dalam log akses. Untuk informasi lebih lanjut tentang log, lihat Konfigurasikan Pengaturan Observabilitas dan Aktifkan pengumpulan log bidang kontrol dan peringatan berbasis log di instance ASM versi 1.17.2.35 atau lebih baru.
Langkah 3: Lihat log akses
Setelah mengaktifkan pencatatan akses dan menyesuaikan field log akses, kontainer sidecar yang memulai permintaan akan mencetak log akses dalam format kustom.
Masukkan Alamat IP gateway masuk:productpage di bilah alamat browser Anda untuk mengakses aplikasi Productpage.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, cari kluster yang ingin dikelola dan klik nama klusternya. Di panel sisi kiri, pilih .
Di bagian atas halaman Deployments, pilih default dari daftar drop-down Namespace dan klik Details di kolom Actions untuk aplikasi productpage-v1.
Di halaman detail aplikasi, klik tab Logs dan atur parameter Container menjadi istio-proxy.
Log berikut ditampilkan di kotak output log. Log tersebut berisi field yang menentukan pengguna akhir bernama jason. Ini menunjukkan bahwa konfigurasi kustom telah diterapkan.

Field durasi
Dalam Service Mesh, "upstream" menunjukkan penerima permintaan, dan "downstream" menunjukkan pengirim permintaan. Sebagai contoh, ketika layanan A mengirimkan permintaan ke layanan B, layanan A adalah layanan downstream, dan layanan B adalah layanan upstream.
Field | Nilai | Deskripsi |
duration | $DURATION% |
|
request_duration | %REQUEST_DURATION% |
|
request_tx_duration | %REQUEST_TX_DURATION% |
|
response_duration | %RESPONSE_DURATION% |
|
response_tx_duration | %RESPONSE_TX_DURATION% |
|
upstream_service_time (untuk proxy sidecar) | %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% | Dalam log akses proxy sidecar atau gateway, field ini menunjukkan waktu pemrosesan layanan upstream dan waktu yang dikonsumsi dalam komunikasi dengan layanan upstream. Jika nilai field ini lebih besar dari yang diharapkan, periksa item berikut:
|
upstream_response_time (untuk gateway) |
Untuk permintaan HTTP dengan body yang Content-Length-nya lebih besar dari 0, permintaan tersebut dibaca dan dikirim secara bersamaan ke layanan upstream alih-alih dikirim setelah selesai dibaca. Dalam hal ini, jika node saat ini membaca permintaan secara lambat dari layanan downstream, layanan upstream dari node saat ini akan membutuhkan waktu lebih lama untuk membaca permintaan.
Operasi terkait
Anda juga dapat menggunakan Layanan Log Sederhana untuk mengumpulkan log akses pada bidang data. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur pembuatan dan pengumpulan log akses gateway ASM.