All Products
Search
Document Center

Server Load Balancer:access log

Last Updated:Aug 05, 2026

Fitur access log Classic Load Balancer (CLB) dirancang untuk load balancing Lapisan 7 dan terintegrasi dengan Simple Log Service (SLS) guna meningkatkan efisiensi analisis log serta troubleshooting dalam pengembangan bisnis, pengujian, dan analisis perilaku pengguna.

Ikhtisar

CLB access logs

Fitur access log Classic Load Balancer (CLB) menangkap informasi detail mengenai semua permintaan yang dikirim ke instans CLB, termasuk waktu permintaan, alamat IP client, latensi, path permintaan, dan respons server. Sebagai titik masuk publik, CLB menangani volume permintaan yang tinggi. Anda dapat menggunakan access log untuk menganalisis perilaku pengguna, memahami distribusi traffic, dan melakukan troubleshooting masalah.

Setelah mengaktifkan fitur access log, Anda dapat menyimpan, mengumpulkan, dan menganalisis access log di Logstore Simple Log Service (SLS). Konfigurasi access log dapat dinonaktifkan kapan saja.

Fitur access log CLB gratis, tetapi Simple Log Service dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan Simple Log Service.

Batasan

  • Fitur access log hanya tersedia untuk load balancing Lapisan 7 (pendengar HTTP dan HTTPS) pada CLB.

  • Pendengar Lapisan 4 (TCP/UDP) tidak mendukung fitur access log. Harap konfigurasikan logging langsung pada server backend Anda, misalnya menggunakan access log Nginx atau framework logging tingkat aplikasi.

  • Pastikan nilai Header HTTP tidak mengandung ||. Jika tidak, field log mungkin tidak sejajar saat proses parsing.

Prasyarat

Konfigurasi access logs

  1. Masuk ke Konsol CLB.

  2. Pada panel navigasi kiri, pilih Logs > Access Log.

  3. Pada bilah navigasi atas, pilih wilayah tempat instans CLB dideploy.

  4. Jika ini pertama kalinya Anda menggunakan fitur ini, klik Authorize. Pada halaman Authorize Access to Cloud Resources, klik Confirm.

    Catatan

    Otorisasi ini hanya perlu dilakukan sekali.

    Jika Anda adalah Pengguna RAM, Akun Alibaba Cloud utama harus terlebih dahulu memberikan izin yang diperlukan kepada Anda. Untuk informasi lebih lanjut, lihat Otorisasi Pengguna RAM untuk menggunakan fitur access log CLB.

  5. Pada halaman Access Log (Layer 7), temukan instans CLB target, lalu klik Configure di kolom Actions.

  6. Pada panel Log Settings, atur Project dan Logstore, lalu klik OK.

    • Project: Project adalah unit manajemen sumber daya di SLS yang digunakan untuk isolasi dan kontrol resource. Kami menyarankan menggunakan Project berbeda untuk aplikasi berbeda.

    • Logstore: Logstore adalah unit untuk mengumpulkan, menyimpan, dan mengkueri data log di SLS. Kami menyarankan membuat Logstore terpisah untuk jenis log berbeda dalam satu aplikasi yang sama.

      • Select Logstore: Ini akan mengaktifkan dasbor analisis preset untuk Logstore yang dipilih secara default. Jika indeks sudah dikonfigurasi untuk Logstore tersebut, konfigurasi indeks yang ada akan ditimpa.

    Catatan
    • Pastikan Project berada di wilayah yang sama dengan instans CLB dan namanya unik secara global.

    • Setelah dikonfigurasi, Project dan Logstore SLS mungkin memerlukan beberapa menit hingga muncul di Konsol SLS. Data log tidak hilang selama periode ini. Jika belum terlihat, refresh halaman setelah beberapa saat.

    Setelah Anda mengonfigurasi logging akses untuk load balancer, Anda dapat mengkueri dan mengambil informasi log dengan menggunakan field berikut di SLS.

    Parameter

    Deskripsi

    body_bytes_sent

    Ukuran badan HTTP yang dikirim ke client, dalam byte.

    client_ip

    Alamat IP client.

    client_port

    Port client yang mengirim permintaan.

    host

    Host diambil dari sumber pertama yang tersedia dalam urutan berikut: parameter permintaan, header Host, dan alamat IP server backend yang memproses permintaan.

    http_host

    Isi header Host dalam permintaan.

    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 load balancer untuk membaca permintaan. Satuan: milidetik.

    request_length

    Panjang permintaan, termasuk baris awal, header HTTP, dan badan HTTP.

    request_method

    Metode permintaan.

    request_time

    Waktu dari saat load balancer menerima byte pertama permintaan hingga mengirim byte terakhir respons. Satuan: detik.

    request_uri

    URI permintaan yang diterima oleh load balancer.

    scheme

    Skema permintaan. Nilai yang valid: http dan https.

    server_protocol

    Versi HTTP dari permintaan yang diterima oleh load balancer, seperti HTTP/1.0 atau HTTP/1.1.

    slb_vport

    Port pendengar load balancer.

    slbid

    ID instans load balancer.

    ssl_cipher

    Paket sandi yang digunakan untuk membangun koneksi SSL, seperti ECDHE-RSA-AES128-GCM-SHA256.

    ssl_protocol

    Protokol yang digunakan untuk membangun koneksi SSL, seperti TLSv1.2.

    status

    Kode status dalam respons dari load balancer.

    tcpinfo_rtt

    Waktu round-trip (RTT) koneksi TCP client. Satuan: mikrodetik.

    time

    Waktu saat entri log dicatat.

    upstream_addr

    Alamat IP dan port server backend.

    upstream_response_time

    Waktu dari saat koneksi ke server backend dibangun hingga koneksi ditutup setelah respons diterima. Satuan: detik.

    upstream_status

    Kode status respons yang diterima load balancer dari server backend.

    vip_addr

    Alamat IP virtual (VIP).

    write_response_time

    Waktu yang dibutuhkan load balancer untuk menulis respons. Satuan: milidetik.

Catatan penggunaan

client_ip dan http_x_forwarded_for

Saat menganalisis sumber permintaan dalam access log SLS, kedua field ini memiliki makna berbeda:

  • client_ip: Alamat IP sumber yang membangun koneksi ke CLB, sebagaimana diamati oleh CLB pada lapisan jaringan. Jika tidak ada proxy di depan client, ini adalah alamat IP client sebenarnya. Jika client berada di belakang proxy, ini adalah alamat IP egress proxy terdekat.

  • http_x_forwarded_for: Nilai asli header X-Forwarded-For dalam permintaan inbound yang diterima oleh CLB. Nilai ini ditulis oleh client atau proxy upstream, dapat dipalsukan, dan hanya untuk referensi.

Untuk menganalisis sumber permintaan dalam access log, gunakan client_ip.

Catatan

Jika Anda perlu mendapatkan alamat IP client sebenarnya pada server backend (bukan menganalisisnya dalam access log), perhatikan bahwa pendengar Lapisan-7 CLB secara default meneruskan alamat IP client sebenarnya dalam header X-Forwarded-For. Untuk informasi lebih lanjut, lihat Mengambil alamat IP client dengan pendengar Lapisan 7 CLB.

Mengidentifikasi aturan pengalihan mana yang menangani permintaan

Access log tidak mencatat ID kelompok server atau nama aturan pengalihan lalu lintas. Untuk menentukan aturan pengalihan mana yang menangani permintaan tertentu, korelasikan nilai request_uri dan http_host dalam log dengan aturan pengalihan yang dikonfigurasi di Konsol CLB. Berdasarkan hal ini, Anda dapat memverifikasi apakah aturan pengalihan bekerja sesuai harapan:

  • Mengidentifikasi aturan pengalihan yang tidak aktif: Kueri jumlah kali aturan pengalihan dicocokkan dalam rentang waktu tertentu dengan menggabungkan slbid, request_uri, dan rentang waktu. Jika hasilnya 0, aturan tersebut tidak mencocokkan permintaan apa pun selama periode tersebut. Evaluasi apakah perlu membersihkannya berdasarkan kebutuhan bisnis Anda.

    slbid: <instance-ID> and request_uri: <forwarding-rule-path> | select count(*) as hit_count
  • Memverifikasi bahwa pengalihan sesuai ekspektasi: Bandingkan nilai upstream_addr (alamat IP dan port server backend tempat permintaan benar-benar dialihkan) dalam log dengan anggota kelompok server pendengar terkait di Konsol CLB, untuk memastikan permintaan dialihkan ke server backend yang dimaksud.

Intersepsi kebijakan TLS

Koneksi yang diblokir oleh kebijakan keamanan TLS tidak menyelesaikan proses jabat tangan TLS dan karena itu tidak menghasilkan entri access log. Access log hanya mencatat permintaan yang berhasil membangun koneksi dengan CLB.

Kueri access logs

Setelah Anda mengonfigurasi fitur access log, Anda dapat mengkueri log di Konsol SLS.

  1. Masuk ke Konsol CLB.

  2. Pada panel navigasi kiri, pilih Logs > Access Log.

  3. Pada bilah navigasi atas, pilih wilayah tempat instans CLB dideploy.

  4. Pada halaman Access Log (Layer 7), temukan instans target, lalu klik View Logs di kolom Actions. Anda akan diarahkan ke Konsol SLS.

  5. Setelah SLS dikonfigurasi, Anda dapat melihat entri log untuk client mana pun yang telah mengakses instans CLB.

  6. Masukkan pernyataan SQL untuk mengkueri access log tertentu.

    Sebagai contoh, jalankan pernyataan SQL berikut untuk menemukan 20 client teratas. Hasilnya dapat membantu Anda menganalisis sumber traffic dan menginformasikan keputusan bisnis.

    * | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20

    Sebagai contoh, jalankan pernyataan SQL berikut untuk mengkueri permintaan akses dari rentang alamat IP tertentu dengan memfilter log berdasarkan alamat IP sumber dan kode status respons.

    * | select * where client_ip like '172.17.%' and status=200

    Memfilter log ketika beberapa instans CLB berbagi Logstore

    Jika beberapa instans CLB berbagi Logstore SLS yang sama, kueri yang hanya difilter berdasarkan domain atau port dapat menghasilkan hasil yang tidak lengkap atau menyesatkan. Untuk mempersempit log ke instans CLB dan pendengar tertentu, gabungkan field slbid (ID instans) dan slb_vport (port pendengar) dalam kueri Anda.

    Sebagai contoh, untuk mengkueri error 5xx untuk instans dan port pendengar tertentu, jalankan pernyataan SQL berikut:

    slbid: <instance-ID> and slb_vport: <port> and status: 5*

    Jika kueri Anda tidak menghasilkan data, verifikasi hal berikut:

    • Nilai slbid harus persis sesuai dengan ID instans yang ditampilkan di Konsol CLB (bukan nama instans).

    • Nilai slb_vport harus sesuai dengan nomor port pendengar (misalnya, 80 atau 443).

    • Perluas rentang waktu kueri, karena entri log mungkin ditulis dengan sedikit penundaan.

    Catatan

    Perhatikan hal berikut mengenai perilaku refresh log dan entri dengan timestamp yang sama:

    • Perilaku refresh log: Statistik indeks field di SLS diperbarui secara real time saat entri log ditulis. Tidak ada interval refresh tetap. Jika Anda mengganti rentang waktu kueri di konsol, klik tombol kueri untuk memuat ulang hasilnya.

    • Beberapa entri dengan timestamp yang sama: Jika Anda melihat beberapa entri log yang memiliki nilai time yang sama, ini merupakan perilaku yang diharapkan dan menunjukkan bahwa client mengirim beberapa permintaan dalam satu detik yang sama. Ini adalah pola normal untuk client frekuensi tinggi dan bukan indikasi kesalahan sistem. Jika Anda menentukan bahwa permintaan berulang tersebut tidak normal, konfigurasikan kebijakan kontrol akses untuk membatasi alamat IP sumber.

Kueri log secara terprogram menggunakan SDK atau API SLS

Data access log CLB disimpan di Logstore dalam Simple Log Service (SLS). Selain melalui konsol, Anda dapat mengkueri data log secara terprogram menggunakan SDK atau API SLS tanpa perlu masuk ke konsol. Untuk langkah-langkah detail dan contoh kode, lihat Quickstart: Upload dan analisis log dengan SDK SLS.

Catatan

API sisi CLB seperti DescribeAccessLogsDownloadAttribute hanya digunakan untuk mengelola konfigurasi unduh log dan tidak dapat digunakan untuk mengkueri data log.

Analisis access logs

Anda dapat menggunakan dasbor di SLS untuk menganalisis access log. Dasbor menyediakan visualisasi data dan wawasan yang kaya.

  1. Pada halaman SLS, klik ikon image.png di panel navigasi kiri, lalu klik Dashboard.

  2. Klik nama dasbor yang sesuai dengan access log instans CLB Anda, seperti slb_layer7_access_center_en, untuk melihat laporan analisis.

Analisis traffic bisnis

Selain dasbor, Anda dapat menulis pernyataan SQL untuk skenario bisnis umum berikut.

Menghitung permintaan berdasarkan port pendengar

Untuk menghitung jumlah total permintaan yang ditangani oleh instans CLB dan port pendengar tertentu:

slbid: <instance-ID> and slb_vport: <port> | select count(*) as total_requests

Menampilkan pangsa traffic domain

Untuk menghitung pangsa traffic setiap domain berdasarkan field http_host dan request_length:

* | select http_host, sum(request_length) as total_bytes, round(sum(request_length) * 100.0 / sum(sum(request_length)) over(), 2) as traffic_pct group by http_host order by total_bytes desc

Menampilkan distribusi traffic server backend

Untuk mengidentifikasi server backend mana yang menerima permintaan terbanyak dan memperkirakan distribusi traffiknya menggunakan upstream_addr dan request_length:

* | select upstream_addr, count(*) as request_count, sum(request_length) as total_bytes group by upstream_addr order by request_count desc limit 20

Identifikasi permintaan tidak normal

Access log CLB mencatat semua permintaan eksternal yang melewati instans load balancer. Jika Anda menemukan permintaan dari sumber tidak dikenal dalam log, Anda dapat menggunakan field kunci berikut untuk menentukan apakah permintaan tersebut merupakan permintaan eksternal tidak normal dan mengambil tindakan perlindungan yang sesuai.

Field kunci

Gabungkan field log berikut untuk menentukan apakah permintaan berasal dari client tidak normal:

  • client_ip: Alamat IP client yang mengirim permintaan. Jika alamat IP tersebut tidak termasuk dalam sistem bisnis Anda atau rentang alamat IP internal Alibaba Cloud, permintaan tersebut berasal dari client eksternal. Anda dapat menggunakan tool pencarian IP untuk memastikan sumbernya lebih lanjut.

  • request_uri: Path URI permintaan. Jika muncul path yang tidak terkait dengan bisnis Anda (seperti path probe atau scan, atau path API layanan cloud lain), permintaan tersebut biasanya merupakan permintaan eksternal tidak normal.

  • request_method: Metode HTTP dari permintaan. Jika bisnis Anda hanya menggunakan permintaan GET tetapi log menunjukkan banyak permintaan PUT atau DELETE, periksa adanya perilaku tidak normal.

  • http_user_agent: Identifier User-Agent dari permintaan. Tool otomatis atau crawler sering menggunakan header User-Agent tertentu, seperti curl atau python-requests, yang berbeda dari permintaan browser normal.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut di SLS untuk mengkueri permintaan tidak normal dari alamat IP yang tidak diharapkan:

* | select client_ip, request_method, request_uri, count(*) as cnt group by client_ip, request_method, request_uri order by cnt desc limit 50

Batasi IP sumber tidak normal

Setelah Anda mengonfirmasi alamat IP sumber permintaan tidak normal, Anda dapat menggunakan fitur kontrol akses CLB untuk mengonfigurasi blacklist dan memblokir permintaan selanjutnya dari alamat IP tersebut. Lakukan langkah-langkah berikut:

  1. Pada panel navigasi kiri Konsol CLB, pilih Access Control.

  2. Buat kelompok kebijakan kontrol akses dan tambahkan alamat IP sumber tidak normal yang telah diidentifikasi ke dalamnya.

  3. Ikat kelompok kebijakan tersebut ke pendengar Anda sebagai blacklist. CLB kemudian akan menolak semua permintaan dari alamat IP yang masuk daftar hitam alih-alih meneruskannya ke server backend.

Nonaktifkan access logs

Anda dapat menonaktifkan fitur access log untuk berhenti mengumpulkan access log CLB.

Catatan

Menonaktifkan logging akses untuk instans CLB tidak menghapus Project atau Logstore terkait. Log historis instans tersebut tidak langsung dihapus, dan Anda masih dapat mengelolanya di SLS.

  1. Masuk ke Konsol CLB.

  2. Pada panel navigasi kiri, pilih Logs > Access Log.

  3. Pada bilah navigasi atas, pilih wilayah tempat instans CLB dideploy.

  4. Pada halaman Access Log (Layer 7), temukan instans target, lalu klik Disable Logging di kolom Actions.

  5. Pada kotak dialog yang muncul, klik OK untuk menonaktifkan logging akses untuk instans tersebut.

Dokumen terkait

FAQ

Bagaimana cara menggunakan access log untuk troubleshooting latensi permintaan, timeout, atau masalah koneksi?

Mengidentifikasi sumber latensi

Bandingkan field request_time dan upstream_response_time:

  • request_time: Waktu total yang berlalu sejak CLB menerima byte pertama permintaan hingga mengirim byte terakhir respons. Satuan: detik.

  • upstream_response_time: Waktu sejak CLB membangun koneksi ke server backend hingga menerima respons lengkap dan menutup koneksi. Satuan: detik.

Selisih antara keduanya (request_time dikurangi upstream_response_time) mencakup pemrosesan CLB, round trip jaringan antara client dan CLB, serta waktu yang dibutuhkan client untuk membaca respons. Bandingkan proporsinya untuk menemukan bottleneck:

  • upstream_response_time menyumbang proporsi besar dari request_time: Latensi terutama disebabkan oleh respons server backend yang lambat. Periksa performa aplikasi backend, database, dan sebagainya.

  • upstream_response_time menyumbang proporsi kecil (artinya selisihnya besar): Backend merespons dengan cepat, sehingga bottleneck lebih mungkin terjadi pada jaringan antara client dan CLB, atau client membaca badan respons besar dengan lambat. Gunakan field seperti client_ip dan body_bytes_sent untuk investigasi lebih lanjut, alih-alih mengaitkan latensi pada pemrosesan CLB.

Menangani timeout

Permintaan yang mengalami timeout gagal selama proses jabat tangan TCP atau fase pembentukan protokol dan tidak menghasilkan entri access log yang sesuai. Akibatnya, Anda tidak dapat menemukan permintaan ini secara langsung dalam access log. Untuk investigasi tidak langsung, kueri access log untuk rentang waktu terkait di Konsol SLS dan periksa adanya penurunan tajam volume permintaan atau celah dalam log untuk memperkirakan kapan timeout terjadi. Untuk diagnosis lebih lanjut, lakukan troubleshooting end-to-end menggunakan log upstream dan downstream, seperti log WAF di upstream CLB dan log aplikasi serta firewall pada instans ECS backend Anda.