Jika ingin menganalisis perilaku pengguna, memahami distribusi geografis pengguna, serta melakukan troubleshooting berdasarkan log akses, gunakan fitur log akses yang disediakan oleh ALB bersama Simple Log Service (SLS).
Log akses ALB cocok untuk skenario audit permintaan, diagnosis kesalahan, dan analisis kinerja, serta menyediakan kemampuan pencatatan akses yang serupa dengan gerbang web tradisional seperti Nginx. Anda dapat menggunakan log akses untuk mengkueri informasi seperti header permintaan HTTP, kode status, dan distribusi latensi guna melakukan troubleshooting terhadap masalah seperti URL error dalam permintaan, latensi API tinggi, serta ketidaksesuaian antara data pemantauan dengan volume traffic aktual. Log akses hanya mencatat permintaan HTTP/HTTPS yang berhasil dibangun, dan tidak mencatat peristiwa seperti kegagalan koneksi TCP, pemindaian port, atau kegagalan proses jabat tangan TLS.
Penagihan
Setelah log akses ALB dikirimkan ke Simple Log Service, Anda akan ditagih untuk penyimpanan, traffic baca, permintaan, transformasi data, dan pengiriman. Penagihan Simple Log Service.
Prasyarat
Simple Log Service telah diaktifkan. Aktifkan Simple Log Service.
Buat log akses
Masuk ke Konsol ALB.
-
Di bilah navigasi atas, pilih wilayah tempat instans ALB dideploy.
-
Pada halaman Instances, klik ID instans yang ingin Anda kelola.
-
Pada halaman detail instans, klik tab Access Logs, lalu klik Create Access Log.
-
Pada kotak dialog Create Access Log, konfigurasikan parameter Project dan Logstore, lalu klik OK.
Parameter
Deskripsi
Project
Pilih proyek Simple Log Service untuk mengelola sumber daya. Opsi:
-
Select Project: Pilih proyek yang sudah ada dari daftar drop-down.
-
Create Project: Masukkan nama proyek pada kolom.
Logstore
Pilih Logstore untuk mengumpulkan, menyimpan, dan mengkueri data log. Opsi:
-
Select Logstore: Pilih Logstore yang sudah ada dari daftar drop-down.
-
Create Logstore: Masukkan nama Logstore pada kolom. Jika Anda memilih Create Project, Anda juga harus memilih Create Logstore.
Notes on Creating Service-linked Role
Peran terkait layanan dibuat secara otomatis.
-
-
Pada pesan yang muncul, baca informasinya lalu klik OK.
-
Jika Anda membuat Logstore, indeks dan dasbor diaktifkan secara default.
-
Jika Anda memilih Logstore yang sudah ada, dasbor diaktifkan secara otomatis. Indeks yang sudah ada tidak ditimpa. Buat indeks di Konsol Simple Log Service.
-
Lihat log akses
-
Pada tab Access Logs, klik tautan di sebelah kanan Simple Log Service untuk membuka Konsol Simple Log Service dan melihat data log.
-
Pada tab Access Logs, klik tab Monitoring Center, Access Center, atau Fine-grained Monitoring, lalu tentukan kondisi filter untuk mengkueri metrik.
Modul
Deskripsi
Monitoring Center
Menampilkan data pemantauan waktu nyata: PV, Tingkat Keberhasilan Permintaan, Latensi Rata-rata, Permintaan 4xx, Distribusi Status, Traffic, Latensi P50/P90/P99/P9999, serta host/URL/backend teratas berdasarkan jumlah permintaan, latensi, dan tingkat kegagalan.
Access center
Menampilkan statistik akses: perbandingan harian dan mingguan PV/UV, distribusi PV/UV, PV Hari Ini, PV 7 hari, 10 Negara dengan Permintaan Terbanyak, Persentase Pengguna Seluler, 10 host teratas, 10 user agent teratas, dan alamat IP dengan permintaan terbanyak.
Fine-grained Monitoring
Menampilkan metrik yang diagregasi per interval satu detik untuk mengidentifikasi jitter sesaat: QPS, Latensi Akses, Latensi Upstream, Tingkat Keberhasilan, Traffic Permintaan, Traffic Badan Respons, Kode Status 2xx, Kode Status 3xx, Kode Error, Kode Status Upstream 2xx, Kode Status Upstream 3xx, dan Kode Error Upstream.
-
Di pojok kanan atas tab Monitoring Center, Access Center, atau Fine-grained Monitoring, klik More Charts untuk membuka halaman CloudLens for ALB dan melihat lebih banyak laporan ALB. Untuk informasi selengkapnya, lihat Laporan data.
-
Di pojok kanan atas tab Monitoring Center, Access Center, atau Fine-grained Monitoring, klik Configure Alert Rules untuk membuka halaman CloudLens for ALB dan melihat insiden peringatan ALB.
-
Anda juga dapat menggunakan fitur-fitur berikut di pojok kanan atas tab Monitoring Center, Access Center, atau Fine-grained Monitoring:
-
: mengaktifkan Dedicated SQL. Aktifkan Dedicated SQL. -
Setelah dikirimkan ke Simple Log Service, Anda dapat mengkueri, menganalisis, mengunduh, mengirimkan, dan memproses log akses, serta membuat aturan peringatan. Untuk informasi selengkapnya, lihat Operasi umum untuk log layanan.
-
-
Catat header kustom
slb_headers mencatat nama dan nilai header permintaan kustom untuk analisis permintaan.
Ukuran maksimum header kustom per log akses adalah 1 KB (dapat diperluas hingga 4 KB). Untuk meminta peningkatan, hubungi manajer akun Anda. Untuk informasi selengkapnya, lihat Batas panjang permintaan.
Jika panjang total header kustom dalam satu entri log melebihi batas tersebut, field slb_headers hanya akan mencatat header yang muat dalam batas dan menambahkan Discarded:TooManyCustomizedHeaders di akhir nilai field.
Edisi Extensible tidak mendukung pencatatan header kustom.
-
Pada tab Access Logs, klik Record Custom Headers di bagian Basic Information.
-
Pada kotak dialog Record Custom HTTP Headers in Logs, pilih listener yang ditambahkan ke instans ALB dari daftar drop-down.
Untuk membuat listener, klik Create Listener di daftar drop-down. Untuk informasi selengkapnya, lihat Tambahkan listener HTTP, Tambahkan listener HTTPS, dan Tambahkan listener QUIC.
-
Pada pesan yang muncul, baca informasinya lalu klik OK.
Setelah dikonfigurasi, field slb_headers mencatat semua header permintaan kecuali:
# Field slb_headers tidak mencatat informasi header berikut: host referer user-agent x-forwarded-for x-readtime x-real-ip uber-trace-id X-B3-TraceId X-B3-SpanId X-B3-ParentSpanId X-B3-Sampled
Hapus log akses
-
Pada tab Access Logs, klik Disable Logging di bagian Basic Information.
-
Pada pesan yang muncul, baca informasinya lalu klik OK.
Bidang log
Edisi Standar
|
Field |
Deskripsi |
|
app_lb_id |
ID instans ALB. |
|
__topic__ |
Topik log. Default: alb_layer7_access_log. |
|
body_bytes_sent |
Ukuran badan respons HTTP. Satuan: byte. |
|
client_ip |
Alamat IP klien jika Retrieve Client IP diaktifkan; jika tidak, alamat IP hop sebelumnya. |
|
host |
Nama domain atau alamat IP. Urutan resolusi: parameter permintaan → header host → IP server backend. |
|
http_host |
Header Host dari permintaan HTTP. |
|
http_referer |
Header Referer dari permintaan HTTP. |
|
http_user_agent |
Header User-Agent dari permintaan HTTP. |
|
http_x_forwarded_for |
Header X-Forwarded-For dari permintaan HTTP. |
|
http_x_real_ip |
Header X-Real-IP dari permintaan HTTP. |
|
read_request_time |
Waktu yang dibutuhkan ALB untuk membaca permintaan. Satuan: milidetik. |
|
request_length |
Gabungan ukuran baris awal permintaan, header, dan badan. Satuan: byte. |
|
request_method |
Metode permintaan. |
|
request_time |
Waktu dari penerimaan permintaan hingga pengembalian respons. Satuan: detik. |
|
request_uri |
URI permintaan. |
|
scheme |
Skema permintaan: HTTP atau HTTPS. |
|
server_protocol |
Versi protokol HTTP. Contoh: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
Port pendengar instance ALB. |
|
slb_xtrace |
ID jejak instans ALB untuk analisis pelacakan. |
|
xtrace_type |
Tipe data yang digunakan oleh Xtrace untuk analisis pelacakan instans ALB. Hanya Zipkin yang didukung. |
|
ssl_cipher |
Paket sandi yang digunakan untuk koneksi SSL. Contoh: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
Protokol koneksi SSL. Contoh: TLS 1.2. |
|
status |
Kode status HTTP yang dikembalikan oleh instans ALB. |
|
tcpinfo_rtt |
Waktu pembentukan koneksi TCP. Satuan: milidetik. |
|
time |
Waktu pembuatan log dalam format ISO 8601: |
|
upstream_addr |
Alamat IP dan port server backend. |
|
upstream_response_time |
Waktu dari pembentukan koneksi backend hingga penutupan. Satuan: detik. |
|
upstream_status |
Kode status HTTP dari server backend. |
|
vip_addr |
Alamat IP virtual. |
|
write_response_time |
Waktu penulisan respons. Satuan: milidetik. |
|
client_port |
Nomor port klien. |
|
slb_headers |
Header kustom. Tersedia hanya setelah Anda mengaktifkan pencatatan header kustom. |
Edisi Extensible
|
Field |
Deskripsi |
|
app_lb_id |
ID instans ALB. |
|
__topic__ |
Topik log. Default: alb_layer7_access_log. |
|
body_bytes_sent |
Ukuran badan respons HTTP. Satuan: byte. |
|
client_ip |
Alamat IP klien jika Retrieve Client IP diaktifkan; jika tidak, alamat IP hop sebelumnya. |
|
host |
Nama domain atau alamat IP. Urutan resolusi: parameter permintaan → header host → IP server backend. |
|
http_referer |
Header Referer dari permintaan HTTP. |
|
http_user_agent |
Header User-Agent dari permintaan HTTP. |
|
http_x_forwarded_for |
Header X-Forwarded-For dari permintaan HTTP. Mencatat nilai X-Forwarded-For setelah ditulis ulang oleh ALB. |
|
http_x_real_ip |
Header X-Real-IP dari permintaan HTTP. |
|
read_request_time |
Waktu yang dibutuhkan ALB untuk membaca permintaan. Satuan: milidetik. |
|
request_length |
Gabungan ukuran baris awal permintaan, header, dan badan. Satuan: byte. |
|
request_method |
Metode permintaan. |
|
request_time |
Waktu dari penerimaan permintaan hingga pengembalian respons. Satuan: detik. |
|
request_uri |
URI permintaan. |
|
scheme |
Skema permintaan: HTTP atau HTTPS. |
|
server_protocol |
Versi protokol HTTP. Contoh: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
Port listener instans ALB. |
|
ssl_cipher |
Paket sandi yang digunakan untuk koneksi SSL. Contoh: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
Protokol koneksi SSL. Contoh: TLS 1.2. |
|
status |
Kode status HTTP yang dikembalikan oleh instans ALB. |
|
time |
Waktu pembuatan log dalam format ISO 8601: |
|
upstream_addr |
Alamat IP dan port server backend. |
|
upstream_response_time |
Waktu dari pembentukan koneksi backend hingga penutupan. Satuan: detik. |
|
vip_addr |
Alamat IP virtual. |
|
write_response_time |
Waktu penulisan respons. Satuan: milidetik. |
|
client_port |
Nomor port klien. |
|
upstream_protocol |
Versi protokol HTTP yang digunakan untuk komunikasi antara ALB dan server backend. |
|
upstream_hostname |
Nama domain DNS server backend. Jika tidak tersedia nama domain DNS, alamat IP dan port server backend akan digunakan. |
|
response_flags |
Rincian tambahan tentang respons atau koneksi. |
|
status_details |
Informasi rinci tentang kode status respons, seperti via_upstream, direct_response, dan route_not_found. |
|
llm_log |
Data permintaan AI, dikodekan dalam format JSON. Berisi subfield berikut:
|
Contoh kueri
Pada halaman kueri log Konsol Simple Log Service, Anda dapat memfilter log akses ALB dengan cara berikut:
-
Filter berdasarkan waktu: Gunakan pemilih waktu di bagian atas halaman untuk memilih rentang waktu, seperti 15 menit terakhir, 1 jam terakhir, hari ini, atau rentang waktu kustom.
-
Filter berdasarkan URL: Masukkan
request_uri:/api/xxxdi kotak input kueri untuk menampilkan hanya entri log yang URI permintaannya mengandung/api/xxx. -
Filter berdasarkan kode status: Masukkan
status:200ataustatus:5*untuk mengkueri permintaan dengan kode status tertentu. -
Filter berdasarkan metode permintaan: Masukkan
request_method:Get*untuk memfilter permintaan GET. -
Kueri multi-kondisi: Masukkan
request_uri:/api/xxx and status:200untuk memfilter permintaan yang cocok dengan pola URI tertentu dan mengembalikan kode status 200.
Sebelum menggunakan sintaks field:nilai untuk kueri berbasis field, konfigurasikan indeks tingkat field untuk field log yang sesuai di Konsol Simple Log Service. Indeks teks lengkap tidak mendukung kueri tingkat field. Jika indeks tingkat field tidak dikonfigurasi, kueri akan mengembalikan error. Untuk daftar field yang tersedia untuk pengindeksan, lihat tabel Field log di atas.
FAQ
Dapatkah saya melihat data tentang permintaan yang mengakses instans ALB saya sebelum saya membuat log akses?
Tidak, Anda tidak bisa.
Log akses hanya menangkap data sejak Anda mengaktifkannya. Sebelum Anda membuat log akses, Simple Log Service tidak mengumpulkan data akses apa pun dari ALB.
Mengapa pemantauan ALB menunjukkan anomali (seperti error 4XX atau volume traffic tinggi) atau aktivitas pemindaian, tetapi tidak ada catatan yang muncul di log akses?
Kemungkinan penyebabnya adalah:
1. Log akses belum diaktifkan
Anda harus mengaktifkan fitur log akses ALB untuk mengkueri informasi error rinci, URL permintaan, dan memverifikasi akurasi data. Tanpa log akses yang diaktifkan, sulit melakukan troubleshooting hanya berdasarkan data pemantauan.
2. Kegagalan koneksi TCP atau pemindaian port
ALB adalah load balancer Lapisan 7. Log akses hanya mencatat permintaan HTTP/HTTPS dan tidak mencatat kegagalan koneksi TCP. Untuk mengidentifikasi dan memblokir alamat IP abnormal, aktifkan Cloud Firewall untuk melihat catatan koneksi TCP yang gagal ke alamat IP publik ALB.
3. Timeout listener Lapisan 4
Timeout listener TCP Lapisan 4 biasanya tidak dicatat dalam log Ingress atau log akses. Entri kode status 499 atau 504 mungkin dihasilkan hanya ketika koneksi berhasil dibangun tetapi respons mengalami timeout.
4. Kegagalan proses jabat tangan TLS
Kegagalan proses jabat tangan TLS (seperti ketidakcocokan sertifikat, ketidakcocokan versi protokol) biasanya tidak dapat tercermin langsung dalam log akses karena permintaan HTTP belum dibangun saat proses jabat tangan gagal. Masalah ini memerlukan analisis menggunakan log server backend dan pengambilan paket di sisi klien.
Bagaimana cara menggunakan log akses ALB untuk melakukan troubleshooting URL error, latensi tinggi, atau catatan permintaan tertentu?
Masuk ke Konsol Simple Log Service, buka Logstore ALB yang sesuai, lalu kueri berdasarkan skenario berikut:
1. Kueri URL yang mengembalikan kode status tertentu (seperti 400 atau 4XX)
Di kotak input kueri, masukkan status:400 (atau kode status lain, seperti status:5*). Periksa field request_uri di hasil untuk mengidentifikasi path URL spesifik yang mengembalikan error tersebut.
2. Troubleshoot latensi antarmuka tinggi
Filter berdasarkan field upstream_response_time, yang mencatat waktu dari saat ALB membentuk koneksi ke server backend hingga selesai menerima data (satuan: detik). Nilai tinggi menunjukkan bahwa latensi disebabkan oleh pemrosesan backend, bukan oleh forwarding ALB. Bandingkan dengan field request_time untuk mengonfirmasi total waktu yang berlalu (interval antara menerima permintaan klien dan mengembalikan respons, satuan: detik).
3. Verifikasi catatan permintaan untuk path atau IP sumber tertentu
Field seperti request_uri tidak diindeks secara default di Logstore SLS, sehingga Anda tidak dapat langsung mencari berdasarkan kata kunci path. Gunakan field yang diindeks seperti client_ip (IP klien) atau http_host (Host permintaan) dalam kueri kombinasi untuk mengonfirmasi apakah ALB menerima permintaan dari sumber yang ditentukan. Untuk mencari request_uri secara langsung, buat indeks untuk field ini terlebih dahulu di konsol SLS.
4. Verifikasi akurasi data log
Log akses ALB mencatat seluruh traffic permintaan HTTP/HTTPS dari klien yang mengakses layanan backend melalui ALB. Rujuk bagian Field log dalam dokumen ini untuk memverifikasi definisi data dan mengonfirmasi apakah konten log sesuai dengan traffic bisnis yang diharapkan.