Logging
Anda dapat mengaktifkan, menonaktifkan, dan melihat log untuk layanan backend Load Balancer Aplikasi eksternal. Untuk Load Balancer Aplikasi eksternal dengan bucket backend, logging akan otomatis diaktifkan dan tidak dapat dinonaktifkan.
Anda mengaktifkan atau menonaktifkan logging untuk setiap layanan backend. Anda dapat mengonfigurasi apakah akan mencatat log semua permintaan atau fraksi sampel acak.
Anda harus memastikan bahwa Anda tidak memiliki pengecualian log yang berlaku untuk Load Balancer Aplikasi eksternal. Untuk petunjuk tentang cara memverifikasi bahwa log Cloud HTTP Load
Balancer
diizinkan, lihat Melihat pengecualian jenis resource.
Pengambilan sampel dan pengumpulan log
Permintaan (dan respons yang sesuai) yang ditangani oleh instance virtual machine (VM) backend load balancer diambil sampelnya. Permintaan sampel ini kemudian
diproses untuk membuat log. Anda mengontrol fraksi permintaan yang
dimunculkan sebagai entri log sesuai dengan parameter
logConfig.sampleRate. Jika logConfig.sampleRate
adalah 1.0
(100%), artinya log
dibuat untuk semua permintaan dan ditulis ke Cloud Logging.
Mengaktifkan logging di layanan backend baru
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Pilih Create a backend service.
Lengkapi kolom layanan backend yang diperlukan.
Di bagian Logging, centang kotak Enable logging.
Tetapkan pecahan Sample rate. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai defaultnya adalah1.0
.Untuk menyelesaikan pengeditan layanan backend, klik Update.
Untuk menyelesaikan pengeditan load balancer, klik Update.
gcloud: Mode global
Buat layanan backend dan aktifkan logging menggunakan
perintah gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.--enable-logging
mengaktifkan logging untuk layanan backend tersebut.--logging-sample-rate
memungkinkan Anda menentukan nilai dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
gcloud: Mode klasik
Buat layanan backend dan aktifkan logging menggunakan
perintah gcloud compute backend-services create
.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.--enable-logging
mengaktifkan logging untuk layanan backend tersebut.--logging-sample-rate
memungkinkan Anda menentukan nilai dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
Mengaktifkan logging di layanan backend yang ada
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Klik
Edit di samping layanan backend Anda.Di bagian Logging, centang kotak Enable logging.
Di kolom Sample rate, tetapkan probabilitas sampling. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai default-nya adalah1.0
.Untuk menyelesaikan pengeditan layanan backend, klik Update.
Untuk menyelesaikan pengeditan load balancer, klik Update.
gcloud: Mode global
Aktifkan logging di layanan backend yang ada dengan
perintah gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.--enable-logging
mengaktifkan logging untuk layanan backend tersebut.--logging-sample-rate
memungkinkan Anda menentukan nilai dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
gcloud: Mode klasik
Aktifkan logging di layanan backend yang ada dengan
perintah gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.--enable-logging
mengaktifkan logging untuk layanan backend tersebut.--logging-sample-rate
memungkinkan Anda menentukan nilai dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
Menonaktifkan atau mengubah logging di layanan backend yang ada
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Klik
Edit di samping layanan backend Anda.Untuk menonaktifkan logging sepenuhnya, di bagian Logging, hapus centang pada kotak Enable logging.
Jika Anda mengaktifkan logging, Anda dapat menetapkan fraksi Sample rate yang berbeda. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai defaultnya adalah1.0
. Misalnya,0.2
berarti 20% permintaan sampel menghasilkan log.Untuk menyelesaikan pengeditan layanan backend, klik Update.
Untuk menyelesaikan pengeditan load balancer, klik Update.
gcloud: Mode global
Nonaktifkan logging di layanan backend dengan
perintah gcloud compute backend-services update
.
Menonaktifkan logging sepenuhnya
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.--region
menunjukkan bahwa layanan backend bersifat regional. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal regional.--no-enable-logging
menonaktifkan logging untuk layanan backend tersebut.
Mengubah frekuensi sampel logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
gcloud: Mode klasik
Nonaktifkan logging di layanan backend dengan
perintah gcloud compute backend-services update
.
Menonaktifkan logging sepenuhnya
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.--no-enable-logging
menonaktifkan logging untuk layanan backend tersebut.
Mengubah frekuensi sampel logging
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
di mana
--global
menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.--logging-sample-rate
memungkinkan Anda menentukan nilai dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging.
Lihat log
Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:
Log HTTP(S) diindeks terlebih dahulu oleh aturan penerusan, lalu oleh peta URL.
Untuk melihat log, buka halaman Logs Explorer:
Untuk melihat semua log, di menu filter Resource, pilih Cloud HTTP Load Balancer > All forwarding rules.
Untuk melihat log satu aturan penerusan, pilih satu nama aturan penerusan.
Untuk melihat log untuk satu peta URL, pilih aturan penerusan, lalu pilih peta URL.
Kolom log berjenis boolean biasanya hanya muncul jika memiliki nilai true
.
Jika kolom boolean memiliki nilai false
, kolom tersebut akan dihilangkan dari log.
Encoding UTF-8 diterapkan untuk kolom log. Karakter yang bukan karakter UTF-8
akan diganti dengan tanda tanya.
Untuk Load Balancer Aplikasi klasik dan Load Balancer Aplikasi eksternal global, Anda dapat mengekspor
metrik berbasis log menggunakan
log resource (resource.type="http_load_balancer"
). Metrik
yang dibuat didasarkan pada resource "Aturan Load Balancer Aplikasi
(Metrik Berbasis Log)" (l7_lb_rule
), yang tersedia di
dasbor Cloud Monitoring, bukan di resource https_lb_rule
.
Apa itu log?
Entri log Load Balancer Aplikasi Eksternal berisi informasi yang berguna untuk memantau dan men-debug traffic HTTP(S) Anda. Data log berisi kolom wajib diisi, yang merupakan kolom default dari setiap data log.
Kolom | Format kolom | Jenis kolom: Wajib Diisi atau Opsional | Deskripsi |
---|---|---|---|
severity insertID logName |
LogEntry | Wajib | Kolom umum seperti yang dijelaskan dalam entri log. |
stempel waktu | string (
|
Opsional | Waktu saat GFE lapisan pertama menerima permintaan. |
httpRequest | HttpRequest | Wajib | Protokol umum untuk mencatat permintaan HTTP.
|
resource | MonitoredResource | Wajib | MonitoredResource adalah jenis resource yang terkait dengan entri log. MonitoredResourceDescriptor
menjelaskan skema objek |
jsonPayload | objek (format Struct) | Wajib | Payload entri log yang dinyatakan sebagai objek JSON. Objek JSON berisi kolom berikut:
|
string | Wajib | Kolom statusDetails
menyimpan string yang menjelaskan alasan load balancer menampilkan
status HTTP yang ditampilkan. Untuk informasi selengkapnya tentang string log ini,
lihat pesan keberhasilan HTTP statusDetails dan
pesan kegagalan HTTP statusDetails. |
|
string | Wajib | Kolom backendTargetProjectNumber menyimpan nomor project tempat target backend—layanan backend atau bucket backend—telah dibuat. Kolom ini memiliki format:
"projects/PROJECT_NUMBER" . Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
bilangan bulat | Wajib | overrideResponseCode menyimpan kode respons penggantian
yang diterapkan ke respons yang dikirim ke klien. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
string | Wajib | Kolom errorService menyimpan layanan backend yang menyediakan respons error kustom. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
string | Wajib | Kolom errorBackendStatusDetails menyimpan
statusDetails respons akhir yang ditayangkan ke klien.
Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
AuthzPolicyInfo | Wajib | Kolom authzPolicyInfo menyimpan informasi tentang
hasil Kebijakan Otorisasi. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang mengaktifkan
Kebijakan Otorisasi. Untuk informasi selengkapnya, lihat
yang dicatat ke dalam log untuk kebijakan otorisasi. |
|
string | Opsional | Kolom loadBalancingScheme hanya diisi untuk
pelanggan yang menggunakan fitur migrasi Load Balancer Aplikasi klasik. Kolom ini menyimpan string yang menjelaskan skema load balancing
yang digunakan untuk merutekan permintaan. Kemungkinan nilainya adalah
EXTERNAL atau EXTERNAL_MANAGED . |
Label resource
Tabel berikut mencantumkan label resource untuk
resource.type="http_load_balancer"
.
Kolom | Jenis | Deskripsi |
---|---|---|
backend_service_name |
string | Nama layanan backend. |
forwarding_rule_name |
string | Nama objek aturan penerusan. |
project_id |
string | ID project Google Cloud yang terkait dengan resource ini. |
target_proxy_name |
string | Nama objek proxy target yang dirujuk oleh aturan penerusan. |
url_map_name |
string | Nama objek peta URL yang dikonfigurasi untuk memilih layanan backend. |
zone |
string | Zona tempat load
balancer berjalan. Zonanya adalah global . |
Pesan berhasil HTTP statusDetails
statusDetails (berhasil) | Arti | Kode respons yang menyertainya |
---|---|---|
byte_range_caching
|
Permintaan HTTP ditayangkan menggunakan caching rentang byte Cloud CDN. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_from_cache
|
Permintaan HTTP ditayangkan dari cache Cloud CDN. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_from_cache_validated
|
Kode yang ditampilkan ditetapkan dari entri cache Cloud CDN yang divalidasi oleh backend. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_sent_by_backend
|
Permintaan HTTP berhasil di-proxy ke backend, dan respons ditampilkan oleh backend. | Kode respons HTTP ditetapkan oleh software yang berjalan di backend. |
Pesan kegagalan HTTP statusDetails
statusDetails (kegagalan) | Arti | Kode respons yang menyertainya |
---|---|---|
aborted_request_due_to_backend_early_response
|
Permintaan dengan isi dibatalkan karena backend mengirim respons awal dengan kode error. Respons diteruskan ke klien. Permintaan dihentikan. | 4XX atau 5XX |
backend_connection_closed_after_partial_response_sent
|
Koneksi backend ditutup secara tidak terduga setelah respons sebagian dikirim ke klien. | Kode respons HTTP ditetapkan oleh software yang berjalan di backend. Kode respons HTTP 0 (nol) berarti backend mengirim header HTTP yang tidak lengkap. Kode respons HTTP adalah 101 jika koneksi HTTP(S) diupgrade ke koneksi websocket. |
backend_connection_closed_before_data_sent_to_client
|
Backend tiba-tiba menutup koneksinya ke load balancer sebelum respons di-proxy ke klien. | 502, 503 Kode respons HTTP adalah 101 jika koneksi HTTP(S) diupgrade ke koneksi websocket. |
backend_early_response_with_non_error_status
|
Backend mengirim respons non-error (1XX atau 2XX) ke permintaan sebelum menerima seluruh isi permintaan. | 502, 503 |
backend_interim_response_not_supported
|
Backend mengirim respons 1XX sementara ke permintaan dalam konteks tempat respons sementara tidak didukung. | 502, 503 |
backend_response_corrupted
|
Isi respons HTTP yang dikirim oleh backend memiliki encoding transfer chunked yang tidak valid atau rusak. | Setiap kode respons mungkin bergantung pada sifat kerusakan. Sering kali 502, 503. |
backend_response_headers_too_long
|
Header respons HTTP yang dikirim oleh backend melebihi batas yang diizinkan. Lihat bagian Ukuran header untuk Load Balancer Aplikasi eksternal untuk mengetahui informasi selengkapnya. | 502, 503 |
backend_timeout
|
Waktu tunggu backend habis saat membuat respons. Untuk koneksi websocket:
|
502, 503 Kode respons HTTP adalah 101 jika koneksi HTTP(S) diupgrade ke koneksi websocket. |
banned_by_security_policy
|
Permintaan tersebut dilarang oleh aturan larangan berbasis kapasitas Google Cloud Armor. | 429 |
body_not_allowed
|
Klien mengirim permintaan HTTP dengan isi, tetapi metode HTTP yang digunakan tidak mengizinkan isi. | 400 |
byte_range_caching_aborted
|
Load balancer sebelumnya menerima respons yang menunjukkan bahwa resource dapat di-cache dan mendukung rentang byte. Cloud CDN menerima respons yang tidak konsisten (misalnya, respons dengan kode respons selain 206 Partial Content yang diharapkan). Hal ini terjadi saat mencoba melakukan pengisian cache menggunakan permintaan rentang byte. Akibatnya, load balancer membatalkan respons ke klien. | 2XX |
byte_range_caching_forwarded_backend_response
|
Load balancer sebelumnya menerima respons yang menunjukkan bahwa resource dapat di-cache dan mendukung rentang byte. Cloud CDN menerima respons yang tidak konsisten (misalnya, respons dengan kode respons selain 206 Partial Content yang diharapkan). Hal ini terjadi saat mencoba melakukan pengisian cache menggunakan permintaan rentang byte. Load balancer kemudian meneruskan respons yang tidak konsisten ke klien. | Ditampilkan dari backend—kode respons apa pun dapat digunakan. |
byte_range_caching_retrieval_abandoned
|
Klien membatalkan permintaan rentang byte atau permintaan validasi yang dimulai oleh Cloud CDN. | Ditampilkan dari backend—kode respons apa pun dapat digunakan. |
byte_range_caching_retrieval_from_backend_failed_after_partial_response
|
Permintaan rentang byte atau permintaan validasi yang dimulai oleh Cloud CDN mengalami error. Lihat entri log Cloud Logging yang sesuai untuk permintaan yang dimulai oleh Cloud CDN untuk mengetahui status backend yang mendetail. | 2XX |
cache_lookup_failed_after_partial_response
|
Load balancer gagal menayangkan respons lengkap dari cache Cloud CDN karena error internal. | 2XX |
cache_lookup_timeout_after_partial_response
|
Streaming pencarian cache Cloud CDN habis waktu tunggunya karena klien tidak mengambil konten secara tepat waktu. | 2XX |
client_disconnected_after_partial_response
|
Koneksi ke klien terputus setelah load balancer mengirim respons sebagian. | Ditampilkan dari backend—kode respons apa pun dapat digunakan. Kode respons HTTP adalah 101 jika koneksi HTTP(S) diupgrade ke koneksi websocket. |
client_disconnected_before_any_response
|
Koneksi ke klien terputus sebelum load balancer mengirim respons apa pun. | 0 Kode respons HTTP adalah 101 jika koneksi HTTP(S) diupgrade ke koneksi websocket. |
client_timed_out
|
Google Front End (GFE) membuat koneksi klien tidak ada aktivitas karena tidak ada progres saat melakukan proxy permintaan atau respons. | 0 atau 408 |
client_cert_invalid_rsa_key_size
|
Sertifikat klien atau sertifikat perantara memiliki ukuran kunci RSA yang tidak valid. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_unsupported_elliptic_curve_key
|
Sertifikat klien atau perantara menggunakan kurva ekliptik yang tidak didukung. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_unsupported_key_algorithm
|
Sertifikat klien atau perantara menggunakan algoritma non-RSA atau non-ECDSA. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_pki_too_large
|
PKI yang akan digunakan untuk validasi memiliki lebih dari tiga sertifikat perantara yang memiliki Info Kunci Publik dan Subjek yang sama. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. | 0 |
client_cert_chain_max_name_constraints_exceeded
|
Sertifikat intermediate yang diberikan untuk validasi memiliki lebih dari sepuluh batasan nama. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_chain_invalid_eku |
Sertifikat klien atau penerbitnya tidak memiliki
Extended Key Usage (EKU) yang menyertakan clientAuth . Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0 |
client_cert_validation_timed_out
|
Batas waktu terlampaui saat memvalidasi rantai sertifikat. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_validation_search_limit_exceeded
|
Batas kedalaman atau iterasi tercapai saat mencoba memvalidasi rantai sertifikat. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_validation_not_performed
|
Anda telah mengonfigurasi mTLS tanpa menyiapkan TrustConfig .
Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0 |
client_cert_not_provided
|
Klien tidak memberikan sertifikat yang diminta selama handshake. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_validation_failed
|
Sertifikat klien gagal dalam validasi dengan TrustConfig saat algoritma hashing seperti MD4, MD5, dan SHA-1 digunakan.
Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0 |
config_not_found
|
Load balancer tidak memiliki konfigurasi project. Hal ini mungkin terjadi secara berkala, terutama setelah Anda melakukan perubahan konfigurasi yang menambahkan resource baru. Karena ada dua lapisan proxy, terkadang GFE lapisan pertama mungkin gagal menjangkau GFE lapisan kedua. Hal ini dapat disebabkan oleh error internal, seperti peluncuran yang sedang berlangsung, kelebihan beban load balancer, atau masalah konfigurasi yang terputus-putus. |
404, 502, 503 |
direct_response
|
Load balancer mengganti permintaan ini dan menampilkan respons tetap. | Anda mungkin melihat kode respons HTTP apa pun, bergantung pada sifat masalahnya. Misalnya, kode respons HTTP 410 berarti backend tidak tersedia karena keterlambatan pembayaran. |
denied_by_security_policy
|
Load balancer menolak permintaan ini karena adanya kebijakan keamanan Google Cloud Armor. | Dikonfigurasi dalam kebijakan keamanan. |
error_uncompressing_gzipped_body
|
Terjadi error saat mengekstrak respons HTTP yang di-gzip. | 502, 503 |
failed_to_connect_to_backend
|
Load balancer gagal terhubung ke backend. Hal ini mencakup waktu tunggu selama fase koneksi. | 502, 503 |
failed_to_pick_backend
|
Load balancer gagal memilih backend yang sehat untuk menangani permintaan. | 502, 503 |
failed_to_negotiate_alpn
|
Load balancer dan backend gagal menegosiasikan protokol lapisan aplikasi (seperti HTTP/2) yang akan digunakan untuk berkomunikasi satu sama lain melalui TLS. | 502, 503 |
headers_too_long
|
Header permintaan lebih besar dari batas maksimum yang diizinkan. | 413 |
http_version_not_supported
|
Versi HTTP tidak didukung. Saat ini, hanya HTTP 0.9, 1.0, 1.1, dan 2.0 yang didukung. | 400 |
internal_error
|
Terjadi error internal di load balancer. Biasanya mewakili error sementara di infrastruktur load balancer. Coba lagi kueri Anda. | 4XX |
invalid_external_origin_endpoint
|
Konfigurasi untuk backend eksternal tidak valid. Tinjau konfigurasi NEG internet dan pastikan konfigurasi tersebut menentukan port dan alamat FQDN/IP yang valid. | 4XX |
invalid_request_headers
|
Header permintaan HTTP yang diterima dari klien berisi minimal satu karakter yang tidak diizinkan berdasarkan spesifikasi HTTP yang berlaku. Misalnya, nama kolom header yang menyertakan tanda kutip ganda
( Untuk informasi selengkapnya, lihat: |
400 |
invalid_http2_client_header_format
|
Header HTTP/2 dari klien tidak valid. Untuk informasi selengkapnya, lihat
invalid_request_headers .
|
400 |
invalid_http2_client_request_path
|
Jalur permintaan HTTP/2 dari klien berisi setidaknya satu karakter yang tidak diizinkan berdasarkan spesifikasi URI. Untuk mengetahui informasi selengkapnya, lihat bagian "3.3. Path" di RFC 3986. |
400 |
multiple_iap_policies
|
Beberapa kebijakan Identity-Aware Proxy (IAP) tidak dapat digabungkan. Jika Anda memiliki kebijakan IAP yang dilampirkan ke layanan backend dan kebijakan lain yang dilampirkan ke objek serverless, hapus salah satu kebijakan dan coba lagi. Objek serverless mencakup App Engine, Cloud Run, dan fungsi Cloud Run. | 500 |
malformed_chunked_body
|
Isi permintaan tidak dienkode dengan benar. | 411 |
request_loop_detected
|
Load balancer mendeteksi loop permintaan. Loop ini mungkin disebabkan oleh kesalahan konfigurasi saat backend meneruskan permintaan kembali ke load balancer. | 502, 503 |
required_body_but_no_content_length
|
Permintaan HTTP memerlukan isi, tetapi header permintaan tidak menyertakan panjang konten atau header chunked encoding transfer. | 400 atau 403 |
secure_url_rejected
|
Permintaan dengan URL https:// diterima melalui koneksi HTTP/1.1 teks biasa. | 400 |
ssl_certificate_san_verification_failed
|
Load balancer tidak dapat menemukan SAN (Nama Alternatif Subjek) dalam sertifikat SSL yang ditampilkan oleh backend yang cocok dengan nama host yang dikonfigurasi. | 502, 503 |
ssl_certificate_chain_verification_failed
|
Sertifikat SSL yang ditampilkan oleh backend gagal dalam memverifikasi sertifikat SSL. | 502, 503 |
throttled_by_security_policy
|
Permintaan diblokir oleh aturan throttle Google Cloud Armor. | 429 |
unsupported_method
|
Klien memberikan metode permintaan HTTP yang tidak didukung. | 400 |
unsupported_100_continue
|
Permintaan klien menyertakan header 'Expect: 100-continue' pada protokol yang tidak mendukungnya. | 400 |
upgrade_header_rejected
|
Permintaan HTTP klien berisi header Upgrade dan ditolak. | 400 |
websocket_closed
|
Koneksi websocket ditutup. | 101 |
websocket_handshake_failed
|
Handshake websocket gagal. | Setiap kode respons yang mungkin bergantung pada sifat kegagalan handshake. |
request_body_too_large
|
Isi permintaan HTTP melebihi batas maksimum yang didukung oleh backend. Tidak berlaku untuk backend VM. | 413 |
handled_by_identity_aware_proxy
|
Respons ini dibuat oleh Identity-Aware Proxy selama verifikasi identitas klien sebelum mengizinkan akses. | 200, 302, 400, 401, 403, 500, 502, 503 |
serverless_neg_routing_failed
|
Permintaan NEG serverless tidak dapat dikirim. Error ini dapat terjadi saat region yang ditentukan dalam NEG tidak dapat dijangkau, atau saat nama resource (misalnya, nama fungsi Cloud Run) tidak dapat ditemukan. | 404, 502, 503 |
fault_filter_abort
|
Error ini dapat terjadi jika pelanggan telah mengonfigurasi filter error dan filter error dipicu untuk permintaan tertentu. | Nilai harus dari 200 hingga 599. |
Melihat log untuk validasi sertifikat klien mTLS
Untuk melihat error yang dicatat ke dalam log untuk koneksi tertutup selama validasi sertifikat klien TLS timbal balik, selesaikan langkah-langkah berikut.
Kueri konsol
Di konsol Google Cloud, buka halaman Logs Explorer.
Klik tombol Show query.
Tempel perintah berikut ke dalam kolom kueri. Ganti
FORWARDING_RULE_NAME
dengan nama aturan penerusan Anda.jsonPayload.statusDetails=~"client_cert" jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
Klik Run query.
Log permintaan kebijakan otorisasi
Objek authz_info
dalam payload JSON Entri Log Load Balancer berisi
informasi tentang kebijakan otorisasi. Anda dapat mengonfigurasi metrik berbasis log
untuk traffic yang diizinkan atau ditolak oleh kebijakan ini. Periksa
detail log kebijakan otorisasi lainnya.
Kolom | Jenis | Deskripsi |
---|---|---|
authz_info.policies[] |
objek | Daftar kebijakan yang cocok dengan permintaan. |
authz_info.policies[].name |
string | Nama kebijakan otorisasi yang cocok dengan permintaan. Nama kosong karena alasan berikut:
|
authz_info.policies[].result |
enum | Hasilnya dapat berupa ALLOWED atau DENIED . |
authz_info.policies[].details |
string | Detailnya mencakup hal berikut:
|
authz_info.overall_result |
enum | Hasilnya dapat berupa ALLOWED atau DENIED . |
Logging untuk Google Cloud Armor
Tabel untuk pesan kegagalan HTTP statusDetail
berisi beberapa pesan yang berlaku untuk Google Cloud Armor. Untuk mengetahui informasi selengkapnya tentang log yang disimpan Google Cloud Armor, lihat Menggunakan logging permintaan.
Logging untuk deployment VPC Bersama
Log dan metrik Load Balancer Aplikasi biasanya diekspor ke project yang memiliki aturan penerusan. Oleh karena itu, admin layanan—pemilik atau pengguna project tempat layanan backend dibuat—tidak akan memiliki akses ke log dan metrik load balancer secara default. Anda dapat menggunakan peran IAM untuk memberikan izin ini kepada admin layanan. Untuk mempelajari lebih lanjut peran IAM yang tersedia, dan langkah-langkah untuk memberikan akses, lihat Memberikan akses ke Monitoring.
Berinteraksi dengan log
Anda dapat berinteraksi dengan log Load Balancer Aplikasi eksternal menggunakan Cloud Logging API. Logging API menyediakan cara untuk memfilter log secara interaktif yang memiliki kolom tertentu yang ditetapkan. Alat ini mengekspor log yang cocok ke Cloud Logging, Cloud Storage, BigQuery, atau Pub/Sub. Untuk mengetahui informasi selengkapnya tentang Logging API, lihat Ringkasan Cloud Logging API.
Pemantauan
Load balancer mengekspor data pemantauan ke Cloud Monitoring.
Anda dapat menggunakan metrik pemantauan untuk melakukan hal berikut:
- Mengevaluasi konfigurasi, penggunaan, dan performa load balancer
- Memecahkan masalah
- Meningkatkan pemanfaatan resource dan pengalaman pengguna
Frekuensi dan retensi pelaporan metrik
Metrik untuk Load Balancer Aplikasi eksternal diekspor ke Cloud Monitoring dalam batch perincian 1 menit. Data Monitoring disimpan selama enam (6) minggu.
Dasbor ini menyediakan analisis data dalam interval default 1H (satu jam), 6H (enam jam), 1D (satu hari), 1W (satu minggu), dan 6W (enam minggu). Anda dapat meminta analisis secara manual dalam interval berapa pun dari 6W hingga 1 menit.
Metrik pemantauan
Anda dapat memantau metrik berikut untuk Load Balancer Aplikasi eksternal.
Metrik berikut untuk Load Balancer Aplikasi eksternal global
dilaporkan ke Cloud Monitoring.
Metrik ini diawali dengan loadbalancing.googleapis.com/
.
Metrik | Nama | Deskripsi |
---|---|---|
Jumlah permintaan | https/request_count |
Jumlah permintaan yang ditayangkan oleh Load Balancer Aplikasi eksternal |
Meminta jumlah byte | https/request_bytes_count |
Jumlah byte yang dikirim sebagai permintaan dari klien ke Load Balancer Aplikasi eksternal |
Jumlah byte respons | https/response_bytes_count |
Jumlah byte yang dikirim sebagai respons dari Load Balancer Aplikasi eksternal ke klien |
Total latensi | https/total_latencies |
Distribusi latensi. Latensi adalah waktu antara byte pertama permintaan yang diterima hingga byte terakhir respons yang dikirim oleh GFE. Total latensi diukur berdasarkan permintaan/respons. Jeda di antara permintaan
pada koneksi yang sama yang menggunakan Untuk koneksi websocket, kolom ini merujuk pada seluruh durasi waktu koneksi.† Contoh: Load balancer memiliki 1 permintaan per detik dari Inggris Raya, semuanya dengan latensi 100 md, dan 9 permintaan per detik dari Amerika Serikat, semuanya dengan latensi 50 md. Selama menit tertentu, ada 60 permintaan dari Inggris Raya dan 540 permintaan dari Amerika Serikat. Metrik pemantauan mempertahankan distribusi di semua dimensi. Anda dapat meminta informasi seperti berikut:
|
RTT Frontend* | https/frontend_tcp_rtt |
Distribusi waktu round trip (RTT) yang dihaluskan yang diukur untuk setiap koneksi antara klien dan GFE (diukur oleh stack TCP GFE). RTT yang dihaluskan adalah algoritma yang menangani variasi dan anomali yang dapat terjadi dalam pengukuran RTT. |
Latensi backend* | https/backend_latencies |
Distribusi latensi yang diukur sejak byte permintaan pertama dikirim oleh GFE ke backend, hingga GFE menerima dari backend byte terakhir respons. Untuk koneksi websocket, latensi backend berlaku untuk seluruh durasi sesi websocket.† |
Fraksi class kode respons | Fraksi dari total respons Load Balancer Aplikasi eksternal yang ada di setiap class kode respons (2XX, 4XX, ...). Di Cloud Monitoring, nilai ini hanya tersedia di dasbor default. Fitur ini tidak tersedia untuk dasbor kustom. Anda dapat menggunakan API untuk menetapkan pemberitahuan. | |
Jumlah permintaan backend | https/backend_request_count |
Jumlah permintaan yang dikirim dari Load Balancer Aplikasi eksternal ke backend. |
Jumlah byte permintaan backend | https/backend_request_bytes_count |
Jumlah byte yang dikirim sebagai permintaan dari Load Balancer Aplikasi eksternal ke backend. |
Jumlah byte respons backend | https/backend_response_bytes_count |
Jumlah byte yang dikirim sebagai respons dari backend (termasuk cache) ke Load Balancer Aplikasi eksternal. |
* Jumlah RTT Frontend dan latensi Backend tidak dijamin kurang dari atau sama dengan Total latensi. Hal ini karena meskipun kami melakukan polling RTT melalui socket dari GFE ke klien pada saat respons HTTP di-ACK, kami mengandalkan pelaporan kernel untuk beberapa pengukuran ini, dan kami tidak dapat menjamin bahwa kernel akan memiliki pengukuran RTT untuk respons HTTP tertentu. Hasil akhir adalah nilai RTT yang dihaluskan yang juga dipengaruhi oleh respons HTTP sebelumnya, SYN/ACK, dan handshake SSL yang tidak memengaruhi waktu sebenarnya permintaan HTTP saat ini.
† Untuk memantau koneksi websocket, buat layanan backend khusus untuk websocket.
Memfilter dimensi untuk metrik
Anda dapat menerapkan filter untuk metrik untuk Load Balancer Aplikasi eksternal.
Metrik digabungkan untuk setiap Load Balancer Aplikasi klasik dan Load Balancer Aplikasi eksternal global. Anda dapat memfilter metrik gabungan menurut dimensi berikut untuk resource.type="http_load_balancer"
atau resource.type="https_lb_rule"
. Perhatikan
bahwa tidak semua dimensi tersedia di semua metrik.
Properti | Deskripsi |
---|---|
backend_scope |
Cakupan Google Cloud (region atau zona) dari grup instance layanan backend yang menyalurkan koneksi. Jika tidak ada grup instance yang tersedia atau jika permintaan ditayangkan oleh entity lain, Anda akan melihat salah satu nilai berikut, bukan region atau zona grup instance layanan backend.
Jika perincian ini dipilih, diagram akan menampilkan metrik backend (load balancer-to-backend), bukan metrik frontend (client-to-load balancer). |
backend_type |
Nama grup backend yang melayani permintaan klien.
Dapat berupa
|
backend_target_type |
Nama layanan backend yang melayani permintaan tersebut. Dapat berupa
BACKEND_SERVICE , BACKEND_BUCKET ,
UNKNOWN jika backend tidak ditetapkan, atau
NO_BACKEND_SELECTED jika error atau gangguan lainnya terjadi sebelum
backend dapat dipilih atau terjadi pengalihan URL. |
matched_url_path_rule |
Aturan jalur peta URL yang cocok dengan awalan permintaan HTTP(S) (maksimal 50 karakter). |
forwarding_rule_name |
Nama aturan penerusan yang digunakan oleh klien untuk mengirim permintaan. |
url_map_name |
Aturan jalur peta URL atau aturan rute yang dikonfigurasi sebagai bagian dari kunci peta URL. Dapat berupa
|
target_proxy_name |
Nama objek proxy HTTP(S) target yang dirujuk oleh aturan penerusan. |
backend_target_name |
Nama target backend. Target dapat berupa layanan backend atau bucket backend. UNKNOWN ditampilkan jika backend tidak ditetapkan.
|
backend_name |
Nama grup instance, bucket, atau NEG backend.
UNKNOWN ditampilkan jika backend tidak ditetapkan, atau
NO_BACKEND_SELECTED jika terjadi error atau gangguan lainnya
sebelum backend dapat dipilih atau pengalihan URL terjadi. |
backend_scope_type |
Jenis cakupan grup backend. Dapat berupa
|
proxy_continent |
Benua GFE HTTP(S) yang menghentikan koneksi HTTP(S).
(Contoh: America , Europe , Asia ) |
protocol |
Protokol yang digunakan oleh klien, salah satu dari HTTP/1.0 ,
HTTP/1.1 , HTTP/2.0 , QUIC/HTTP/2.0 ,
UNKNOWN . |
response_code |
Kode respons HTTP permintaan. |
response_code_class |
Class kode respons HTTP permintaan: 200, 300, 400, 500, atau 0 untuk tidak ada. |
cache_result |
Hasil cache untuk menayangkan permintaan HTTP melalui proxy: HIT ,
MISS , DISABLED , PARTIAL_HIT (untuk
permintaan yang ditayangkan sebagian dari cache dan sebagian dari backend) atau
UNKNOWN . |
client_country |
Negara klien yang mengeluarkan permintaan HTTP (misalnya,
United States atau Germany ) |
load_balancing_scheme |
Skema load balancing yang digunakan. Jika Load Balancer Aplikasi klasik digunakan, nilainya adalah EXTERNAL . Jika Load Balancer Aplikasi eksternal global digunakan, nilainya adalah EXTERNAL_MANAGED . |
Langkah selanjutnya
- Baca ringkasan logging Cloud CDN
- Baca tentang cache.
- Baca artikel tentang URL dan cookie yang ditandatangani.